Pilih API di Azure Cosmos DB
BERLAKU UNTUK: NoSQL MongoDB Cassandra Gremlin Meja PostgreSQL
Azure Cosmos DB adalah database NoSQL, relasional, dan vektor yang dikelola sepenuhnya untuk pengembangan aplikasi modern. Azure Cosmos DB mengambil alih pekerjaan administrasi database untuk Anda dengan manajemen, pembaruan, dan patch otomatis. Ini juga menangani manajemen kapasitas dengan opsi penskalaan tanpa server dan otomatis yang hemat biaya, yang merespons kebutuhan aplikasi untuk menyesuaikan kapasitas dengan permintaan.
Azure Cosmos DB menawarkan beberapa API database, yang mencakup NoSQL, MongoDB, PostgreSQL, Cassandra, Gremlin, dan Table. Dengan menggunakan API ini, Anda dapat memodelkan data dunia nyata menggunakan dokumen, nilai kunci, grafik, dan model data keluarga kolom. API ini memungkinkan aplikasi Anda untuk memperlakukan Azure Cosmos DB seolah-olah itu adalah berbagai teknologi database lainnya, tanpa overhead manajemen dan pendekatan penskalaan. Azure Cosmos DB membantu Anda menggunakan ekosistem, alat, dan keterampilan yang sudah Anda miliki untuk pemodelan data dan kueri dengan berbagai API-nya.
Semua API menawarkan penskalaan otomatis penyimpanan dan throughput, fleksibilitas, dan jaminan performa. Tidak ada API terbaik, dan Anda dapat memilih salah satu API untuk membangun aplikasi Anda. Artikel ini akan membantu Anda memilih API berdasarkan beban kerja dan persyaratan tim Anda.
API untuk NoSQL berasal dari Azure Cosmos DB.
API untuk MongoDB, PostgreSQL, Cassandra, Gremlin, dan Table menerapkan protokol kawat mesin database sumber terbuka. API ini paling cocok jika kondisi berikut ini benar:
- Jika Anda memiliki aplikasi MongoDB, PostgreSQL Cassandra, atau Gremlin
- Jika Anda tidak ingin menulis ulang seluruh lapisan akses data Anda
- Jika Anda ingin menggunakan ekosistem pengembang sumber terbuka, driver klien, keahlian, dan sumber daya untuk database Anda
- Jika Anda ingin menggunakan fitur inti Azure Cosmos DB seperti:
- Distribusi global
- Penskalaan elastis penyimpanan dan throughput
- Performa tinggi dalam skala besar
- Latensi rendah
- Kemampuan untuk menjalankan beban kerja transaksional dan analitik
- Platform yang dikelola sepenuhnya
- Jika Anda mengembangkan aplikasi modern di lingkungan multicloud
Anda dapat membuat aplikasi baru dengan API ini atau memigrasikan data yang ada. Untuk menjalankan aplikasi yang dimigrasikan, ubah string koneksi aplikasi Anda dan terus jalankan seperti sebelumnya. Saat memigrasikan aplikasi yang sudah ada, pastikan untuk mengevaluasi dukungan fitur API ini.
Berdasarkan beban kerja, Anda harus memilih API yang sesuai dengan persyaratan Anda. Gambar berikut menunjukkan diagram alur tentang cara memilih API yang tepat saat membuat aplikasi baru atau memigrasikan aplikasi yang ada ke Azure Cosmos DB:
Diagram pohon keputusan untuk memilih API di Azure Cosmos DB. Setengah dari diagram menggambarkan berapa banyak beban kerja database sumber terbuka yang ada yang dapat menggunakan API yang sesuai untuk Azure Cosmos DB. Setengah diagram lainnya menggambarkan bagaimana aplikasi baru dapat menggunakan API untuk NoSQL, atau menggunakan keterampilan yang ada dengan API untuk database sumber terbuka.
API Azure Cosmos DB untuk NoSQL menyimpan data dalam format dokumen. API ini menawarkan pengalaman end-to-end terbaik karena kita memiliki kontrol penuh atas antarmuka, layanan, dan perpustakaan klien SDK. Fitur baru apa pun yang diluncurkan ke Azure Cosmos DB pertama kali tersedia di API untuk akun NoSQL. Akun NoSQL menyediakan dukungan untuk mengkueri item menggunakan sintaks Bahasa Permintaan Terstruktur (SQL), salah satu bahasa kueri yang paling dikenal dan populer untuk mengkueri objek JSON. Untuk mempelajari selengkapnya, lihat artikel Api Azure Cosmos DB untuk pelatihan NoSQL dan mulai menggunakan kueri SQL.
Jika Anda bermigrasi dari database lain seperti Oracle, DynamoDB, HBase, dll. dan jika Anda ingin menggunakan teknologi modern untuk membangun aplikasi Anda, API untuk NoSQL adalah opsi yang direkomendasikan. API untuk NoSQL mendukung analitik dan menawarkan isolasi performa antara beban kerja operasional dan analitik.
API Azure Cosmos DB untuk MongoDB menyimpan data dalam struktur dokumen, melalui format BSON. Ini kompatibel dengan protokol kawat MongoDB; namun, ini tidak menggunakan kode terkait MongoDB asli. API untuk MongoDB adalah pilihan yang bagus jika Anda ingin menggunakan ekosistem dan keterampilan MongoDB yang lebih luas, tanpa mengorbankan penggunaan fitur Azure Cosmos DB.
Fitur yang disediakan Azure Cosmos DB, yang tidak perlu Anda kompromi meliputi:
- Penskalaan
- Ketersediaan tinggi
- Replikasi lokasi geografis
- Beberapa lokasi tulis
- Manajemen shard otomatis dan transparan
- Replikasi transparan antara penyimpanan operasional dan analitik
Anda dapat menggunakan aplikasi MongoDB yang ada dengan API untuk MongoDB hanya dengan mengubah string koneksi. Anda dapat memindahkan data apa pun yang ada menggunakan alat MongoDB asli seperti mongodump & mongorestore atau menggunakan alat Azure Database Migration kami. Alat, seperti shell MongoDB, MongoDB Compass, dan Robo3T, dapat menjalankan kueri dan bekerja dengan data seperti yang dilakukan dengan MongoDB asli. Untuk mempelajari lebih lanjut, lihat artikel API untuk MongoDB.
Azure Cosmos DB for PostgreSQL adalah layanan terkelola untuk menjalankan PostgreSQL dalam skala apa pun, dengan Citus sumber terbuka kekuatan super tabel terdistribusi. Ini menyimpan data baik pada satu simpul, atau didistribusikan dalam konfigurasi multi-simpul.
Azure Cosmos DB for PostgreSQL dibangun di PostgreSQL asli--daripada fork PostgreSQL--dan memungkinkan Anda memilih versi database utama apa pun yang didukung oleh komunitas PostgreSQL. Ini ideal untuk memulai database simpul tunggal dengan pengindeksan yang kaya, kemampuan geospasial, dan dukungan JSONB. Nantinya, jika Anda membutuhkan lebih banyak performa, Anda dapat menambahkan simpul ke kluster dengan waktu henti nol.
Jika Anda mencari database relasional sumber terbuka terkelola dengan performa tinggi dan replikasi geografis, Azure Cosmos DB for PostgreSQL adalah pilihan yang direkomendasikan. Untuk mempelajari selengkapnya, lihat pengenalan Azure Cosmos DB for PostgreSQL.
API Azure Cosmos DB untuk Cassandra menyimpan data dalam skema berorientasi kolom. Apache Cassandra menawarkan pendekatan penskalaan horizontal yang sangat terdistribusi untuk menyimpan data dalam volume besar sekaligus menawarkan pendekatan fleksibel untuk skema berorientasi kolom. API untuk Cassandra di Azure Cosmos DB selaras dengan filosofi ini untuk mendekati database NoSQL terdistribusi. API untuk Cassandra ini kompatibel dengan protokol kawat dengan Apache Cassandra asli. Anda harus mempertimbangkan API untuk Cassandra jika Anda ingin mendapatkan manfaat dari elastisitas dan sifat Azure Cosmos DB yang dikelola sepenuhnya dan masih menggunakan sebagian besar fitur, alat, dan ekosistem Apache Cassandra asli. Sifat yang dikelola sepenuhnya ini berarti pada API untuk Cassandra Anda tidak perlu mengelola OS, Java VM, pengumpul sampah, performa baca/tulis, node, kluster, dll.
Anda dapat menggunakan driver klien Apache Cassandra untuk terhubung ke API untuk Cassandra. API untuk Cassandra memungkinkan Anda berinteraksi dengan data menggunakan Cassandra Query Language (CQL), dan alat seperti shell CQL, driver klien Cassandra yang sudah Anda kenal. API untuk Cassandra saat ini hanya mendukung skenario OLTP. Dengan menggunakan API untuk Cassandra, Anda juga dapat menggunakan fitur unik Azure Cosmos DB seperti umpan perubahan. Untuk mempelajari lebih lanjut, lihat artikel API untuk Cassandra . Untuk informasi selengkapnya jika Anda sudah terbiasa dengan Apache Cassandra, tetapi baru mengenal Azure Cosmos DB, lihat cara beradaptasi dengan API untuk Cassandra.
API Azure Cosmos DB untuk Gremlin memungkinkan pengguna membuat kueri grafik dan menyimpan data sebagai tepi dan simpul.
Gunakan API untuk Gremlin untuk skenario:
- Melibatkan data dinamis
- Melibatkan data dengan relasi kompleks
- Melibatkan data yang terlalu kompleks untuk dimodelkan dengan database relasional
- Jika Anda ingin menggunakan ekosistem dan keterampilan Gremlin yang ada
API untuk Gremlin menggabungkan kekuatan algoritma database grafik dengan infrastruktur terkelola yang sangat dapat diskalakan. API ini menyediakan solusi unik dan fleksibel untuk masalah data umum yang terkait dengan kurangnya fleksibilitas atau pendekatan relasional. API untuk Gremlin saat ini hanya mendukung skenario OLTP.
API untuk Gremlin didasarkan pada kerangka kerja komputasi grafik Apache TinkerPop . API untuk Gremlin menggunakan bahasa kueri Graph yang sama untuk menyerap dan mengkueri data. API ini menggunakan strategi partisi Azure Cosmos DB untuk melakukan operasi baca/tulis dari mesin database Graph. API untuk Gremlin memiliki dukungan protokol kawat dengan Gremlin sumber terbuka, sehingga Anda dapat menggunakan SDK Gremlin sumber terbuka untuk membangun aplikasi Anda. API untuk Gremlin juga berfungsi dengan Apache Spark dan GraphFrames untuk skenario grafik analitik yang kompleks. Untuk mempelajari selengkapnya, lihat artikel API untuk Gremlin .
API Azure Cosmos DB untuk Tabel menyimpan data dalam format kunci/nilai. Jika saat ini Anda menggunakan penyimpanan Azure Table, Anda mungkin melihat beberapa batasan dalam latensi, penskalaan, throughput, distribusi global, manajemen indeks, performa kueri rendah. API untuk Tabel mengatasi batasan ini dan disarankan untuk memigrasikan aplikasi Anda jika Anda ingin menggunakan manfaat Azure Cosmos DB. API untuk Tabel hanya mendukung skenario OLTP.
Aplikasi yang ditulis untuk penyimpanan Azure Table dapat bermigrasi ke API untuk Tabel dengan sedikit perubahan kode dan memanfaatkan kemampuan premium. Untuk mempelajari selengkapnya, lihat artikel API untuk Tabel .
Mencoba melakukan perencanaan kapasitas untuk migrasi ke Azure Cosmos DB untuk NoSQL atau MongoDB dari kluster database yang ada? Anda dapat menggunakan informasi tentang kluster database Anda yang ada saat ini untuk membuat perencanaan kapasitas.
- Untuk informasi selengkapnya tentang memperkirakan unit permintaan jika yang Anda tahu adalah jumlah vCore dan server di kluster database yang sudah ada yang dipecah dan direplikasi, lihat memperkirakan unit permintaan menggunakan vCore atau vCPU.
- Untuk informasi selengkapnya tentang memperkirakan unit permintaan jika Anda mengetahui tingkat permintaan umum untuk beban kerja database Anda saat ini, lihat perencana kapasitas untuk API untuk NoSQL dan API untuk MongoDB