View a markdown version of this page

Operasi massal yang efisien - Amazon DynamoDB

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

Operasi massal yang efisien

Kapan menggunakan pola ini

Pola ini berguna untuk secara efisien melakukan pembaruan massal pada item DynamoDB.

  • DynamoDB-shell tidak didukung untuk kasus penggunaan produksi.

  • TransactWriteItems— hingga 100 pembaruan individu dengan atau tanpa kondisi, dijalankan sebagai bundel ACID semua atau tidak sama sekali

    Trade-off — Throughput tambahan dikonsumsi, 2 WCU per penulisan 1 KB.

  • PartiQL BatchExecuteStatement - hingga 25 pembaruan dengan atau tanpa kondisi

    Trade-off — Logika tambahan diperlukan untuk mendistribusikan permintaan dalam batch 25.

  • AWS Step Functions — operasi massal terbatas tarif untuk pengembang yang akrab dengannya. AWS Lambda

    Trade-off - Waktu eksekusi berbanding terbalik dengan batas laju. Dibatasi oleh batas waktu fungsi Lambda maksimum. Fungsionalitas mensyaratkan bahwa perubahan data yang terjadi antara baca dan tulis dapat diganti. Untuk info selengkapnya, lihat Mengisi ulang atribut Waktu untuk Langsung Amazon DynamoDB menggunakan Amazon EMR: Bagian 2.

  • AWS Glue dan Amazon EMR — operasi massal terbatas kecepatan dengan paralelisme terkelola. Untuk aplikasi atau pembaruan yang tidak peka terhadap waktu, opsi ini dapat berjalan di latar belakang hanya menggunakan persentase kecil throughput. Kedua layanan menggunakan konektor emr-dynamodb untuk melakukan operasi DynamoDB. Layanan ini melakukan pembacaan besar diikuti oleh penulisan besar item yang diperbarui dengan opsi untuk batas tarif.

    Trade-off - Waktu eksekusi berbanding terbalik dengan batas laju. Fungsionalitas termasuk bahwa perubahan data yang terjadi antara baca dan tulis dapat diganti. Anda tidak dapat membaca dari Global Secondary Indexes (GSI). Lihat, Mengisi ulang atribut Amazon DynamoDB Time to Live menggunakan Amazon EMR: Bagian 2.

  • DynamoDB Shell — operasi massal terbatas kecepatan menggunakan kueri. SQL-like Anda dapat membaca dari GSI untuk efisiensi yang lebih baik.

    Trade-off - Waktu eksekusi berbanding terbalik dengan batas laju. Lihat Men ilai operasi massal terbatas di DynamoDB Shell.

  • Massal Executor untuk DynamoDB — alat baris perintah sumber terbuka yang digunakan AWS Glue di bagian belakang untuk eksekusi paralel tugas massal seperti menghitung, menemukan, menghapus, memperbarui, menyalin, mengisi, memuat, dan diff. Tidak diperlukan pengkodean untuk perintah bawaan, dan Anda dapat memperluasnya dengan perintah khusus menggunakanPython. Ini mendukung pembatasan tarif dan memberikan perkiraan biaya sebelum eksekusi. Massal Executor adalah open source dan tidak menyertakan dukungan resmi apa pun.

    Trade-off - Membutuhkan AWS Glue lingkungan (dibuat selama bootstrap). Waktu eksekusi berbanding terbalik dengan batas tarif. Perintah khusus membutuhkanPython. Lihat Memperkenalkan Eksekutor Massal open source untuk Amazon Dynam oDB.

Menggunakan pola

Pembaruan massal dapat memiliki implikasi biaya yang signifikan terutama jika Anda menggunakan mode throughput sesuai permintaan. Ada pertukaran antara kecepatan dan biaya jika Anda menggunakan mode throughput yang disediakan. Mengatur parameter batas laju dengan sangat ketat dapat menyebabkan waktu pemrosesan yang sangat besar. Anda dapat secara kasar menentukan kecepatan pembaruan menggunakan ukuran item rata-rata dan batas tarif.

Atau, Anda dapat menentukan jumlah throughput yang diperlukan untuk proses berdasarkan durasi yang diharapkan dari proses pembaruan dan ukuran item rata-rata. Referensi blog yang dibagikan dengan setiap pola memberikan rincian tentang strategi, implementasi, dan batasan penggunaan pola. Untuk informasi selengkapnya, lihat pemrosesan Cost-effective massal dengan Amazon DynamoDB.

Ada beberapa pendekatan untuk melakukan pembaruan massal terhadap tabel DynamoDB langsung. Pendekatan yang sesuai tergantung pada faktor-faktor seperti persyaratan and/or idempotensi ACID, jumlah item yang akan diperbarui dan keakraban dengan API. Penting untuk mempertimbangkan pertukaran biaya versus waktu, sebagian besar pendekatan yang dibahas di atas memberikan opsi untuk membatasi kecepatan throughput yang digunakan oleh pekerjaan pembaruan massal.