View a markdown version of this page

Tabel streaming dan pengiriman S3 untuk Amazon Kinesis Data Streams - Amazon Kinesis Data Streams

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

Tabel streaming dan pengiriman S3 untuk Amazon Kinesis Data Streams

Dengan Amazon Kinesis Data Streams, Anda dapat mengirimkan data streaming dari aliran data Kinesis ke dua jenis tujuan: tabel streaming di Apache Iceberg (Tabel Amazon S3), atau bucket Amazon S3 tujuan umum. Anda tidak perlu mengelola infrastruktur apa pun, dan Anda dapat mulai mengirimkan dalam hitungan menit. Amazon Kinesis Data Streams membaca dari streaming Anda, menyangga, dan mengumpulkan catatan, dan mengirimkannya ke tujuan yang Anda konfigurasi. Pengiriman dikelola sepenuhnya — tidak ada konektor, aplikasi konsumen, atau sumber daya komputasi untuk disediakan.

Kemampuan ini didukung untuk streaming yang berjalan dalam mode Kapasitas On-Demand Keuntungan atau On-Demand Standar. Anda mengonfigurasi pengiriman dari streaming dan menentukan tujuan. Amazon Kinesis Data Streams kemudian menangani penskalaan, percobaan ulang, dan keandalan pengiriman secara otomatis. Pengiriman tidak menghabiskan throughput baca streaming Anda dan tidak berdampak pada konsumen yang ada.

Cara kerja pengiriman data

Pengiriman data menghubungkan aliran data Kinesis Anda ke tujuan pengiriman melalui pipeline terkelola:

  1. Anda mempublikasikan data ke aliran data Kinesis dalam On-Demand mode.

  2. Anda memang CreateChannel gil streaming dan menentukan tujuan (tabel streaming di Apache Iceberg, atau bucket Amazon S3 tujuan umum).

  3. Pengiriman membaca dari aliran, menyangga catatan, dan menggabungkannya menjadi file berukuran optimal.

  4. Pengiriman menulis file ke tujuan yang dikonfigurasi dalam jendela kesegaran data yang Anda tentukan.

Tujuan pengiriman

Pengiriman data mendukung dua jenis tujuan:

Streaming tabel di Apache Iceberg

Tabel streaming secara terus menerus mengirimkan aliran data Kinesis Anda ke tabel Apache Iceberg yang disimpan di Tabel Amazon S3. Saat data tiba, secara otomatis dikonversi ke format Parquet Apache yang dioptimalkan dengan pemadatan sebaris cerdas yang menghilangkan masalah file kecil dan mengurangi biaya kueri hilir. Dalam beberapa menit setelah dipublikasikan ke streaming Anda, data dapat dikueri melalui Amazon Athena, Amazon EMR, Amazon Managed Service untuk Apache Flink, atau mesin apa pun yang mendukung Apache Iceberg.

Bucket Amazon S3 tujuan umum

Pengiriman Amazon S3 menulis data streaming dari aliran data Kinesis Anda langsung ke bucket S3. Catatan dikirimkan dalam format sumber aslinya tanpa transformasi yang diterapkan. Beberapa catatan disangga dan dikelompokkan menjadi objek berukuran optimal, dengan kompresi yang dapat dikonfigurasi dan struktur kunci S3 yang Anda tentukan melalui template kunci keluaran. Ini sangat ideal untuk kasus penggunaan seperti arsip log mentah, pemutaran ulang peristiwa, dan pemrosesan batch hilir, di mana Anda memerlukan penyimpanan data streaming yang tahan lama dan murah tanpa biaya pengelolaan pipeline pengiriman.

Aliran data

Diagram berikut menunjukkan aliran data ujung ke ujung untuk pengiriman ke tabel streaming di Apache Iceberg. Diagram menggunakan kasus penggunaan transaksi kartu sebagai contoh. Produser membuat serial rekaman terhadap skema di AWS Glue Schema Registry dan menulisnya ke aliran data Kinesis. Amazon Kinesis Data Streams mengirimkan catatan ke tabel Apache Iceberg di Tabel Amazon S3. Jika Anda mengaktifkan integrasi analitik di Tabel S3, metadata tabel juga terdaftar di Katalog AWS Glue Data; ini tidak terjadi secara default. Data yang dikirimkan dan metadatanya kemudian tersedia untuk analitik dan mesin AI seperti Amazon Athena, Amazon Redshift, dan Amazon EMR.

Pengiriman ke bucket Amazon S3 tujuan umum mengikuti alur yang sama, dengan dua perbedaan. Produser menulis catatan ke aliran data Kinesis, dan Amazon Kinesis Data Streams mengirimkannya ke bucket S3 Anda. Catatan dikirimkan dalam format sumber aslinya tanpa konversi, jadi AWS Glue Skema Registry tidak diperlukan dan tidak ada metadata tabel yang terdaftar di Katalog AWS Glue Data. Amazon Kinesis Data Streams menyangga dan mengumpulkan rekaman ke objek berukuran optimal dan menulisnya menggunakan struktur kunci S3 yang Anda tentukan melalui template kunci keluaran. Objek yang dikirim kemudian tersedia untuk pemrosesan batch hilir dan analitik.

Diagram arsitektur yang menunjukkan catatan transaksi kartu yang diserialkan melalui AWS Glue Schema Registry ke dalam aliran data Kinesis, dikirim ke tabel Apache Iceberg di Tabel Amazon S3 dengan metadata terdaftar di Katalog AWS Glue Data, dan dikonsumsi oleh mesin analitik dan AI termasuk Amazon Athena, Amazon Redshift, dan Amazon EMR.

Kemampuan utama

  • Penskalaan otomatis tanpa server — Menskalakan secara otomatis dengan throughput aliran Anda, hingga kapasitas throughput stream. Tidak ada sumber daya komputasi untuk disediakan.

  • Exactly-once pengiriman per pecahan — Catatan dari pecahan dikirim ke tujuan tepat sekali, tanpa duplikat atau kelalaian di dalam pecahan.

  • Pengiriman hampir real-time - Kesegaran data yang dapat dikonfigurasi dari 5 hingga 15 menit (300 hingga 900 detik).

  • Konversi Parket Otom atis — Untuk tabel streaming di Apache Iceberg, konversi catatan streaming ke format Apache Parquet yang dioptimalkan untuk kueri analitik yang efisien.

  • Pemadatan sebaris — Menggabungkan catatan menjadi file berukuran optimal untuk kinerja kueri analitik.

  • Enkripsi — Mendukung AWS KMS kunci yang dikelola pelanggan untuk enkripsi sisi server di tujuan. Kunci yang dikelola AWS (aws/kinesisalias) tidak didukung untuk enkripsi tujuan.

  • Dead-letter antrian — Metadata kegagalan untuk catatan yang tidak dapat dikirimkan — termasuk ARN aliran, ID pecahan, nomor urut, dan konteks kesalahan — ditulis ke antrean huruf S3-based mati.

  • CloudWatch metrik dan log — Pantau byte yang dikirimkan, jumlah catatan, dan kesegaran data melalui CloudWatch metrik Amazon. Aktifkan pencatatan pengiriman ke Amazon CloudWatch Logs untuk menangkap detail batch pengiriman, kegagalan, dan konteks kesalahan untuk pemecahan masalah.

  • Tidak berdampak pada konsumen lain — Tidak menggunakan slot fan-out yang ditingkatkan atau throughput bersama.

Persyaratan

  • Aliran data Kinesis Anda harus menggunakan mode kapasitas On-Demand Standar atau On-Demand Keuntungan.

  • Anda harus membuat peran eksekusi layanan IAM yang memberikan izin pengiriman untuk menulis ke tujuan Anda.

  • Bucket tujuan atau bucket tabel Anda harus berada di Wilayah yang sama dengan aliran data Kinesis Anda. Pengiriman data tidak mendukung pengiriman lintas wilayah untuk kedua jenis tujuan.

  • Untuk tabel streaming di Apache Iceberg, pengiriman lintas akun tidak didukung. Aliran sumber, bucket tabel S3 tujuan, dan Registry AWS Glue Schema semuanya harus berada di Wilayah yang sama Akun AWS dan sama.

  • Untuk bucket Amazon S3 tujuan umum, pengiriman lintas akun hanya didukung untuk bucket tujuan. Saluran dan aliran sumbernya harus sama Akun AWS; hanya bucket tujuan yang dapat berada di akun yang berbeda.

  • Untuk streaming tabel di Apache Iceberg, Anda harus mengonfigurasi antrian huruf mati di Amazon S3.