View a markdown version of this page

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 catatan hingga 10 mebibyte (). MiBs Kemampuan ini direkomendasikan untuk memproses muatan data intermiten yang melebihi batas ukuran rekaman default 1 MiB. Ukuran rekaman maksimum default untuk stream yang ada dan yang baru dibuat diatur ke 1 MiB.

Fitur ini bermanfaat bagi aplikasi Internet of Things (IoT), pipeline change data capture (CDC), dan alur kerja pembelajaran mesin yang memerlukan pemrosesan muatan data yang lebih besar sesekali. Untuk mulai menggunakan rekaman besar dalam streaming Anda, perbarui batas ukuran rekaman maksimum streaming Anda.

penting

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

Seberapa besar catatan bekerja

Amazon Kinesis Data Streams menerima catatan berukuran hingga 10 MiB. Streaming Anda mengakomodasi catatan besar dengan meledak sementara melampaui throughput penulisan berkelanjutan, lalu kembali ke tingkat dasar dari waktu ke waktu. Kapasitas burst ini terus diisi ulang, sehingga streaming Anda dapat menangani catatan besar yang terputus-putus di samping lalu lintas normal tanpa penyesuaian kapasitas manual.

Untuk memvisualisasikan perilaku ini, pikirkan kapasitas tulis streaming Anda sebagai tangki yang mengisi ulang pada tingkat yang stabil. Saat Anda mengirim catatan besar, seperti catatan 10 MiB, tangki sementara habis. Kemudian mulai mengisi ulang segera, yang berarti Anda dapat terus mengirim catatan yang lebih kecil saat kapasitas tersedia.

Tingkat pengisian kapasitas tergantung pada beberapa faktor:

  • Ukuran catatan besar

  • Ukuran catatan dasar

  • Pola lalu lintas keseluruhan di aliran

  • Strategi kunci partisi yang Anda pilih

Untuk hasil terbaik, gunakan kunci partisi yang terdistribusi secara seragam untuk menyebarkan catatan besar di seluruh kapasitas streaming yang tersedia.

Dalam mode on-demand, Kinesis Data Streams mengelola kapasitas secara otomatis. Streaming Anda meningkatkan dan menurunkan throughput berdasarkan pola lalu lintas Anda, dan kapasitas burst rekaman yang besar ditangani secara transparan. Anda tidak perlu menyediakan atau mengelola kapasitas untuk menggunakan catatan besar. Untuk informasi selengkapnya tentang cara penskalaan mode sesuai permintaan, lihat fitur On-demand mode dan kasus penggunaan.

Perbarui streaming Anda untuk menggunakan rekaman besar

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

  2. Pilih streaming 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 kinerja streaming Anda dengan catatan besar

Catatan besar dirancang untuk penggunaan intermiten. Untuk hasil terbaik, simpan catatan besar hingga kurang dari 2% dari keseluruhan lalu lintas Anda. Karena aliran untuk sementara melampaui throughput berkelanjutan untuk menghasilkan catatan yang besar, mengirim catatan besar terlalu sering dapat mengurangi kapasitas yang tersedia untuk lalu lintas dasar Anda. Untuk informasi selengkapnya tentang mengoptimalkan kinerja streaming Anda dengan catatan besar, lihat Pembatasan dan praktik terbaik untuk kinerja optimal.

Mengurangi pelambatan dengan catatan besar

Karena rekaman besar untuk sementara menghabiskan kapasitas burst, streaming Anda mungkin membatasi penulisan berikutnya hingga kapasitas diisi ulang. Langkah-langkah berikut membantu mengurangi pelambatan:

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

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

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

Menangani catatan besar menggunakan API Kinesis Data Streams

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

API untuk memodifikasi ukuran catatan:

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

Pembaruan untuk API yang ada:

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

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

Semua API yang terdaftar mempertahankan kompatibilitas mundur untuk aliran yang ada. Untuk dokumentasi API lengkap, lihat Refer ensi API Layanan Amazon Kinesis Data Streams.

AWS komponen yang kompatibel dengan catatan besar

AWS 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 AWS SDK. 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, maxRecordSize perbarui streaming Anda, dan gunakan KCL. Untuk informasi selengkapnya, lihat Menggunakan Kinesis Client Library.

Perpustakaan Produser Kinesis (KPL)

Dimulai dengan versi 1.0.5, KPL mendukung penanganan catatan besar. Untuk menggunakan dukungan rekaman besar, maxRecordSize perbarui streaming 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 fung readStream sinya. Untuk informasi selengkapnya, lihat integrasi Amazon EMR dan 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 apa pun. Saat Anda menggunakan konversi format data, pengiriman catatan besar didukung dengan Firehose. Bila Anda menggunakan partisi dinamis, pengiriman catatan besar tidak didukung dengan Firehose.

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

  • HTTP: Pengiriman catatan besar tidak didukung dengan Firehose.

  • Snowflake: Pengiriman catatan besar tidak didukung dengan Firehose.

  • Amazon Redshift: Pengiriman catatan 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 lain, uji perilaku dengan catatan besar di lingkungan proof-of-concept sebelum melakukan penskalaan 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 base-64, dan metadata yang terkait dengan Event Source Mapping (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 on-failure. Anda harus mengonfigurasi tujuan pada kegagalan menggunakan ESM untuk menangani catatan yang melebihi batas pemrosesan Lambda. Setiap peristiwa yang dikirim ke tujuan saat gagal adalah dokumen JSON yang berisi metadata mengenai pemanggilan yang gagal.

Disarankan untuk membuat tujuan pada kegagalan di ESM, terlepas dari ukuran rekaman. Ini memastikan bahwa tidak ada catatan yang dibuang. Untuk informasi selengkapnya, lihat Meng konfigurasi tujuan untuk pemanggilan yang gagal.

Amazon Redshift

Saat streaming data dari Kinesis Data Streams ke Amazon Redshift, periksa ukuran rekaman maksimum yang didukung Amazon Redshift. Untuk detailnya, lihat Memulai penyerapan streaming dari Amazon Kinesis Data Streams di Panduan Pengembang Database Amazon Redshift. Catatan yang melebihi batas ini tidak diproses. Untuk detail informasi logging untuk catatan yang tidak diproses, lihat SYS_STREAM_SCAN_ERRORS di Panduan Pengembang Database Amazon Redshift.

Konektor Flink untuk Aliran Data Kinesis

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 DataStream API.

Wilayah di mana catatan besar didukung

Fitur Amazon Kinesis Data Streams ini hanya tersedia di Wil AWS ayah 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 (US-East)

us-gov-west-1

AWS GovCloud (US-West)