Pilih mana DocumentDb, Azure Table Storage, atau SQL Azure?

Microsoft Azure kini memiliki tiga macam services untuk penyimpanan data yang dapat digunakan oleh developer yaitu:

  • DocumentDb
  • Azure Table
  • SQL Azure

DocumentDb adalah layanan penyimpanan data No-SQL (bukan merupakan database relasional) yang menyimpan dokumen JSON secara native dan menyedikanan kemampuan index dan berbagai fitur yang lain.  Azure Table juga merupakan opsi lain untuk  penyimpanan data No-SQL yang mempunyai fitur lebih sedikit dibandingkan dengan DocumentDb. Sedangkan Azure SQL merupakan layanan penyimpanan data relasional

Dari perspektif penyimpanan data, Azure SQL adalah satu-satunya layanan database relasional yang disediakan, ini berarti bahwa Azure SQL akan menyediakan skema dan strongly typed data store. Ini membuat Azure SQL memiliki keunggulan pada performa pencarian data pada table dengan index yang kompleks. Table Storage dan DocumentDb adalah penyimpanan bertipe No-SQL yang tidak memiliki skema yang pasti. DocumentDb menyimpan data sebagai objek JSON, dan memperbolehkan attachment pada dokumen, sedangkan Table Storage secara default menyimpan data berupa dokumen XML (walaupun anda dapat mengambil data dalam format JSON). Kelebihan menyimpan data pada format JSON adalah kita dengan mudah dapat melakukan mapping data kedalam JSON object pada aplikasi client. Dibandingkan dengan documentDb, Azure Storage memiliki kapasitas yang lebih terbatas, yaitu hanya dapat menyimpan data sebesar 500GB untuk satu database.

Jika dilihat dari fitur indexing, ketiga model penyimpanan data tesebut mendukung indexing. Azure SQL menawarkan fitur index yang paling lengkap seperti penambahan index pada banyak kolom dan fitur yang lain seperti penggunaan keyword WHERE ketika memfilter data berdasarkan kolom tertentu. DocumentDb juga memiliki fitur penambahan index yang di buat secara otomatis pada dokumen dan juga fitur untuk membuat query yang komplek sama seperti Azure SQL. Azure Table Storage hanya mendukung index pada PartitionKey dan RowKey sehingga kita harus jeli dalam menentukan properti mana yang akan dipilih, karena untuk memfilter data menggunakan kolom lain akan berdampak pada kecepatan pencarian data.

Dari sisi fitur program, Azure SQL menyediakan fasilitas pemrograman server side seperti store procedure, trigger, integrity check, view, dan function. Bahasa pemrograman yang digunakan pada Azure SQL adalah T-SQL. DocumentDb juga memiliki fitur server side programming menggunakan native javascript yang akan memudahkan developer yang sudah familiar dengan pemrograman javascript. Azure Tables tidak menawarkan pemrograman server side.

Untuk fitur integritas data dan transaksi, Azure SQL mempunyai fitur RDBMS referential integrity, dan mendukung transaksi, dengan menggunakan T-SQL, developer dapat menggunakan objek transaksi di sisi server dan menjalankan perintah commit/rollback. DocumentDb tidak memiliki strong referential integrity seperti pada Azure SQL seperti konsep foreign key, tetapi DocumentDb mendukung transaksi melalui bahasa pemrograman javascript pada sisi server. Developer juga dapat menggunakan javascript untuk melakukan pengecekan referential integrity pada sisi server. Azure Table Storage hanya mendukung transaksi dasar menggunakan operasi batch dengan beberapa limitasi.

Untuk perbandingan berdasarkan harga layanan, SQL Azure menawarkan banyak alternatif pilihan berdasarkan kebutuhan. Sebagai contoh untuk layanan paling dasar (basic) dengan tipe single database dan ukuran database sampai dengan 2GB, harga yang ditawarkan adalah mulai dari $5 per bulan. Harga akan bertambah secara signifikan berdasarkan spesifikasi server dan kapasitas layanan yang ditawarkan. Harga paling mahal untuk model elastic database dan kapasistas sampai dengan 1TB yaitu $2700 per bulan.

image 

image

Untuk layanan DocumentDb harga yang ditawarkan mulai dengan $25 per bulan. Harga ditentukan berdasarkan besar penyimpanan dan request unit.

image

Sedangkan Azure Table Storage menawarkan harga yang sangat terjangkau yaitu mulai dari $0.048 per GB per bulan untuk tipe Geographically Redundant Storage (GRS).

image 

Kesimpulan dari pembahasan diatas adalah pemilihan jenis data storage yang disediakan pada layanan Azure dapat dipilih sesuai dengan kebutuhan dari aplikasi yang akan dikembangkan oleh developer, karena masing-masing memiliki keunggulan dan kelemahan. Azure SQL memiliki fitur referential integrity yang lebih baik namun kurang dari segi kapasitas penyimpanan data karena hanya mendukung penyimpanan data sampai dengan 1TB. DocumentDb menawarkan implementasi No-SQL dan pemrograman server side dengan javascript namun memiliki harga yang lebih mahal dibandingkan dengan Azure Table Storage. Sedangkan Azure Table Storage memiliki fitur yang paling sedikit dibandingkan kedua data storage yang lain namun memiliki harga yang sangat terjangkau dan sudah mendukung geographically redundant.