View a markdown version of this page

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 khusus. Dokumen baru dan 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 diketahui 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 rendah I/O — Dokumen terkompresi membutuhkan lebih sedikit I/O, berpotensi meningkatkan kinerja.

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

catatan

Dictionary-based kompresi tidak didukung pada Amazon DocumentDB versi 3.6, 4.0, dan 5.0.

Pertimbangan performa

Kompresi Zstd melibatkan pertukaran berikut:

  • Penyimpanan versus CPU - Kompresi Zstd mencapai rasio kompresi yang lebih baik tetapi dapat menggunakan sedikit lebih banyak sumber daya CPU dibandingkan dengan kompresi LZ4.

  • Kompresi Awal — Koleksi baru mungkin tidak mencapai kompresi optimal sampai cukup dokumen dimasukkan untuk melatih kamus yang efektif. Saat ini, Amazon DocumentDB melatih kamus ketika koleksi memiliki setidaknya 100 dokumen.

  • Jenis Beban Kerja — Read-intensive beban kerja di mana seluruh data masuk ke 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 untuk semua koleksi baru di cluster Anda, atur default_collection_compression parameter dalam grup parameter cluster Anda untuk zstd.

Memulai

Di Amazon DocumentDB 8.0, koleksi baru menggunakan kompresi Zstd secara default. Untuk mematikan kompresi untuk koleksi baru, atur default_collection_compression parameter dalam grup parameter cluster Anda untuk disabled.

Dimulai dengan Amazon DocumentDB 8.0, enabled tidak lagi nilai yang valid untuk default_collection_compression. Nilai yang valid adalah zstd, lz4, dan disabled.

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:

  • kompresi. Algoritma — Algoritma yang digunakan (lz4 atau zstd)

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

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

  • ukuran — Ukuran logis koleksi tanpa kompresi. Angka ini diperoleh dengan mengalikan avgObjSize dengan jumlah total dokumen dalam koleksi, jadi jika rata-rataObjSize adalah perkiraan, angka ini juga akan menjadi perkiraan.

  • menghitung — Jumlah dokumen dalam koleksi

Berikut ini CloudWatch metrik dapat membantu saat mengevaluasi kompresi berbasis kamus:

  • CPUUtilization

  • FreeableMemory

  • VolumeBytesUsed

  • VolumeReadIOPs

  • VolumeWriteIOPs

Metrik CollStats:

  • PenyimpananUkuran

  • ukuran

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