View a markdown version of this page

Praktik terbaik untuk pengiriman data - Amazon Kinesis Data Streams

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

Praktik terbaik untuk pengiriman data

Praktik terbaik berikut membantu Anda mendapatkan hasil maksimal dari pengiriman data di Amazon Kinesis Data Streams. Untuk daftar lengkap metrik pengiriman yang dirujuk dalam rekomendasi ini, lihatMemantau pengiriman data.

Throughput dan kesegaran data

  • Tetapkan DataFreshnessInSeconds parameter berdasarkan throughput streaming Anda. Nilai yang lebih rendah meningkatkan frekuensi pengiriman tetapi dapat menghasilkan file output yang lebih kecil. Nilai yang lebih tinggi memungkinkan lebih banyak data terakumulasi untuk setiap siklus pengiriman.

  • Buat CloudWatch alarm Amazon pada DataFreshness metrik untuk mendeteksi kapan latensi pengiriman melebihi ambang batas yang dapat diterima.

  • Anda dapat membuat beberapa pengiriman dari aliran Kinesis Data Streams yang sama. Setiap pengiriman beroperasi secara independen, memungkinkan Anda mengirimkan data ke beberapa tujuan secara bersamaan.

Manajemen skema (tabel streaming di Apache Iceberg)

  • Daftarkan skema Anda di AWS Glue Schema Registry sebelum membuat pengiriman. Pengiriman menggunakan skema terdaftar untuk menentukan struktur tabel tujuan.

  • Pengiriman tidak mendukung evolusi skema. Jika skema Anda berubah, Anda harus menghapus dan membuat ulang pengiriman dengan skema yang diperbarui.

  • Gunakan validasi skema sisi produsen untuk memastikan semua catatan sesuai dengan skema terdaftar sebelum ditulis ke aliran. Ini meminimalkan pengiriman catatan yang gagal.

Tata letak objek S3 (bucket Amazon S3 tujuan umum)

  • Pilih template kunci keluaran yang cocok dengan pola kueri konsumen hilir Anda. Misalnya, gunakan awalan berbasis tanggal jika kueri Anda sering memfilter berdasarkan rentang waktu.

  • Aktifkan kompresi GZIP atau ZSTD untuk mengurangi biaya penyimpanan dan meningkatkan kinerja baca untuk beban kerja analitik hilir.

  • Pilih kelas penyimpanan Amazon S3 yang sesuai berdasarkan pola akses data Anda. Gunakan STANDARD untuk data yang sering diakses, INTELLIGENT_TIERING untuk membiarkan Amazon S3 memindahkan objek antar tingkatan akses secara otomatis, atau GLACIER_IR untuk data yang jarang diakses yang masih memerlukan pengambilan milidetik.

Keamanan

  • Cakup kebijakan IAM Anda ke bucket atau tabel tertentu tempat pengiriman ditulis. Hindari menggunakan ARN sumber daya wildcard.

  • Sertakan kunci aws:SourceArn dan aws:SourceAccount kondisi dalam kebijakan kepercayaan peran IAM yang digunakan oleh pengiriman. Ini mencegah masalah wakil yang membingungkan dengan memastikan hanya pengiriman spesifik Anda yang dapat mengambil peran tersebut.

  • Akti AWS CloudTrail fkan logging untuk mengaudit semua panggilan API pengiriman dan perubahan konfigurasi.

  • Gunakan AWS KMS kunci yang dikelola pelanggan untuk data sensitif. Ini memberi Anda kontrol penuh atas rotasi kunci, kebijakan akses, dan jejak audit.

Dead-letter antrian

  • Selalu konfigurasikan antrian surat mati untuk pengiriman Anda. Catatan yang tidak dapat dikirim ke tujuan dikirim ke antrian surat mati untuk diperiksa nanti.

  • Pantau DLQDeliverySuccess metrik (DeliveryToS3.DLQDeliverySuccessatauDeliveryToIceberg.DLQDeliverySuccess) CloudWatch untuk mendeteksi kapan catatan dialihkan ke antrian huruf mati.

  • Periksa entri antrian surat mati secara teratur untuk mengidentifikasi pola kegagalan pengiriman dan mengambil tindakan korektif pada tingkat konfigurasi produsen atau pengiriman.

Memantau

  • Buat CloudWatch alarm pada metrik pengiriman DataFreshness dan catatan gagal (DeliveryToS3.FailedRecordCountatauDeliveryToIceberg.FailedRowCount) untuk mendeteksi masalah pengiriman secara proaktif.

  • Akti CloudWatch fkan Log untuk pengiriman Anda untuk menangkap diagnostik pengiriman terperinci dan pesan kesalahan.

  • Lacak metrik byte yang dikirimkan (DeliveryToS3.BytesOutatauDeliveryToIceberg.BytesOut) untuk memantau throughput dan mengidentifikasi penurunan volume data yang tidak terduga.