Praktik terbaik untuk penanganan data deret waktu di DynamoDB - Amazon DynamoDB

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

Praktik terbaik untuk penanganan data deret waktu di DynamoDB

Prinsip desain umum di Amazon DynamoDB merekomendasikan agar Anda meminimalkan jumlah tabel yang Anda gunakan. Untuk sebagian besar aplikasi, hanya satu tabel yang Anda butuhkan. Namun, untuk data deret waktu, Anda sering kali dapat menanganinya menggunakan satu tabel per aplikasi per periode.

Pola desain untuk data deret waktu

Pertimbangkan skenario deret waktu yang umum, yaitu Anda ingin melacak peristiwa dalam jumlah besar. Pola akses tulis Anda adalah semua peristiwa yang direkam memiliki tanggal hari ini. Pola akses baca Anda mungkin membaca peristiwa hari ini paling sering, peristiwa kemarin lebih jarang, dan peristiwa lama sangat sedikit. Salah satu cara untuk mengatasinya adalah dengan memasukkan tanggal dan waktu saat ini ke dalam kunci primer.

Pola desain berikut sering kali menangani skenario semacam ini dengan efektif:

  • Buat satu tabel per periode, dilengkapi dengan kapasitas baca dan tulis yang diperlukan serta indeks yang diperlukan.

  • Sebelum akhir setiap periode, buat tabel untuk periode berikutnya. Setelah periode saat ini berakhir, arahkan lalu lintas peristiwa ke tabel baru. Anda dapat memberikan nama pada tabel-tabel ini yang menentukan periode yang telah dicatatnya.

  • Segera setelah tabel tidak lagi ditulis, kurangi kapasitas tulis yang disediakan ke nilai yang lebih rendah (misalnya, 1WCU), dan berikan kapasitas baca apa pun yang sesuai. Kurangi kapasitas baca yang disediakan pada tabel sebelumnya seiring bertambahnya usia. Anda dapat mengarsipkan atau menghapus tabel yang isinya jarang atau tidak pernah diperlukan.

Tujuannya adalah untuk mengalokasikan sumber daya yang diperlukan untuk periode saat ini yang akan mengalami volume lalu lintas tertinggi dan mengurangi penyediaan tabel lama yang tidak digunakan secara aktif, sehingga menghemat biaya. Bergantung pada kebutuhan bisnis Anda, Anda dapat mempertimbangkan pembagian tulis untuk mendistribusikan lalu lintas secara merata ke kunci partisi logis. Untuk informasi selengkapnya, lihat Menggunakan sharding tulis untuk mendistribusikan beban kerja secara merata di tabel DynamoDB Anda.

Contoh tabel deret waktu

Berikut ini adalah contoh data deret waktu yang tabelnya saat ini disediakan dengan kapasitas baca/tulis yang lebih tinggi dan kapasitas tabel lama diturunkan karena jarang diakses.

Skema tabel untuk data deret waktu volume tinggi.