Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Cluster elastis Amazon DocumentDB: cara kerjanya
Topik di bagian ini memberikan informasi tentang mekanisme dan fungsi yang mendukung cluster elastis Amazon DocumentDB.
Topik
Sharding cluster elastis Amazon DocumentDB
Cluster elastis Amazon DocumentDB menggunakan sharding berbasis hash untuk mempartisi data di seluruh sistem penyimpanan terdistribusi. Sharding, juga dikenal sebagai partisi, membagi kumpulan data besar menjadi kumpulan data kecil di beberapa node yang memungkinkan Anda untuk meningkatkan skala database Anda melampaui batas penskalaan vertikal. Cluster elastis menggunakan pemisahan, atau “decoupling,” komputasi dan penyimpanan di Amazon DocumentDB, memungkinkan Anda untuk menskalakan secara independen satu sama lain. Alih-alih mempartisi ulang koleksi dengan memindahkan potongan kecil data antara node komputasi, cluster elastis menyalin data secara efisien dalam sistem penyimpanan terdistribusi.
Definisi pecahan
Definisi nomenklatur pecahan:
Shard — Pecahan menyediakan komputasi untuk cluster elastis. Ini akan memiliki instance penulis tunggal dan 0-15 replika baca. Secara default, pecahan akan memiliki dua contoh: penulis dan replika baca tunggal. Anda dapat mengonfigurasi maksimal 32 pecahan dan setiap instans shard dapat memiliki maksimum 64 vCPU.
Kunci pecahan — Kunci pecahan adalah bidang wajib dalam dokumen JSON Anda dalam koleksi terpecah-pecah yang digunakan cluster elastis untuk mendistribusikan lalu lintas baca dan tulis ke pecahan yang cocok.
Koleksi Sharded — Koleksi sharded adalah kumpulan yang datanya didistribusikan di seluruh cluster elastis dalam partisi data.
Partisi — Partisi adalah bagian logis dari data sharded. Saat Anda membuat koleksi sharded, data diatur ke dalam partisi dalam setiap pecahan secara otomatis berdasarkan kunci shard. Setiap pecahan memiliki beberapa partisi.
Mendistribusikan data di seluruh pecahan yang dikonfigurasi
Buat kunci shard yang memiliki banyak nilai unik. Kunci shard yang baik akan mempartisi data Anda secara merata di seluruh pecahan yang mendasarinya, memberikan beban kerja Anda throughput dan kinerja terbaik. Contoh berikut adalah data nama karyawan yang menggunakan kunci shard bernama “user_id”:
DocumentDB menggunakan hash sharding untuk mempartisi data Anda di seluruh pecahan yang mendasarinya. Data tambahan dimasukkan dan didistribusikan dengan cara yang sama:
Saat Anda meningkatkan skala database dengan menambahkan pecahan tambahan, Amazon DocumentDB secara otomatis mendistribusikan ulang data:
Migrasi cluster elastis
Amazon DocumentDB mendukung migrasi data sharded MongoDB ke cluster elastis. Metode migrasi offline, online, dan hibrida didukung. Untuk informasi selengkapnya, lihat Migrasi dan upgrade Amazon DocumentDB.
Penskalaan cluster elastis
Cluster elastis Amazon DocumentDB menyediakan kemampuan untuk meningkatkan jumlah pecahan (menskalakan) di cluster elastis Anda, dan jumlah vCPU yang diterapkan pada setiap pecahan (meningkatkan skala). Anda juga dapat mengurangi jumlah pecahan dan kapasitas komputasi (vCPU) sesuai kebutuhan.
Untuk praktik terbaik penskalaan, lihatPenskalaan cluster elastis.
catatan
Cluster-level penskalaan juga tersedia. Untuk informasi selengkapnya, lihat Menskalakan cluster Amazon DocumentDB.
Keandalan cluster elastis
Amazon DocumentDB dirancang agar dapat diandalkan, tahan lama, dan toleran terhadap kesalahan. Untuk meningkatkan ketersediaan, cluster elastis menerapkan dua node per shard yang ditempatkan di Zona Ketersediaan yang berbeda. Amazon DocumentDB menyertakan beberapa fitur otomatis yang menjadikannya solusi basis data yang andal. Untuk informasi selengkapnya, lihat Keandalan Amazon DocumentDB.
Penyimpanan dan ketersediaan cluster elastis
Data Amazon DocumentDB disimpan dalam volume klaster, yang merupakan volume virtual tunggal yang menggunakan solid state drive (SSD). Volume cluster terdiri dari enam salinan data Anda, yang direplikasi secara otomatis di beberapa Zona Ketersediaan dalam satu Wil AWS ayah. Replikasi ini membantu memastikan bahwa data Anda sangat berdaya tahan, dengan kemungkinan kehilangan data yang lebih kecil. Ini juga membantu memastikan bahwa klaster Anda lebih tersedia selama failover karena salinan data Anda sudah ada di Availability Zone lainnya. Untuk detail selengkapnya tentang penyimpanan, ketersediaan tinggi, dan replikasi, lihatAmazon DocumentDB: cara kerjanya.
Perbedaan fungsional antara Amazon DocumentDB 4.0 dan cluster elastis
Perbedaan fungsional berikut ada antara Amazon DocumentDB 4.0 dan cluster elastis.
Hasil dari
topdancollStatsdipartisi oleh pecahan. Untuk koleksi sharded, data didistribusikan di antara beberapa partisi dancollStatslaporan dikumpulkancollScansdari partisi.Statistik koleksi dari
topdancollStatsuntuk koleksi terpecah-pecah diatur ulang saat jumlah pecahan cluster diubah.Peran bawaan cadangan sekarang mendukung
serverStatus. Tindakan - Pengembang dan aplikasi dengan peran cadangan dapat mengumpulkan statistik tentang status cluster Amazon DocumentDB.SecondaryDelaySecsBidang menggantikanslaveDelayreplSetGetConfigoutput.Per
hellointah menggantikanisMaster-hellomengembalikan dokumen yang menjelaskan peran cluster elastis.$elemMatchOperator dalam cluster elastis hanya cocok dengan dokumen di tingkat sarang pertama array. Di Amazon DocumentDB 4.0, operator melintasi semua level sebelum mengembalikan dokumen yang cocok. Contoh:
db.foo.insert( [ {a: {b: 5}}, {a: {b: [5]}}, {a: {b: [3, 7]}}, {a: [{b: 5}]}, {a: [{b: 3}, {b: 7}]}, {a: [{b: [5]}]}, {a: [{b: [3, 7]}]}, {a: [[{b: 5}]]}, {a: [[{b: 3}, {b: 7}]]}, {a: [[{b: [5]}]]}, {a: [[{b: [3, 7]}]]} ]); // Elastic clusters > db.foo.find({a: {$elemMatch: {b: {$elemMatch: {$lt: 6, $gt: 4}}}}}, {_id: 0}) { "a" : [ { "b" : [ 5 ] } ] } // Docdb 4.0: traverse more than one level deep > db.foo.find({a: {$elemMatch: {b: {$elemMatch: {$lt: 6, $gt: 4}}}}}, {_id: 0}) { "a" : [ { "b" : [ 5 ] } ] } { "a" : [ [ { "b" : [ 5 ] } ] ] }
Proyeksi “$” di Amazon DocumentDB 4.0 mengembalikan semua dokumen dengan semua bidang. Dengan cluster elastis,
findperintah dengan proyeksi “$” mengembalikan dokumen yang cocok dengan parameter kueri yang hanya berisi bidang yang cocok dengan proyeksi “$”.Dalam cluster elastis,
findperintah dengan parameter$regexku$optionseri mengembalikan kesalahan: “Tidak dapat mengatur opsi di $regex dan $options.”
Dengan cluster elastis,
$indexOfCPsekarang mengembalikan “-1" ketika:substring tidak ditemukan di
string expression, ataustartadalah angka yang lebih besar dariend, ataustartadalah angka yang lebih besar dari panjang byte string.
Di Amazon DocumentDB 4.0,
$indexOfCPmengembalikan “0" ketikastartposisinya adalah angka yang lebih besar dariendatau panjang byte string.Dengan cluster elastis, operasi proyeksi di
_id fields, misalnya{"_id.nestedField" : 1}, mengembalikan dokumen yang hanya menyertakan bidang yang diproyeksikan. Sementara itu, di Amazon DocumentDB 4.0, perintah proyeksi bidang bersarang tidak menyaring dokumen apa pun.