Lewati ke konten utama

Azure Cosmos DB: Basis Data Cloud NoSQL Skala Global

Temukan bagaimana basis data multi-model terkelola penuh dari Microsoft menghadirkan performa berlatensi rendah, skalabilitas elastis, dan kemampuan real-time untuk AI, IoT, e-commerce, dan lainnya.
· 12 mnt Baca

Jelajahi bersama AI

Saat aplikasi berkembang secara global, basis data tradisional sering kali tidak memadai. Azure Cosmos DB, basis data multi-model yang terdistribusi secara global dari Microsoft, menghadirkan akses berlatensi rendah, beragam model konsistensi, dan penskalaan mulus lintas wilayah. 

Panduan ini membahas konsep penting seperti container, item, dan API SQL—hal-hal esensial bagi setiap cloud engineer yang ingin memulai (dan bekerja) dengan Azure dan Cosmos DB. Anda akan mendapatkan gambaran praktis tentang arsitekturnya serta alasan mengapa ini menjadi pilihan andalan untuk aplikasi cloud-native yang mission-critical.

Apa itu Azure Cosmos DB?

Azure Cosmos DB adalah basis data NoSQL terkelola penuh di Microsoft Azure, dibangun untuk ketersediaan tinggi, latensi rendah, dan skalabilitas global. Ini mendukung beberapa model data, termasuk dokumen, key-value, graf, dan kolom-keluarga, sehingga fleksibel untuk berbagai aplikasi.

Kekuatan utamanya adalah distribusi global: Hanya dengan beberapa klik, data dapat direplikasi ke berbagai wilayah Azure untuk akses lokal yang cepat. 

Pengembang juga dapat memilih dari berbagai model konsistensi untuk menyeimbangkan performa dan akurasi data. Jika Anda baru di dunia Azure, saya sangat menyarankan untuk membaca panduan pemula Azure berikut ini.

Mengapa Menggunakan Azure Cosmos DB?

Azure Cosmos DB menawarkan serangkaian fitur kuat yang disesuaikan untuk membangun aplikasi dengan skala besar dan kinerja tinggi:

Gambar oleh Penulis. Alasan menggunakan Cosmos DB

  • Distribusi global dengan latensi rendah: Mereplikasi data secara otomatis ke berbagai wilayah Azure, memastikan akses lokal yang cepat bagi pengguna di seluruh dunia.
  • Beragam tingkat konsistensi: Pilih dari lima model—Strong, Bounded Staleness, Session, Consistent Prefix, dan Eventual—untuk menyeimbangkan konsistensi, ketersediaan, dan performa.
  • Dukungan multi-model: Bekerja dengan model data dokumen (JSON), key-value, graf, dan kolom-keluarga, cocok untuk beban kerja yang beragam.
  • Ketersediaan tinggi dengan SLA: Didukung SLA untuk operasi baca dan tulis, ideal untuk sistem mission-critical.
  • Skalabilitas elastis: Secara otomatis menskalakan throughput berdasarkan permintaan tanpa downtime, menjaga responsivitas di bawah beban yang bervariasi.

Gabungan kemampuan ini menjadikan Cosmos DB fondasi yang kuat untuk aplikasi cloud-native terdistribusi global yang menuntut performa real-time dan ketangguhan.

Kasus Penggunaan Azure Cosmos DB

Azure Cosmos DB adalah pilihan serbaguna untuk aplikasi real-time yang dapat diskalakan di banyak industri. Arsitektur berlatensi rendah dan terdistribusi secara global menjadikannya ideal untuk skenario yang memerlukan ketersediaan tinggi dan akses data cepat. Berikut beberapa kasus penggunaan utama:

  • AI & machine learning: Terintegrasi dengan pipeline AI real-time dan mendukung pencarian vektor, memungkinkan aplikasi cerdas seperti mesin rekomendasi dan pencarian semantik.
  • E-commerce & ritel: Mendukung pengalaman belanja yang dipersonalisasi dengan menangkap perilaku pengguna dan menyajikan rekomendasi secara instan. Distribusi globalnya memastikan akses data inventaris yang akurat dan berlatensi rendah di berbagai wilayah.
  • Gaming & media sosial: Menangani statistik pemain real-time, obrolan, dan papan peringkat dengan performa baca/tulis yang cepat. Konsistensi tingkat sesi memastikan pengalaman yang mulus bagi pengguna di seluruh dunia.
  • IoT dan data deret waktu: Secara efisien mengimpor dan memproses volume besar data sensor dan telemetri. Ideal untuk pemeliharaan prediktif, deteksi anomali, dan pemantauan real-time.

Dari mendukung toko online hingga menghadirkan aplikasi cerdas berbasis AI, Cosmos DB memberikan kecepatan, skala, dan fleksibilitas yang dibutuhkan untuk solusi cloud-native modern. Untuk lebih memahami apa yang dapat Anda lakukan dengan Cosmos DB dan Azure, silakan lihat Panduan Layanan Cloud Microsoft berikut.

Fitur dan Kapabilitas Cosmos DB

Pada bagian ini, kita akan membahas kapabilitas inti yang memungkinkan pengembang membangun aplikasi yang cepat, tangguh, dan cerdas, termasuk strategi pemodelan data.

Pemodelan data dan pengindeksan

Azure Cosmos DB memungkinkan container menyimpan dokumen JSON tanpa memerlukan skema yang telah ditentukan, sehingga memudahkan Anda menyesuaikan dan mengembangkan model data seiring waktu.

Pengindeksan di Cosmos DB secara default otomatis, dengan setiap field diindeks untuk mendukung kueri cepat sejak awal. Namun, ini dapat meningkatkan konsumsi Request Unit (RU), terutama pada beban kerja yang intensif penulisan. Untuk mengoptimalkan, pengembang dapat menentukan kebijakan pengindeksan kustom. Kebijakan ini memungkinkan menonaktifkan pengindeksan otomatis jika tidak diperlukan, menentukan jalur yang disertakan untuk field yang harus diindeks, serta mengecualikan field yang tidak relevan.

Cosmos DB juga menyertakan fitur Change Feed, yang menangkap penyisipan dan pembaruan secara real-time, menjadikannya ideal untuk membangun sistem berbasis peristiwa, memicu alur kerja, atau mengalirkan data ke hilir. Fitur berguna lainnya adalah Time-to-Live (TTL), yang memungkinkan penghapusan dokumen secara otomatis setelah periode tertentu.

Partisi dan optimasi performa

Untuk beban kerja yang intensif penulisan, kunci partisi harus memiliki kardinalitas tinggi dan distribusi yang merata, seperti ID pengguna, stempel waktu, atau wilayah geografis, guna mencegah partisi panas dan throttling. Pada skenario yang intensif pembacaan, sering kali lebih efektif mengelompokkan data terkait menggunakan kunci partisi seperti ID pelanggan, sehingga memungkinkan akses efisien untuk kueri rentang atau titik. Partisi yang buruk dapat menyebabkan distribusi data tidak merata dan penurunan performa. Karena setiap partisi logis dibatasi hingga 20 GB, penting untuk merancang strategi partisi yang menghindari kelebihan beban pada satu kunci saja.

Performa kueri dapat ditingkatkan lebih jauh dengan merancang pola akses yang menargetkan partisi tunggal, karena ini lebih cepat dan lebih efisien sumber daya. Kueri lintas partisi, meskipun didukung, umumnya menghasilkan latensi lebih tinggi dan konsumsi RU lebih besar karena memindai beberapa partisi. Untuk mengurangi biaya kueri, pengembang harus memanfaatkan strategi pengindeksan (saya memikirkan indeks komposit) dan mempertimbangkan penerapan mekanisme caching untuk data yang sering diakses.

Dalam hal throughput, Cosmos DB memungkinkan pengembang mengonfigurasi Request Unit pada tingkat container atau basis data. Model throughput yang dapat diatur ini membantu memastikan aplikasi Anda mempertahankan performa bahkan saat Anda mengalami kondisi beban puncak.

Model konsistensi dan ketahanan data

Azure Cosmos DB menawarkan lima tingkat konsistensi yang dapat diatur. Ini jauh melampaui opsi konsistensi eventual atau strong yang umum ditemukan di sebagian besar basis data non-relasional.

Pada tingkat terlemah, eventual consistency memberikan opsi tercepat dan paling tersedia, tetapi dapat mengembalikan data yang basi atau tidak berurutan saat replika melakukan sinkronisasi secara bertahap. Sedikit lebih kuat adalah consistent prefix, yang memastikan pembacaan mencerminkan urutan penulisan, meskipun tidak selalu yang paling terbaru—cocok ketika urutan operasi lebih penting daripada kebaruan.

Pengaturan default dan paling praktis untuk banyak aplikasi adalah session consistency, yang menjamin klien selalu membaca tulisannya sendiri dalam satu sesi. Bounded staleness melangkah lebih jauh dengan mengizinkan jeda terkontrol antara penulisan dan pembacaan, ditentukan oleh interval waktu (T) atau jumlah versi (K). Misalnya, di satu wilayah, jeda dapat dibatasi pada 5 detik atau 10 versi, sementara dalam pengaturan multi-wilayah, dapat diperpanjang hingga 5 menit atau 100.000 versi.

Pada tingkat terkuat adalah strong consistency, yang memastikan semua pembacaan mencerminkan penulisan terakhir yang terkomit di semua replika. Tingkat ini menawarkan jaminan paling ketat, menghindari pembacaan basi, kotor, atau fantom, dan sangat mirip dengan perilaku sistem yang mematuhi ACID tradisional.

Penulisan multi-wilayah dan ketersediaan global

Salah satu fitur menonjol Azure Cosmos DB adalah dukungan penulisan multi-wilayah melalui replikasi aktif-aktif (multi-master). Ini memungkinkan aplikasi melakukan operasi tulis di beberapa wilayah secara bersamaan, secara signifikan mengurangi latensi bagi pengguna di seluruh dunia.

Cosmos DB juga menyertakan replikasi global otomatis, memastikan data tersinkronisasi di seluruh wilayah Azure. Jika terjadi gangguan regional, sistem memicu failover otomatis ke wilayah berikutnya yang tersedia.

Meskipun Cosmos DB menangani mekanisme sharding dan distribusi data secara otomatis, pengembang tetap harus memilih kunci partisi yang sesuai untuk mendukung distribusi yang merata dan penskalaan horizontal yang efektif. Keputusan ini sangat penting untuk dataset besar yang dapat melampaui batas 20 GB per partisi logis. Merencanakan partisi sejak awal membantu menghindari bottleneck dan masalah performa saat aplikasi berkembang.

Harga dan Manajemen Biaya Cosmos DB

Harga Azure Cosmos DB didasarkan pada Request Unit (RU), yang mencerminkan sumber daya yang digunakan untuk baca, tulis, dan kueri. Pembacaan titik sederhana biasanya berbiaya 1 RU.

Model Harga

  • Provisioned throughput: Memesan RU untuk beban kerja yang dapat diprediksi, ditagihkan per throughput dan penyimpanan.
  • Serverless: Model bayar sesuai pemakaian, ideal untuk beban kerja sporadis atau lalu lintas rendah.

Optimasi Biaya

  • Gunakan Cosmos DB Profiler untuk memantau dan mengoptimalkan efisiensi kueri.
  • Atur pengindeksan dan partisi untuk mengurangi konsumsi RU.
  • Lacak pengeluaran dengan Azure Cost Management dan atur peringatan penggunaan.
  • Memilih model yang tepat dan mengoptimalkan desain Anda dapat secara signifikan menurunkan biaya.

Mulai Menggunakan Azure Cosmos DB 

Sebelum bekerja dengan Azure Cosmos DB, Anda perlu menyiapkan akun, memilih konfigurasi, serta membuat basis data dan container pertama Anda. Panduan langkah demi langkah ini akan memandu Anda melalui prosesnya menggunakan Azure Portal.

Langkah 1: Daftar akun Azure dan akses Cosmos DB melalui Azure Portal

Mulailah dengan masuk ke Azure Portal. Di bilah carian global di bagian atas, ketik “Azure Cosmos DB” dan pilih dari hasil. Dari bilah Cosmos DB, klik “Create” untuk mulai mengonfigurasi instance baru Anda.

Tangkapan layar halaman utama Azure

Tangkapan layar halaman utama Azure Cosmos DB

Langkah 2: Pilih API Anda dan Konfigurasikan Dasar-dasarnya

Pilih Azure Cosmos DB for NoSQL sebagai model API Anda (Core SQL API). 

Tangkapan layar Azure Cosmos DB. Membuat sebuah instance

Lalu, di panel Basics, masukkan detail konfigurasi Anda, termasuk langganan Azure, resource group (baru atau yang sudah ada), nama akun yang unik secara global, dan wilayah Azure pilihan. Availability Zones dapat dibiarkan nonaktif. Cosmos DB menawarkan dua mode throughput—provisioned throughput untuk beban kerja yang dapat diprediksi dan serverless untuk skenario variabel atau lalu lintas rendah. Pilih mode yang paling sesuai dengan kebutuhan aplikasi Anda saat penyiapan. Opsi ini juga dapat disesuaikan nanti seiring evolusi beban kerja Anda.

Tangkapan layar Azure Cosmos DB. Mengisi detail

Setelah selesai, klik Review + Create, lalu konfirmasi dengan mengklik Create untuk memulai deployment. 

Tangkapan layar Azure Cosmos DB. Memvalidasi instance kami

Setelah deployment selesai, pilih Go to resource untuk mengakses akun Cosmos DB baru Anda.

Tangkapan layar Azure Cosmos DB. Informasi tentang resource yang baru saja kami buat

Langkah 3: Buat basis data dan container

Arahkan ke Data Explorer dari menu akun Cosmos DB. 

Tangkapan layar Azure Cosmos DB. Mengeksplorasi data kami

Klik New Container untuk membuka dialog konfigurasi. 

Tangkapan layar Azure Cosmos DB. Membuat container baru

Tentukan nama basis data baru dan nama container, dan yang terpenting, tentukan kunci partisi untuk memastikan distribusi data merata dan performa optimal. Klik OK untuk membuat basis data dan container. 

Tangkapan layar Azure Cosmos DB. Mengisi karakteristik container kami.

Setelah dibuat, Anda akan melihat keduanya tercantum dalam hierarki Data Explorer.

Tangkapan layar Azure Cosmos DB. Memeriksa hierarki data.

Langkah 4: Gunakan Data Explorer untuk kueri dan mengelola objek basis data

Di dalam container yang baru dibuat (employees), perluas tampilan pohon dan pilih Items. 

Tangkapan layar Azure Cosmos DB. Memeriksa container

Klik New Item.

Tangkapan layar Azure Cosmos DB. Membuat item baru

Masukkan JSON contoh berikut, lalu klik Save:

{
  "id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
  "name": {
    "first": "Josep",
    "last": "Ferrer"
  },
  "email": "<[email protected]>",
  "department": {
    "name": "Data Science"
  }
}

Untuk menguji kueri, pilih New SQL Query di menu dan masukkan kueri NoSQL berikut, yang melakukan pencarian tidak peka huruf besar/kecil untuk karyawan di departemen Logistics. 

Tangkapan layar Azure Cosmos DB. Memeriksa container.

SELECT VALUE {
    "name": CONCAT(e.name.last, " ", e.name.first),
    "department": e.department.name,
    "emailAddresses": [
        e.email
    ]
}
FROM
    employees e
WHERE
    STRINGEQUALS(e.department.name, "logistics", true)

Sekarang kita klik untuk mengeksekusi kueri. Ini mengembalikan keluaran terstruktur:

[
  {
    "name": "Josep Ferrer",
    "department": "Logistics",
    "emailAddresses": [
      "[email protected]"
    ]
  }
]

Dan itu saja!

Kelebihan dan Kekurangan Cosmos DB

Kelebihan

  • Ketersediaan tinggi: Replikasi multi-wilayah bawaan memastikan keandalan dan uptime global.
  • Fleksibilitas skema: Mendukung JSON tanpa skema dengan pengindeksan otomatis untuk kueri cepat.
  • Integrasi AI: Dukungan native untuk pencarian vektor dan skenario AI real-time.
  • Dukungan API yang luas: Kompatibel dengan SQL, MongoDB, Cassandra, Gremlin, dan Table API.
  • Layanan terkelola penuh: Menangani penskalaan, patching, dan infrastruktur, mengurangi beban operasional.

Kekurangan

  • Fitur SQL terbatas: Tidak memiliki kemampuan JOIN dan GROUP BY penuh seperti pada basis data relasional.
  • Biaya pada skala besar: Dapat menjadi mahal di bawah beban kerja throughput tinggi jika tidak dioptimalkan.

Kesimpulan

Azure Cosmos DB adalah basis data NoSQL yang tangguh dan terdistribusi secara global, dibangun untuk aplikasi cloud-native modern. Dengan dukungan multi-model, replikasi aktif-aktif, dan tingkat konsistensi yang dapat diatur, ini unggul dalam skenario yang memerlukan ketersediaan tinggi, responsivitas real-time, dan skalabilitas elastis, seperti sistem berbasis AI, platform e-commerce, dan solusi IoT.

Infrastruktur yang terkelola penuh, pemodelan data yang fleksibel, dan ekosistem API yang kaya menjadikannya pilihan kuat bagi pengembang dan arsitek. Meski demikian, tim harus mempertimbangkan dengan cermat potensi keterbatasan, seperti celah fitur SQL dan biaya pada skala besar, ketika merencanakan beban kerja produksi.

Jika Anda ingin terus meningkatkan kemampuan, berikut beberapa sumber daya yang baik: 

Josep Ferrer

Penulis

Josep Ferrer

Josep adalah Data Scientist freelance yang berfokus pada proyek-proyek Eropa, dengan keahlian dalam penyimpanan data, pemrosesan, analitik lanjutan, dan penyusunan narasi data yang berdampak. 

Sebagai pendidik, ia mengajar Big Data di program Magister di University of Navarra dan berbagi wawasan melalui artikel di platform seperti Medium, KDNuggets, dan DataCamp. Josep juga menulis tentang Data dan Teknologi dalam buletin Databites (databites.tech). 

Ia meraih gelar Sarjana di bidang Fisika Teknik dari Polytechnic University of Catalonia dan gelar Magister di bidang Intelligent Interactive Systems dari Pompeu Fabra University.

FAQs

Apa itu Azure Cosmos DB?

Azure Cosmos DB adalah layanan basis data NoSQL terkelola penuh dan terdistribusi secara global oleh Microsoft yang mendukung beberapa model data serta dioptimalkan untuk aplikasi berlatensi rendah dan ketersediaan tinggi.

Mengapa pengembang harus menggunakan Cosmos DB?

Pengembang memilih Cosmos DB karena replikasi multi-wilayah, skalabilitas elastis, lima model konsistensi yang dapat diatur, dan dukungan untuk banyak API serta model data, menjadikannya ideal untuk aplikasi cloud-native modern.

Apa saja kasus penggunaan umum untuk Cosmos DB?

Cosmos DB digunakan dalam AI dan machine learning (mis. pencarian vektor), e-commerce dan ritel (personalisasi real-time), gaming dan media sosial (interaksi berlatensi rendah), serta IoT (telemetri dan analitik real-time).

Bagaimana Cosmos DB menangani skalabilitas dan performa?

Cosmos DB menggunakan container terpartisi, throughput yang dapat diatur melalui Request Unit (RU), dan distribusi data cerdas untuk penskalaan horizontal dan mendukung pengkuerian berkinerja tinggi.

Apa saja kekurangan utama Cosmos DB?

Walau kuat, Cosmos DB dapat menjadi mahal pada throughput tinggi jika tidak dioptimalkan, dan tidak memiliki dukungan SQL penuh untuk kueri kompleks seperti multi-table join atau operasi GROUP BY tingkat lanjut.

Apa yang terjadi pada data saya di Azure Cosmos DB saat terjadi kegagalan regional?

Jika terjadi kegagalan regional, Recovery Point Objective (RPO) Azure Cosmos DB—atau seberapa banyak data yang mungkin hilang—ditentukan oleh model konsistensi dan konfigurasi deployment Anda:

  • Strong consistency memastikan tidak ada kehilangan data (RPO = 0).

  • Model konsistensi lainnya (seperti session, bounded staleness, atau eventual) dapat memungkinkan keterlambatan data atau celah versi yang minimal.

Rentang opsi ini memungkinkan Anda menyesuaikan perilaku Cosmos DB berdasarkan kebutuhan aplikasi—apakah Anda lebih mengutamakan akurasi, kecepatan, atau keseimbangan keduanya.

Bagaimana saya harus memodelkan data hierarkis di Azure Cosmos DB?

Untuk memodelkan data hierarkis seperti struktur folder atau pohon kategori, Cosmos DB merekomendasikan perataan struktur dokumen. Gunakan field seperti parentId untuk merepresentasikan relasi alih-alih dokumen bertingkat atau join yang kompleks.

Desain ini meningkatkan efisiensi kueri dan skalabilitas, sehingga lebih mudah mengelola dan mengambil data terkait di lingkungan terdistribusi.

Model konsistensi mana yang harus saya gunakan dalam pengaturan Cosmos DB multi-wilayah?

Azure Cosmos DB mendukung semua lima model konsistensi dalam deployment multi-wilayah, memberi Anda fleksibilitas untuk menyeimbangkan performa dan akurasi data.

  • Session consistency sering kali ideal—menyediakan jaminan read-your-own-write, latensi rendah, dan overhead minimal.

  • Untuk jaminan yang lebih ketat atau lebih longgar, Anda dapat memilih strong, bounded staleness, consistent prefix, atau eventual consistency.

Fleksibilitas ini memudahkan mencocokkan Cosmos DB dengan kebutuhan unik aplikasi terdistribusi global Anda.

Topik

Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

blogs

Spaghetti Plot dan Jalur Badai

blogs

Tutorial Korelasi di R