Model sumber daya Azure Cosmos DB

BERLAKU UNTUK: SQL API Cassandra API Gremlin API Table API Azure Cosmos DB API for MongoDB

Azure Cosmos DB adalah platform-as-a-service (PaaS) yang terkelola sepenuhnya. Untuk mulai menggunakan Azure Cosmos DB, Anda harus terlebih dahulu membuat akun Azure Cosmos di grup sumber daya Azure di langganan serta database, wadah, item di bawahnya yang diperlukan. Artikel ini menjelaskan model sumber daya Azure Cosmos DB dan entitas yang berbeda dalam hierarki model sumber daya.

Akun Azure Cosmos adalah unit fundamental dari distribusi global dan ketersediaan tinggi. Akun Azure Cosmos Anda berisi nama DNS unik dan Anda bisa mengelola akun dengan menggunakan portal Azure atau CLI Azure, atau dengan menggunakan SDK khusus bahasa yang berbeda. Untuk informasi selengkapnya, lihat cara mengelola akun Azure Cosmos Anda. Untuk mendistribusikan data dan throughput Anda secara global ke beberapa wilayah Azure, Anda dapat menambahkan dan menghapus wilayah Azure ke akun Anda kapan saja. Anda dapat mengonfigurasi akun Anda untuk memiliki satu wilayah atau beberapa wilayah tulis. Untuk informasi selengkapnya, lihat cara menambah dan menghapus wilayah Azure ke akun Anda. Anda dapat mengonfigurasi tingkat konsistensi default di akun.

Elemen dalam akun Azure Cosmos

Wadah Azure Cosmos adalah unit dasar skalabilitas. Anda secara virtual dapat memiliki throughput yang disediakan (RU/s) dan penyimpanan yang tidak terbatas pada sebuah container. Azure Cosmos DB secara transparan mempartisi wadah Anda menggunakan kunci partisi logis yang Anda tentukan untuk secara elastis menskalakan throughput dan penyimpanan yang disediakan.

Saat ini, Anda dapat membuat maksimal 50 akun Azure Cosmos di bawah langganan Azure (ini adalah batas lunak yang dapat ditingkatkan melalui permintaan dukungan). Satu akun Azure Cosmos secara virtual dapat mengelola data dalam jumlah tak terbatas dan throughput yang disediakan. Untuk mengelola data Anda dan throughput yang disediakan, Anda bisa membuat satu atau beberapa database Azure Cosmos di bawah akun Anda dan di dalam database tersebut, Anda bisa membuat satu atau beberapa kontainer. Gambar berikut menunjukkan hierarki elemen di akun Azure Cosmos:

Hierarchy of an Azure Cosmos account

Setelah Anda membuat akun di bawah langganan Azure, Anda bisa mengelola data di akun Anda dengan membuat database, wadah, dan item.

Gambar berikut menunjukkan hierarki entitas yang berbeda di akun Azure Cosmos DB:

Azure Cosmos account entities

Database Azure Cosmos

Anda dapat membuat satu atau beberapa database Azure Cosmos di bawah akun Anda. Database dianalogikan dengan namespace. Database adalah unit manajemen untuk sekumpulan kontainer Azure Cosmos. Tabel berikut menunjukkan bagaimana database dipetakan ke berbagai entitas khusus API:

Entitas Azure Cosmos API SQL Cassandra API Azure Cosmos DB API untuk MongoDB Gremlin API API Tabel
Database Azure Cosmos Database Keyspace Database Database NA

Catatan

Dengan akun API Tabel, saat Anda membuat tabel pertama, database default secara otomatis dibuat di akun Azure Cosmos Anda.

Operasi pada database Azure Cosmos

Anda dapat berinteraksi dengan database Azure Cosmos dengan Azure Cosmos API seperti yang dijelaskan di tabel berikut ini:

Operasi Azure CLI API SQL Cassandra API Azure Cosmos DB API untuk MongoDB Gremlin API API Tabel
Hitung semua database Ya Ya Ya (database dipetakan ke ruang kunci) Ya NA NA
Baca database Ya Ya Ya (database dipetakan ke ruang kunci) Ya NA NA
Buat database baru Ya Ya Ya (database dipetakan ke ruang kunci) Ya NA NA
Perbarui database Ya Ya Ya (database dipetakan ke ruang kunci) Ya NA NA

Kontainer Azure Cosmos

Kontainer Azure Cosmos adalah unit skalabilitas untuk throughput dan penyimpanan yang disediakan. Sebuah kontainer dipartisi secara horizontal dan kemudian direplikasi di beberapa wilayah. Item yang Anda tambahkan ke wadah secara otomatis dikelompokkan ke dalam partisi logis, yang didistribusikan ke seluruh partisi fisik, berdasarkan kunci partisi. Throughput pada container didistribusikan secara merata ke seluruh partisi fisik. Untuk mempelajari lebih lanjut tentang partisi dan kunci partisi, lihat Data partisi.

Saat membuat container, Anda mengonfigurasi throughput dalam salah satu mode berikut:

  • Mode throughput yang disediakan khusus: Throughput yang disediakan pada penampung secara eksklusif dicadangkan untuk penampung itu dan didukung oleh SLA. Untuk mempelajari lebih lanjut, lihat Cara menyediakan throughput pada penampung.

  • Mode throughput yang disediakan bersama: Penampung ini berbagi throughput yang disediakan dengan penampung lain dalam database yang sama (tidak termasuk penampung yang telah dikonfigurasi dengan throughput yang disediakan khusus). Dengan kata lain, throughput yang disediakan di database dibagikan di antara semua container "throughput bersama". Untuk mempelajari lebih lanjut, lihat Cara menyediakan throughput pada database.

Catatan

Anda dapat mengonfigurasi throughput bersama dan berdedikasi hanya saat membuat database dan kontainer. Untuk beralih dari mode throughput khusus ke mode throughput bersama (dan sebaliknya) setelah penampung dibuat, Anda harus membuat penampung baru dan memigrasi data ke penampung baru. Anda dapat memigrasi data dengan menggunakan fitur umpan perubahan Azure Cosmos DB.

Wadah Azure Cosmos dapat menskalakan secara elastis, baik Anda membuat wadah dengan menggunakan mode throughput khusus atau yang disediakan bersama.

Sebuah wadah adalah wadah item skema-agnostik. Item dalam penampung dapat memiliki skema arbitrer. Misalnya, item yang mewakili seseorang dan item yang mewakili mobil dapat ditempatkan di kontainer yang sama. Secara default, semua item yang Anda tambahkan ke penampung secara otomatis diindeks tanpa memerlukan indeks eksplisit atau manajemen skema. Anda dapat menyesuaikan perilaku pengindeksan dengan mengonfigurasi kebijakan pengindeksan pada kontainer.

Anda dapat mengatur Waktu Hidup(TTL) pada item yang dipilih dalam kontainer atau untuk seluruh kontainer untuk menghapus secara menyeluruh item tersebut dengan lancar dari sistem. Azure Cosmos DB secara otomatis menghapus item saat kedaluwarsa. Ini juga menjamin bahwa kueri yang dilakukan pada kontainer tidak mengembalikan item yang kedaluwarsa dalam batas tetap. Untuk mempelajari selengkapnya, lihat Mengonfigurasi TTL di kontainer Anda.

Anda dapat menggunakan ubah umpan untuk berlangganan log operasi yang dikelola untuk setiap partisi logis kontainer Anda. Umpan perubahan menyediakan log semua pembaruan yang dilakukan pada kontainer, bersama dengan gambar sebelum dan sesudah item. Untuk informasi selengkapnya, lihat Membangun aplikasi reaktif dengan menggunakan umpan perubahan. Anda juga dapat mengonfigurasi durasi retensi untuk umpan perubahan dengan menggunakan kebijakan umpan perubahan pada kontainer.

Anda dapat mendaftarkan prosedur, pemicu, fungsi yang ditentukan pengguna (UDF)yang disimpan, dan menggabungkan prosedur untuk kontainer Anda.

Anda dapat menentukan batasan kunci unik pada kontainer Azure Cosmos Anda. Dengan membuat kebijakan kunci yang unik, Anda memastikan keunikan satu atau beberapa nilai per kunci partisi. Jika Anda membuat kontainer dengan menggunakan kebijakan kunci unik, tidak ada item baru atau yang diperbarui dengan nilai yang menduplikasi nilai yang ditentukan oleh batasan kunci unik yang dapat dibuat. Untuk mempelajari lebih lengkap, lihat Batasan kunci unik.

Kontainer dikhususkan untuk entitas khusus API seperti yang ditampilkan dalam tabel berikut:

Entitas Azure Cosmos API SQL Cassandra API Azure Cosmos DB API untuk MongoDB Gremlin API API Tabel
Kontainer Azure Cosmos Kontainer Tabel Koleksi Graph Tabel

Catatan

Saat membuat kontainer, pastikan Anda tidak membuat dua kontainer dengan nama yang sama tetapi casing yang berbeda. Itu karena beberapa bagian dari platform Azure tidak peka huruf besar/kecil, dan ini dapat mengakibatkan kebingungan/benturan telemetri dan tindakan pada kontainer dengan nama tersebut.

Properti kontainer Azure Cosmos

Kontainer Azure Cosmos memiliki sekumpulan properti yang ditentukan sistem. Bergantung pada API mana yang Anda gunakan, beberapa properti mungkin tidak langsung terekspos. Tabel berikut ini menjelaskan daftar properti yang ditentukan sistem:

Properti yang ditentukan sistem Sistem yang dihasilkan atau dapat dikonfigurasi pengguna Tujuan API SQL Cassandra API Azure Cosmos DB API untuk MongoDB Gremlin API API Tabel
_rid Sistem yang dihasilkan Pengidentifikasi kontainer yang unik Ya Tidak Tidak Tidak Tidak
_etag Sistem yang dihasilkan Tag entitas yang digunakan untuk kontrol konkurensi optimis Ya Tidak Tidak Tidak Tidak
_ts Sistem yang dihasilkan tanda waktu terakhir yang diperbarui dari kontainer Ya Tidak Tidak Tidak Tidak
_self Sistem yang dihasilkan URI kontainer yang dapat diatasi Ya Tidak Tidak Tidak Tidak
id Dapat dikonfigurasi pengguna Nama unik kontainer yang ditentukan pengguna Ya Ya Ya Ya Ya
indexingPolicy Dapat dikonfigurasi pengguna Menyediakan kemampuan untuk mengubah jalur indeks, jenis indeks, dan mode indeks Ya Tidak Tidak Tidak Ya
TimeToLive Dapat dikonfigurasi pengguna Menyediakan kemampuan untuk menghapus item secara otomatis dari kontainer setelah periode waktu yang ditetapkan. Untuk detailnya, lihat Time to Live. Ya Tidak Tidak Tidak Ya
changeFeedPolicy Dapat dikonfigurasi pengguna Digunakan untuk membaca perubahan yang dibuat pada item dalam kontainer. Untuk detailnya, lihat Umpan perubahan. Ya Tidak Tidak Tidak Ya
uniqueKeyPolicy Dapat dikonfigurasi pengguna Digunakan untuk memastikan keunikan satu atau beberapa nilai dalam partisi logis. Untuk informasi selengkapnya, lihat Batasan kunci unik. Ya Tidak Tidak Tidak Ya
AnalyticalTimeToLive Dapat dikonfigurasi pengguna Menyediakan kemampuan untuk menghapus item secara otomatis dari kontainer setelah periode waktu yang ditetapkan. Untuk detailnya, lihat Time to Live. Ya Tidak Ya Tidak Tidak

Operasi pada kontainer Azure Cosmos

Kontainer Azure Cosmos mendukung operasi berikut saat Anda menggunakan salah satu Azure Cosmos API:

Operasi Azure CLI API SQL Cassandra API Azure Cosmos DB API untuk MongoDB Gremlin API API Tabel
Menghitung kontainer dalam database Ya Ya Ya Ya NA NA
Membaca kontainer Ya Ya Ya Ya NA NA
Membuat kontainer baru Ya Ya Ya Ya NA NA
Memperbarui kontainer Ya Ya Ya Ya NA NA
Menghapus kontainer Ya Ya Ya Ya NA NA

Item Azure Cosmos

Bergantung pada API mana yang Anda gunakan, item Azure Cosmos dapat mewakili dokumen dalam kumpulan, baris dalam tabel, atau node atau tepi dalam grafik. Tabel berikut menampilkan pemetaan entitas khusus API ke item Azure Cosmos:

Entitas cosmos API SQL Cassandra API Azure Cosmos DB API untuk MongoDB Gremlin API API Tabel
Item Azure Cosmos Item Baris Dokumen Node atau tepi Item

Properti item

Setiap item Azure Cosmos memiliki properti yang ditentukan sistem berikut ini. Bergantung pada API mana yang Anda gunakan, beberapa di antaranya mungkin tidak langsung terekspos.

Properti yang ditentukan sistem Sistem yang dihasilkan atau dapat dikonfigurasi pengguna Tujuan API SQL Cassandra API Azure Cosmos DB API untuk MongoDB Gremlin API API Tabel
_rid Sistem yang dihasilkan Pengidentifikasi unik item Ya Tidak Tidak Tidak Tidak
_etag Sistem yang dihasilkan Tag entitas yang digunakan untuk kontrol konkurensi optimis Ya Tidak Tidak Tidak Tidak
_ts Sistem yang dihasilkan Tanda waktu pembaruan terakhir item Ya Tidak Tidak Tidak Tidak
_self Sistem yang dihasilkan URI item yang dapat diatasi Ya Tidak Tidak Tidak Tidak
id Baik Nama unik yang ditentukan pengguna dalam partisi logis. Ya Ya Ya Ya Ya
Properti yang ditentukan pengguna arbitrer Ditentukan pengguna Properti yang ditentukan pengguna diwakili dalam representasi API-native (termasuk JSON, BSON, dan CQL) Ya Ya Ya Ya Ya

Catatan

Keunikan id properti hanya diberlakukan dalam setiap partisi logis. Beberapa dokumen dapat memiliki properti yang id sama dengan nilai kunci partisi yang berbeda.

Operasi pada item

Item Azure Cosmos mendukung operasi berikut. Anda dapat menggunakan salah satu Azure Cosmos API untuk melakukan operasi.

Operasi Azure CLI API SQL Cassandra API Azure Cosmos DB API untuk MongoDB Gremlin API API Tabel
Sisipkan, Ganti, Hapus, Upsert, Baca Tidak Ya Ya Ya Ya Ya

Langkah berikutnya

Pelajari cara mengelola akun Azure Cosmos dan konsep lainnya: