Menangani catatan besar - Amazon Kinesis Data Streams

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

Menangani catatan besar

Amazon Kinesis Data Streams mendukung rekaman hingga 10 MiBs mebibytes (). Kemampuan ini direkomendasikan untuk memproses muatan data intermiten yang melebihi batas ukuran catatan 1 MiB default. Ukuran rekaman maksimum default untuk aliran yang ada, dan yang baru dibuat disetel ke 1 MiB.

Fitur ini menguntungkan aplikasi Internet of Things (IoT), mengubah jalur pengambilan data (CDC), dan alur kerja pembelajaran mesin yang memerlukan pemrosesan muatan data yang sesekali lebih besar. Untuk mulai menggunakan rekaman besar di streaming Anda, perbarui batas ukuran rekaman maksimum aliran Anda.

penting

Batas throughput pecahan individu 1 MB/s untuk penulisan, dan 2 untuk pembacaan tetap tidak berubah dengan dukungan MB/s untuk ukuran rekaman yang lebih besar. Kinesis Data Streams dirancang untuk mengakomodasi rekaman besar intermiten di samping lalu lintas dasar catatan kurang dari, atau sama dengan 1 MiB. Ini tidak dirancang untuk mengakomodasi konsumsi rekor besar volume tinggi yang berkelanjutan.

Perbarui aliran Anda untuk menggunakan catatan besar

Untuk memproses rekaman yang lebih besar dengan Kinesis Data Streams
  1. Arahkan ke konsol Kinesis Data Streams.

  2. Pilih aliran Anda, dan buka tab Konfigurasi.

  3. Klik Edit, yang terletak di sebelah Ukuran rekaman maksimum.

  4. Tetapkan ukuran rekaman maksimum Anda (hingga 10 MiB).

  5. Simpan perubahan Anda.

Pengaturan ini hanya menyesuaikan ukuran rekaman maksimum untuk aliran data Kinesis ini. Sebelum meningkatkan batas ini, verifikasi bahwa semua aplikasi hilir dapat menangani catatan yang lebih besar.

Anda juga dapat memperbarui pengaturan ini menggunakan AWS CLI:

aws kinesis update-max-record-size \ --stream-arn \ --max-record-size-in-ki-b 5000

Optimalkan performa streaming Anda dengan catatan besar

Disarankan untuk menyimpan catatan besar hingga kurang dari 2% dari keseluruhan lalu lintas Anda. Dalam aliran, setiap pecahan memiliki kapasitas throughput 1 MiB per detik. Untuk mengakomodasi rekaman besar, aliran Data Kinesis meledak hingga 10 MiBs, sementara rata-rata hingga 1 MiB per detik. Kapasitas untuk mendukung catatan besar ini terus diisi ulang ke dalam aliran. Tingkat pengisian ulang tergantung pada ukuran catatan besar dan ukuran catatan dasar. Untuk hasil terbaik, gunakan kunci partisi yang didistribusikan secara seragam. Untuk informasi selengkapnya tentang bagaimana Kinesis sesuai permintaan skala, lihat Fitur mode sesuai permintaan dan kasus penggunaan.

Mengurangi pelambatan dengan catatan besar

Untuk mengurangi pelambatan
  1. Terapkan logika coba lagi dengan back-off eksponensial dalam aplikasi produser Anda.

  2. Gunakan kunci partisi acak untuk mendistribusikan catatan besar di seluruh pecahan yang tersedia.

  3. Simpan muatan di Amazon S3 dan kirim hanya referensi metadata ke aliran untuk aliran rekaman besar yang berkelanjutan. Untuk informasi selengkapnya, lihat Memproses rekaman besar dengan Amazon Kinesis Data Streams.

Menangani rekaman besar menggunakan Kinesis Data Streams APIs

Dukungan rekaman besar memperkenalkan satu API baru, dan memperbarui dua bidang kontrol yang ada APIs untuk menangani catatan hingga 10 MiBs.

API untuk memodifikasi ukuran rekaman:

  • UpdateMaxRecordSize: Mengonfigurasi batas ukuran rekaman maksimum untuk aliran yang ada hingga 10. MiBs

Pembaruan untuk yang ada APIs:

  • CreateStream: Menambahkan MaxRecordSizeInKiB parameter opsional untuk menetapkan batas ukuran rekaman selama pembuatan aliran.

  • DescribeStreamSummary: Mengembalikan MaxRecordSizeInKiB bidang untuk menunjukkan konfigurasi aliran saat ini.

Semua APIs yang terdaftar mempertahankan kompatibilitas mundur untuk aliran yang ada. Untuk dokumentasi API selengkapnya, lihat Referensi API Layanan Amazon Kinesis Data Streams.

AWS komponen yang kompatibel dengan catatan besar

AWS Komponen-komponen berikut kompatibel dengan catatan besar:

Komponen Deskripsi

AWS SDK

AWS SDK mendukung penanganan catatan besar. Anda dapat memperbarui ukuran rekaman maksimum streaming hingga 10 MiB menggunakan metode yang tersedia di file. AWS SDKs Untuk informasi selengkapnya, lihat Menggunakan layanan ini dengan AWS SDK.

Perpustakaan Konsumen Kinesis (KCL)

Dimulai dengan versi 2.x, KCL mendukung penanganan catatan besar. Untuk menggunakan dukungan rekaman besar, perbarui maxRecordSize aliran Anda, dan gunakan KCL. Untuk informasi selengkapnya, lihat Menggunakan Perpustakaan Klien Kinesis.

Perpustakaan Produsen Kinesis (KPL)

Dimulai dengan versi 1.0.5, KPL mendukung penanganan catatan besar. Untuk menggunakan dukungan rekaman besar, perbarui maxRecordSize aliran Anda, dan gunakan KPL. Untuk informasi selengkapnya, lihat Mengembangkan produsen menggunakan Amazon Kinesis Producer Library (KPL).

Amazon EMR

Amazon EMR dengan Apache Spark mendukung penanganan catatan besar hingga batas Kinesis Data Streams (10). MiBs Untuk menggunakan dukungan rekaman besar, gunakan readStream fungsi. Untuk informasi selengkapnya, lihat Amazon EMR dan integrasi Amazon Kinesis.

Amazon Data Firehose

Saat digunakan dengan Kinesis Data Streams, perilaku Amazon Data Firehose dengan catatan besar bergantung pada tujuan pengiriman:

  • Amazon S3: Pengiriman catatan besar didukung tanpa konfigurasi tambahan. Saat Anda menggunakan konversi format data, pengiriman catatan besar didukung dengan Firehose. Bila Anda menggunakan partisi dinamis, pengiriman rekaman besar tidak didukung dengan Firehose.

  • Lambda: Kami tidak menyarankan menggunakan catatan besar dengan Firehose saat memicu fungsi Lambda di hilir. Ini dapat menyebabkan kegagalan intermiten.

  • HTTP: Pengiriman catatan besar tidak didukung dengan Firehose.

  • Snowflake: Pengiriman catatan besar tidak didukung dengan Firehose.

  • Amazon Redshift: Pengiriman rekaman besar tidak didukung dengan Firehose.

Untuk aplikasi yang memerlukan pengiriman ke Snowflake atau Redshift dengan catatan besar, kirimkan data ke Amazon S3 terlebih dahulu. Setelah itu, gunakan proses Extract, Transform, Load (ETL) untuk memuat data. Untuk semua tujuan lainnya, uji perilaku dengan catatan besar di proof-of-concept lingkungan sebelum menskalakan ke penggunaan produksi. Penanganan catatan besar bervariasi menurut tujuan.

AWS Lambda

AWS Lambda mendukung muatan hingga 6 MiBs. Batas ini mencakup payload Kinesis yang dikonversi ke pengkodean basis-64, dan metadata yang terkait dengan Pemetaan Sumber Peristiwa (ESM). Untuk catatan kurang dari 6 MiBs, Lambda memprosesnya menggunakan ESM tanpa konfigurasi tambahan yang diperlukan. Untuk catatan yang lebih besar dari 6 MiBs, Lambda memprosesnya menggunakan tujuan yang gagal. Anda harus mengonfigurasi tujuan saat gagal menggunakan ESM untuk menangani catatan yang melebihi batas pemrosesan Lambda. Setiap peristiwa yang dikirim ke tujuan kegagalan adalah dokumen JSON yang berisi metadata mengenai pemanggilan yang gagal.

Disarankan untuk membuat tujuan on-failure di ESM, terlepas dari ukuran rekaman. Ini memastikan bahwa tidak ada catatan yang dibuang. Untuk informasi selengkapnya, lihat Mengonfigurasi tujuan untuk pemanggilan yang gagal.

Amazon Redshift

Amazon Redshift hanya mendukung ukuran rekaman kurang dari 1 MiB saat streaming data dari Kinesis Data Streams. Catatan yang melebihi batas ini tidak diproses. Catatan yang tidak diproses dicatat sebagaisys_stream_scan_errors. Untuk informasi selengkapnya, lihat SYS_STREAM_SCAN_ERRORS.

Konektor Flink untuk Kinesis Data Streams

Ada dua pendekatan untuk mengkonsumsi data dari Kinesis Data Streams: konektor sumber Kinesis, dan konektor sink Kinesis. Konektor sumber mendukung penanganan catatan kurang dari 1 MiB, dan hingga 10. MiBs Jangan gunakan konektor wastafel untuk catatan yang lebih besar dari 1 MiB. Untuk informasi selengkapnya, lihat Menggunakan konektor untuk memindahkan data di Amazon Managed Service untuk Apache Flink dengan API. DataStream

Wilayah di mana catatan besar didukung

Fitur Amazon Kinesis Data Streams ini hanya tersedia di AWS Wilayah berikut:

AWS Wilayah Nama wilayah

eu-north-1

Eropa (Stockholm)

me-south-1

Timur Tengah (Bahrain)

ap-south-1

Asia Pasifik (Mumbai)

eu-west-3

Eropa (Paris)

ap-southeast-3

Asia Pasifik (Jakarta)

us-east-2

AS Timur (Ohio)

af-south-1

Africa (Cape Town)

eu-west-1

Eropa (Irlandia)

me-central-1

Timur Tengah (UAE)

eu-central-1

Eropa (Frankfurt)

sa-east-1

Amerika Selatan (Sao Paulo)

ap-east-1

Asia Pasifik (Hong Kong)

ap-south-2

Asia Pasifik (Hyderabad)

us-east-1

AS Timur (Virginia Utara)

ap-northeast-2

Asia Pasifik (Seoul)

ap-northeast-3

Asia Pasifik (Osaka)

eu-west-2

Eropa (London)

ap-southeast-4

Asia Pacific (Melbourne)

ap-northeast-1

Asia Pasifik (Tokyo)

us-west-2

AS Barat (Oregon)

us-west-1

AS Barat (California Utara)

ap-southeast-1

Asia Pasifik (Singapura)

ap-southeast-2

Asia Pasifik (Sydney)

il-central-1

Israel (Tel Aviv)

ca-central-1

Kanada (Pusat)

ca-west-1

Kanada Barat (Calgary)

eu-south-2

Eropa (Spanyol)

cn-northwest-1

Tiongkok (Ningxia)

eu-central-2

Europe (Zurich)

us-gov-east-1

AWS GovCloud (AS-Timur)

us-gov-west-1

AWS GovCloud (AS-Barat)