Mengelola kompresi berbasis kamus di Amazon DocumentDB 8.0 - Amazon DocumentDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengelola kompresi berbasis kamus di Amazon DocumentDB 8.0

Amazon DocumentDB 8.0 memperkenalkan algoritma kompresi dokumen baru, zstd, sebagai alternatif yang ditingkatkan untuk. LZ4 Saat Anda mengaktifkan kompresi kamus pada koleksi Amazon DocumentDB 8.0 dengan memilih Zstd sebagai algoritma kompresi, dokumen dari koleksi Anda diambil sampelnya untuk membuat kamus kompresi kustom. Dokumen baru dan yang diperbarui dikompresi menggunakan kamus ini dan algoritma zstd. Pendekatan ini biasanya mencapai rasio kompresi yang lebih tinggi daripada metode kompresi standar, terutama untuk koleksi dengan skema dokumen yang konsisten atau nama bidang berulang.

Lz4 adalah algoritma yang dirancang untuk kompresi dan dekompresi cepat. Hal ini dikenal ringan pada CPU sambil mencapai kompresi yang nyata. Zstd adalah algoritma tujuan umum yang dengan pengaturan default menggunakan lebih banyak CPU tetapi mencapai rasio kompresi yang lebih baik daripada lz4. Penggunaan kamus meningkatkan kompresi lebih jauh untuk sebagian besar dokumen JSON. Beberapa manfaat dari algoritma Zstd adalah:

  • Mengurangi Biaya Penyimpanan: Rasio kompresi yang lebih tinggi berarti penggunaan penyimpanan yang lebih sedikit dan biaya yang lebih rendah.

  • Lebih rendahI/O: Compressed documents require less I/O, berpotensi meningkatkan kinerja.

  • Dioptimalkan untuk koleksi Anda: Kamus dilatih khusus untuk pola data koleksi Anda.

catatan

Kompresi berbasis kamus tidak didukung di Amazon DocumentDB versi 3.6, 4.0, dan 5.0.

Pertimbangan Kinerja

Kompresi Zstd melibatkan trade-off berikut:

  • Penyimpanan vs CPU: Kompresi Zstd mencapai rasio kompresi yang lebih baik tetapi mungkin menggunakan sumber daya CPU yang sedikit lebih banyak dibandingkan dengan kompresi. LZ4

  • Kompresi Awal: Koleksi baru mungkin tidak mencapai kompresi optimal sampai cukup dokumen dimasukkan untuk melatih kamus yang efektif. Saat ini, kamus dilatih jika koleksi setidaknya 100 dokumen.

  • Jenis Beban Kerja: Beban kerja intensif baca di mana seluruh data masuk ke dalam cache buffer mungkin mengalami peningkatan latensi dan penggunaan CPU karena overhead dekompresi.

Kompresi Zstd sangat efektif untuk koleksi dengan dokumen kecil, array dokumen dan nama bidang berulang.

Mengaktifkan kompresi berbasis kamus

Untuk koleksi baru Anda dapat menggunakan perintah di bawah ini untuk mengaktifkan kompresi Zstd:

db.createCollection("myCollection", { storageEngine: { documentDB: { compression: { enable: true, algorithm: "zstd" } } } } )

Anda juga dapat mengaktifkan atau memodifikasi kompresi pada koleksi yang ada:

db.runCommand({ collMod: "myCollection", storageEngine: { documentDB: { compression: { enable: true, algorithm: "zstd" } } } })

Untuk mengaktifkan algoritma Zstd di semua koleksi di cluster Anda, Anda dapat memodifikasi grup parameter cluster untuk memilih “zstd” sebagai nilai untuk parameter “default_collection_compression”.

Memulai

Amazon DocumentDB 8.0 hadir dengan kompresi Zstd diaktifkan secara default. Anda selalu dapat mematikannya dengan menyetel nilai 'default_compression' menjadi dinonaktifkan di grup parameter cluster Anda. Perlu dicatat bahwa dimulai dengan Amazon DocumentDB 8.0, 'enabled' bukan lagi pilihan yang valid untuk default_compression, dan Anda harus memilih dari Zstd dan. LZ4

Memantau

Anda dapat melihat informasi kompresi untuk koleksi menggunakan salah satu perintah berikut:

  • db.runCommand ({collStats: “myCollection”}) ATAU

  • db.collection.stats ()

Perintah ini mengembalikan statistik kunci yang dapat Anda gunakan untuk menghitung rasio kompresi:

  • compression.algorithm: Algoritma yang digunakan (“lz4" atau “zstd”)

  • StorageSize: Penyimpanan aktual yang digunakan oleh koleksi, setelah kompresi. Perhatikan bahwa nomor ini mencakup fragmentasi (yaitu, ruang yang tidak digunakan di halaman database)

  • avgObjSize: Ukuran logis rata-rata dari dokumen koleksi, didekompresi. Perhatikan bahwa jika koleksi Anda memiliki lebih dari 20k dokumen, nomor ini akan menjadi perkiraan berdasarkan sampel 20k dokumen.

  • ukuran: Ukuran logis dari koleksi tanpa kompresi. Jumlah ini diperoleh dengan mengalikan avgObjSize dengan jumlah total dokumen dalam koleksi, jadi jika avgObjSize merupakan perkiraan, angka ini juga akan menjadi perkiraan.

  • hitung: Jumlah dokumen dalam koleksi

CloudWatch Metrik berikut dapat membantu saat mengevaluasi kompresi berbasis kamus:

  • CPUUtilization

  • FreeableMemory

  • VolumeBytesUsed

  • VolumeReadIOPs

  • VolumeWriteIOPs

Metrik CollStats:

  • storageSize

  • ukuran

Selain itu, dapat berguna untuk melacak metrik khusus untuk aplikasi Anda, seperti latensi dan throughput per jenis kueri atau API.