Azure Cosmos DB: NoSQL Global
Pelajari arsitektur multi-model dan multiwilayah Cosmos DB, pahami kunci partisi, lalu pilih tingkat konsistensi yang tepat sesuai kebutuhan aplikasi Anda.
Azure Cosmos DB: NoSQL Global adalah pelajaran Cloud & IT Cert Prep gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cloud & IT Cert Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.
Apa Itu Azure Cosmos DB?
Azure Cosmos DB adalah layanan basis data NoSQL multi-model yang terdistribusi secara global milik Microsoft. Layanan ini dirancang untuk memberikan latensi baca dan tulis satu digit milidetik pada skala apa pun, di mana pun di dunia. Tidak seperti basis data tradisional yang terbatas pada satu region, Cosmos DB dapat mereplikasi data secara transparan ke puluhan region Azure secara bersamaan.
Dukungan API Multi-Model
Cosmos DB mendukung beberapa API basis data melalui satu layanan. Anda dapat menggunakan NoSQL API bawaan (dokumen JSON), MongoDB API untuk aplikasi yang dibangun dengan driver MongoDB, Apache Cassandra API untuk beban kerja kolom lebar, Gremlin API untuk data graf, dan Table API untuk data nilai-kunci. Setiap API menyediakan akses ke mesin dasar Cosmos DB melalui antarmuka yang familier.
Akun, Basis Data, dan container
Hierarki sumber daya Cosmos DB terdiri dari tiga tingkat. Sebuah akun adalah sumber daya tingkat teratas yang menentukan daftar region replikasi dan tingkat konsistensi. Di dalam akun, Anda membuat basis data sebagai ruang nama logis. Di dalam setiap basis data, Anda membuat container — unit yang menyimpan Items (dokumen) dan menjadi tempat throughput disediakan.
# Create a Cosmos DB account with the NoSQL API
az cosmosdb create \
--name mycosmosaccount \
--resource-group myRG \
--kind GlobalDocumentDB \
--locations regionName=eastus failoverPriority=0 isZoneRedundant=true
# Create a database
az cosmosdb sql database create \
--account-name mycosmosaccount \
--resource-group myRG \
--name myDatabaseKunci Partisi: Dasar Penskalaan
Kunci partisi adalah properti pada setiap Item yang digunakan Cosmos DB untuk mendistribusikan data ke seluruh partisi fisik. Memilih kunci partisi yang tepat sangat penting: kunci tersebut harus memiliki kardinalitas tinggi (banyak nilai berbeda), menyebarkan lalu lintas tulis secara merata, dan muncul dalam sebagian besar kueri Anda. Pilihan kunci partisi yang buruk menyebabkan partisi panas yang membatasi throughput dan menurunkan performa.
// Example container with /userId as partition key
// Items in the container:
{
'id': 'order-001',
'userId': 'user-42',
'product': 'Widget',
'total': 29.99
}
// userId distributes orders across partitionsThroughput: Model RU/s
Cosmos DB mengenakan biaya throughput dalam Request Units per second (RU/s). Satu RU kira-kira setara dengan biaya membaca dokumen berukuran 1 KB berdasarkan ID-nya. Operasi tulis, kueri, dan penghapusan memerlukan lebih banyak RU, bergantung pada ukuran Item dan kompleksitas indeks. Anda dapat menyediakan RU/s pada tingkat container atau berbagi kumpulan di seluruh container dalam sebuah basis data, serta beralih ke mode autoscale agar Cosmos DB dapat meningkatkan throughput secara otomatis.
# Create a container with 400 RU/s
az cosmosdb sql container create \
--account-name mycosmosaccount \
--resource-group myRG \
--database-name myDatabase \
--name orders \
--partition-key-path '/userId' \
--throughput 400Distribusi Global
Fitur Cosmos DB yang paling unggul adalah kemampuannya untuk mereplikasi data secara global hanya dengan beberapa klik. Anda menambahkan region ke akun, lalu Cosmos DB secara otomatis menyinkronkan semua operasi tulis di setiap region. Setiap region dapat melayani operasi baca dan tulis secara bersamaan dalam konfigurasi multi-write (multi-master), sehingga latensi bagi pengguna yang tersebar secara geografis menjadi minimal.
# Add a second region to the Cosmos DB account
az cosmosdb update \
--name mycosmosaccount \
--resource-group myRG \
--locations regionName=eastus failoverPriority=0 \
regionName=westeurope failoverPriority=1Lima Tingkat Konsistensi
Cosmos DB menawarkan lima tingkat konsistensi yang dapat disesuaikan, dalam spektrum dari yang terkuat hingga yang terlemah: Strong (pembacaan linearizable, latensi tertinggi), Bounded Staleness (pembacaan tertinggal dari penulisan dalam jendela yang dibatasi), Session (default — pembacaan konsisten untuk penulisan Anda sendiri dalam satu sesi), Consistent Prefix (pembacaan tidak pernah melihat operasi tulis yang urutannya terbalik), dan Eventual (pembacaan tercepat, jaminan terlemah). Pilih berdasarkan toleransi aplikasi Anda terhadap data yang sudah tidak terbaru.
Pengindeksan Otomatis
Secara default, Cosmos DB secara otomatis mengindeks setiap properti dalam setiap Item yang Anda masukkan, tanpa mengharuskan Anda menentukan skema terlebih dahulu. Hal ini memungkinkan kueri ad hoc yang fleksibel tanpa pemeliharaan indeks. Anda dapat menyesuaikan kebijakan pengindeksan untuk mengecualikan jalur yang tidak pernah dikuerikan (sehingga mengurangi biaya penyimpanan) atau menambahkan indeks gabungan untuk kueri ORDER BY pada beberapa properti.
// Custom indexing policy example
{
'indexingMode': 'consistent',
'includedPaths': [{ 'path': '/*' }],
'excludedPaths': [
{ 'path': '/largeTextBlob/?' },
{ 'path': '/_etag/?' }
]
}Umpan Perubahan untuk Aplikasi Berbasis Peristiwa
Umpan perubahan adalah log terurut yang berisi semua operasi pembuatan dan pembaruan pada sebuah container Cosmos DB. Aplikasi berlangganan umpan perubahan untuk memicu pemrosesan lanjutan — misalnya, memperbarui indeks pencarian, mengirimkan pemberitahuan, atau menulis ke tampilan terwujud. Umpan perubahan merupakan dasar pola berbasis peristiwa dan CQRS dalam arsitektur Cosmos DB.
Time-to-Live (TTL) untuk Data yang Kedaluwarsa
Cosmos DB mendukung Time-to-Live (TTL), yaitu properti yang Anda tetapkan pada container atau Item individual untuk menghapusnya secara otomatis setelah jumlah detik yang ditentukan. Fitur ini ideal untuk data sesi, entri tembolok, log audit dengan periode retensi yang diatur peraturan, atau data apa pun yang memiliki waktu kedaluwarsa tertentu. Penghapusan TTL dilakukan sebagai tugas latar belakang dan tidak menggunakan RU/s yang disediakan.
// Enable TTL on a container (TTL in seconds)
az cosmosdb sql container update \
--account-name mycosmosaccount \
--resource-group myRG \
--database-name myDatabase \
--name sessions \
--ttl 3600Harga dan Tingkat Serverless
Cosmos DB menawarkan dua mode penagihan. Throughput yang disediakan menagihkan biaya per RU/s-jam terlepas dari penggunaan aktual, sehingga cocok untuk beban kerja yang stabil dan dapat diprediksi. Mode Serverless menagihkan biaya per RU yang digunakan dan GB yang disimpan, tanpa biaya minimum, sehingga hemat biaya untuk pengembangan, pembuatan prototipe, dan lonjakan lalu lintas. Cosmos DB Serverless saat ini terbatas pada satu region.
Pemeriksaan Singkat
Uji pemahaman Anda tentang konsep Microsoft Azure Fundamentals (AZ-900) dari pelajaran ini.
Ringkasan Pelajaran
Dalam pelajaran ini Anda telah mempelajari: Cosmos DB adalah layanan NoSQL terdistribusi secara global dan mendukung banyak model, kunci partisi menentukan cara data dipecah dan harus dipilih dengan cermat, serta lima tingkat konsistensi memungkinkan Anda menyeimbangkan latensi dan keterkinian data. Selanjutnya, kita akan membahas layanan terkelola Azure untuk mesin basis data sumber terbuka.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Azure Cosmos DB: NoSQL Global” gratis?
Ya — teks lengkap “Azure Cosmos DB: NoSQL Global” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cloud & IT Cert Prep, upgrade ke CoddyKit PRO. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Azure Cosmos DB: NoSQL Global”?
Pelajari arsitektur multi-model dan multiwilayah Cosmos DB, pahami kunci partisi, lalu pilih tingkat konsistensi yang tepat sesuai kebutuhan aplikasi Anda. Kamu berlatih Cloud & IT Cert Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Cloud & IT Cert Prep?
Tidak diperlukan pengalaman sebelumnya. Cloud & IT Cert Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Azure Cosmos DB: NoSQL Global” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Cloud & IT Cert Prep ini?
Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Azure SQL Database
- Azure Cosmos DB: NoSQL Global
- Azure Database untuk Mesin Sumber Terbuka
- Migrasi Basis Data ke Azure