Mengubah data di Amazon Data Firehose - Amazon Data Firehose

Mengirimkan aliran Amazon Data Firehose ke Apache Iceberg Tables di Amazon S3 sedang dalam pratinjau dan dapat berubah sewaktu-waktu.

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

Mengubah data di Amazon Data Firehose

Amazon Data Firehose dapat menjalankan fungsi Lambda Anda untuk mengubah data sumber yang masuk dan mengirimkan data yang diubah ke tujuan. Anda dapat mengaktifkan transformasi data Amazon Data Firehose saat membuat aliran Firehose.

Memahami aliran transformasi data

Saat Anda mengaktifkan transformasi data Firehose, Firehose menyangga data yang masuk. Petunjuk ukuran buffering berkisar antara 0,2 MB dan 3MB. Petunjuk ukuran buffering Lambda default adalah 1 MB untuk semua tujuan, kecuali Splunk dan Snowflake. Untuk Splunk dan Snowflake, petunjuk buffering default adalah 256 KB. Petunjuk interval buffering Lambda berkisar antara 0 dan 900 detik. Petunjuk interval buffering Lambda default adalah enam puluh detik untuk semua tujuan kecuali Snowflake. Untuk Snowflake, interval petunjuk buffering default adalah 30 detik. Untuk menyesuaikan ukuran buffering, atur ProcessingConfigurationparameter CreateDeliveryStreamatau UpdateDestinationAPIdengan yang ProcessorParameterdipanggil BufferSizeInMBs danIntervalInSeconds. Firehose kemudian memanggil fungsi Lambda yang ditentukan secara asinkron dengan setiap batch buffer menggunakan mode pemanggilan sinkron. AWS Lambda Data yang diubah dikirim dari Lambda ke Firehose. Firehose kemudian mengirimkannya ke tujuan ketika ukuran buffering tujuan yang ditentukan atau interval buffering tercapai, mana yang terjadi lebih dulu.

penting

Mode pemanggilan sinkron Lambda memiliki batas ukuran muatan 6 MB untuk permintaan dan respons. Pastikan bahwa ukuran buffering Anda untuk mengirim permintaan ke fungsi tersebut kurang dari atau sama dengan 6 MB. Juga pastikan bahwa respons yang dihasilkan fungsi tidak melebihi 6 MB.

Transformasi data dan model status

Semua catatan yang diubah dari Lambda harus berisi parameter berikut, atau Amazon Data Firehose menolaknya dan memperlakukannya sebagai kegagalan transformasi data.

Untuk Kinesis Data PUT Streams dan Langsung:

recordId

ID rekaman diteruskan dari Amazon Data Firehose ke Lambda selama pemanggilan. Catatan yang ditransformasi harus berisi ID catatan yang sama. Ketidakcocokan apa pun antara ID catatan asli dan ID catatan yang ditransformasi dianggap sebagai kegagalan transformasi data.

result

Status transformasi data catatan. Kemungkinan nilainya adalah: Ok (catatan berhasil ditransformasi), Dropped (catatan dihentikan dengan sengaja oleh logika pemrosesan Anda), dan ProcessingFailed (catatan tidak bisa ditransformasi). Jika rekaman memiliki status Ok atauDropped, Amazon Data Firehose menganggapnya berhasil diproses. Jika tidak, Amazon Data Firehose menganggapnya tidak berhasil diproses.

data

Muatan data yang ditransformasi, setelah enkode base64.

Berikut ini adalah contoh hasil keluaran Lambda:

{ "recordId": "<recordId from the Lambda input>", "result": "Ok", "data": "<Base64 encoded Transformed data>" }

Untuk Amazon MSK

recordId

ID rekaman diteruskan dari Firehose ke Lambda selama pemanggilan. Catatan yang ditransformasi harus berisi ID catatan yang sama. Ketidakcocokan apa pun antara ID catatan asli dan ID catatan yang ditransformasi dianggap sebagai kegagalan transformasi data.

result

Status transformasi data catatan. Kemungkinan nilainya adalah: Ok (catatan berhasil ditransformasi), Dropped (catatan dihentikan dengan sengaja oleh logika pemrosesan Anda), dan ProcessingFailed (catatan tidak bisa ditransformasi). Jika rekaman memiliki status Ok atauDropped, Firehose menganggapnya berhasil diproses. Jika tidak, Firehose menganggapnya tidak berhasil diproses.

KafkaRecordValue

Muatan data yang diubah, setelah enkode base64.

Berikut ini adalah contoh hasil keluaran Lambda:

{ "recordId": "<recordId from the Lambda input>", "result": "Ok", "kafkaRecordValue": "<Base64 encoded Transformed data>" }

Bekerja dengan cetak biru Lambda

Cetak biru ini menunjukkan bagaimana Anda dapat membuat dan menggunakan fungsi AWS Lambda untuk mengubah data dalam aliran data Amazon Data Firehose Anda.

Untuk melihat cetak biru yang tersedia di konsol AWS Lambda
  1. Masuk ke AWS Management Console dan buka AWS Lambda konsol di https://console.aws.amazon.com/lambda/.

  2. Pilih Buat fungsi, lalu pilih Gunakan cetak biru.

  3. Di bidang Cetak Biru, cari kata kunci firehose untuk menemukan cetak biru Amazon Data Firehose Lambda.

Daftar cetak biru:

  • Memproses catatan dikirim ke Amazon Data Firehose stream (Node.js, Python)

    Cetak biru ini menunjukkan contoh dasar cara memproses data dalam aliran data Firehose Anda menggunakan Lambda. AWS

    Tanggal rilis terbaru: November, 2016.

    Catatan rilis: tidak ada.

  • CloudWatch Log proses dikirim ke Firehose

    Cetak biru ini sudah usang. Untuk informasi tentang pemrosesan CloudWatch Log yang dikirim ke Firehose, lihat Menulis ke Firehose Menggunakan Log. CloudWatch

  • Mengonversi rekaman streaming Amazon Data Firehose dalam format syslog ke (Node.js) JSON

    Cetak biru ini menunjukkan bagaimana Anda dapat mengonversi catatan masukan dalam format RFC3164 Syslog menjadi. JSON

    Tanggal rilis terbaru: Nov, 2016.

    Catatan rilis: tidak ada.

Untuk melihat cetak biru yang tersedia di AWS Serverless Application Repository
  1. Kunjungi AWS Serverless Application Repository.

  2. Pilih Jelajahi semua aplikasi.

  3. Di bidang Aplikasi, cari dengan kata kunci firehose.

Anda juga dapat membuat fungsi Lambda tanpa menggunakan cetak biru. Lihat Memulai dengan AWS Lambda.

Menangani kegagalan transformasi data

Jika pemanggilan fungsi Lambda Anda gagal karena batas waktu jaringan atau karena Anda telah mencapai batas pemanggilan Lambda, Amazon Data Firehose akan mencoba ulang pemanggilan tiga kali secara default. Jika pemanggilan tidak berhasil, Amazon Data Firehose kemudian melewatkan kumpulan catatan itu. Catatan yang dilewati dianggap sebagai catatan yang tidak berhasil diproses. Anda dapat menentukan atau mengganti opsi coba lagi menggunakan atau. CreateDeliveryStreamUpdateDestinationAPI Untuk jenis kegagalan ini, Anda dapat mencatat kesalahan pemanggilan ke Amazon CloudWatch Logs. Untuk informasi selengkapnya, lihat Memantau Amazon Data Firehose Menggunakan Log CloudWatch .

Jika status transformasi data rekaman adalahProcessingFailed, Amazon Data Firehose memperlakukan catatan sebagai tidak berhasil diproses. Untuk jenis kegagalan ini, Anda dapat memancarkan log kesalahan ke Amazon CloudWatch Logs dari fungsi Lambda Anda. Untuk informasi selengkapnya, lihat Mengakses CloudWatch Log Amazon AWS Lambda di Panduan AWS Lambda Pengembang.

Jika transformasi data gagal, catatan yang tidak berhasil diproses dikirim ke bucket S3 Anda di folder processing-failed. Catatan tersebut memiliki format berikut:

{ "attemptsMade": "count", "arrivalTimestamp": "timestamp", "errorCode": "code", "errorMessage": "message", "attemptEndingTimestamp": "timestamp", "rawData": "data", "lambdaArn": "arn" }
attemptsMade

Jumlah permintaan pemanggilan yang dilakukan.

arrivalTimestamp

Waktu rekaman itu diterima oleh Amazon Data Firehose.

errorCode

Kode HTTP kesalahan dikembalikan oleh Lambda.

errorMessage

Pesan kesalahan yang dihasilkan oleh Lambda.

attemptEndingTimestamp

Waktu Amazon Data Firehose berhenti mencoba pemanggilan Lambda.

rawData

Data catatan berenkode base64.

lambdaArn

Nama Sumber Daya Amazon (ARN) dari fungsi Lambda.

Memahami durasi pemanggilan Lambda

Amazon Data Firehose mendukung waktu pemanggilan Lambda hingga 5 menit. Jika fungsi Lambda membutuhkan waktu lebih dari 5 menit untuk diselesaikan, Anda mendapatkan kesalahan berikut: Firehose mengalami kesalahan batas waktu saat memanggil Lambda. AWS Waktu habis fungsi maksimum yang didukung adalah 5 menit.

Untuk informasi tentang apa yang Amazon Data Firehose lakukan jika terjadi kesalahan seperti itu, lihat. Menangani kegagalan transformasi data

Pencadangan catatan sumber

Amazon Data Firehose dapat mencadangkan semua catatan yang belum diubah ke bucket S3 Anda secara bersamaan sambil mengirimkan catatan yang diubah ke tujuan. Anda dapat mengaktifkan cadangan catatan sumber saat membuat atau memperbarui aliran Firehose. Anda tidak dapat menonaktifkan pencadangan catatan sumber setelah Anda mengaktifkannya.