Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kompresi dokumen tingkat koleksi Amazon DocumentDB memungkinkan Anda menurunkan biaya penyimpanan dan IO dengan mengompresi dokumen dalam koleksi Anda. Anda dapat mengaktifkan kompresi dokumen pada tingkat pengumpulan dan melihat metrik kompresi sesuai kebutuhan dengan mengukur keuntungan penyimpanan melalui metrik kompresi seperti ukuran penyimpanan dokumen terkompresi dan status kompresi. Amazon DocumentDB menggunakan algoritma kompresi LZ4 untuk mengompres dokumen.
Amazon DocumentDB mendukung kompresi dokumen yang dimulai dengan versi 5.0. Berikut ini adalah fungsi kompresi dokumen tingkat koleksi:
Perilaku default - Pengaturan kompresi default untuk koleksi baru di cluster ditentukan oleh parameter cluster
default_collection_compression
. Parameter ini diatur ke “dinonaktifkan” secara default.Mengompresi koleksi yang ada - Pengaturan kompresi untuk koleksi yang ada dapat diubah menggunakan
collMod
perintah.Mengubah ambang kompresi - Ambang kompresi default adalah 2KB. Nilai ini dapat ditentukan untuk koleksi baru menggunakan
createCollection
perintah, dan diubah untuk koleksi yang ada menggunakancollMod
perintah.
catatan
Kompresi dokumen Amazon DocumentDB tidak didukung di Amazon DocumentDB versi 3.6 dan 4.0.
Mengelola kompresi dokumen
Mengaktifkan kompresi dokumen dalam koleksi
Aktifkan kompresi dokumen saat membuat koleksi diAmazon DocumentDB dengan menggunakan metode: db.createCollection()
db.createCollection( sample_collection,{ storageEngine : { documentDB: { compression:{enable: <true | false>} } } })
Mengaktifkan kompresi dokumen dalam sebuah cluster
Kompresi dokumen dapat diaktifkan secara default untuk semua koleksi baru pada tingkat cluster dengan mengatur parameter cluster default_collection_compression
ke “enabled”. Ketika parameter ini diatur ke “diaktifkan”, koleksi yang baru dibuat di cluster akan mengaktifkan kompresi secara default dengan ambang kompresi 2 KB.
Mengompresi koleksi yang ada
Anda juga dapat memodifikasi pengaturan kompresi untuk koleksi yang ada menggunakan collMod
operasi dan menentukan storageEngine
konfigurasi berikut. Harap dicatat bahwa perubahan yang dilakukan menggunakan perintah ini hanya akan berlaku untuk dokumen yang baru disisipkan/diperbarui dan kompresi pada dokumen yang dimasukkan sebelumnya tidak akan berubah.
db.runCommand({ collMod: "orders", storageEngine: { documentDB: {compression: {enable: <true | false>} } } })
Mengatur ambang kompresi
Secara default, ambang kompresi untuk koleksi terkompresi adalah 2032 byte. Nilai ambang batas ini dapat diatur dalam createCollection
perintah saat membuat koleksi baru dengan kompresi diaktifkan:
db.createCollection( sample_collection, { storageEngine : { documentDB: { compression: { enable: true, threshold: <128 - 8000> } } } })
Anda juga dapat memodifikasi ambang kompresi untuk koleksi terkompresi yang ada menggunakan collMod
operasi dan menentukan konfigurasi berikut: storageEngine
db.runCommand({ collMod: "orders", storageEngine: { documentDB: { compression: { enable: true, threshold: <128 - 8000> } } } })
Harap dicatat bahwa ambang kompresi hanya dapat diatur ke nilai antara 128 hingga 8000 byte. Selain itu, enable
opsi perlu disetel ke “true” saat menentukan ambang kompresi.
Memantau kompresi dokumen
Anda dapat memeriksa apakah koleksi dikompresi dan menghitung rasio kompresi sebagai berikut.
Lihat statistik kompresi dengan menjalankan db.collection.stats()
perintah db.printCollectionStats()
or dari shell mongo. Output menunjukkan ukuran asli dan ukuran terkompresi yang dapat Anda bandingkan untuk menganalisis keuntungan penyimpanan dari kompresi dokumen. Dalam contoh ini, statistik untuk koleksi bernama “sample_collection” ditunjukkan di bawah ini. Faktor penskalaan 1024* 1024 digunakan di bawah ini untuk menampilkan nilai dan dalam size
MB. storageSize
db.sample_collection.stats(1024*1024)
Berikut ini adalah contoh output untuk perintah di atas:
{
"ns" : "test.sample_collection",
"count" : 1000000,
"size" : 3906.3,
"avgObjSize" : 4096,
"storageSize" : 1953.1,
compression:{"enabled" : true,"threshold" : 2032},
...
}
ukuran - Ukuran asli dari koleksi dokumen.
avgObjSize- Ukuran dokumen rata-rata sebelum kompresi dibulatkan ke desimal pertama. Satuan ukuran adalah byte.
StorageSize - Ukuran penyimpanan koleksi setelah kompresi. Satuan ukuran adalah byte.
diaktifkan - Menunjukkan jika kompresi diaktifkan atau dinonaktifkan.
Untuk menghitung rasio kompresi aktual, bagi ukuran koleksi dengan ukuran penyimpanan (Size/StorageSize). Untuk contoh di atas, perhitungannya adalah 3906.3/1953.1 yang diterjemahkan menjadi rasio kompresi 2:1.