Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan awalan bucket Amazon S3 untuk mengirimkan data
Saat membuat aliran Firehose yang menggunakan Amazon S3 sebagai tujuan, Anda harus menentukan bucket Amazon S3 tempat Firehose akan mengirimkan data Anda. Awalan bucket Amazon S3 digunakan untuk mengatur data yang Anda simpan di bucket S3. Awalan bucket Amazon S3 mirip dengan direktori yang memungkinkan Anda mengelompokkan objek serupa bersama-sama.
Dengan partisi dinamis, data yang dipartisi akan dikirimkan ke awalan Amazon S3 yang ditentukan. Jika Anda tidak mengaktifkan partisi dinamis, menentukan awalan bucket S3 untuk aliran Firehose Anda adalah opsional. Namun, jika Anda memilih untuk mengaktifkan partisi dinamis, Anda harus menentukan awalan bucket S3 tempat Firehose mengirimkan data yang dipartisi.
Di setiap aliran Firehose tempat Anda mengaktifkan partisi dinamis, nilai awalan bucket S3 terdiri dari ekspresi berdasarkan kunci partisi yang ditentukan untuk aliran Firehose tersebut. Menggunakan contoh catatan data di atas lagi, Anda dapat membangun nilai awalan S3 berikut yang terdiri dari ekspresi berdasarkan kunci partisi yang didefinisikan di atas:
"ExtendedS3DestinationConfiguration": { "BucketARN": "arn:aws:s3:::my-logs-prod", "Prefix": "customer_id=!{partitionKeyFromQuery:customer_id}/ device=!{partitionKeyFromQuery:device}/ year=!{partitionKeyFromQuery:year}/ month=!{partitionKeyFromQuery:month}/ day=!{partitionKeyFromQuery:day}/ hour=!{partitionKeyFromQuery:hour}/" }
Firehose mengevaluasi ekspresi di atas saat runtime. Ini mengelompokkan catatan yang cocok dengan ekspresi awalan S3 yang dievaluasi yang sama ke dalam satu set data. Firehose kemudian mengirimkan setiap kumpulan data ke awalan S3 yang dievaluasi. Frekuensi pengiriman kumpulan data ke S3 ditentukan oleh pengaturan buffer aliran Firehose. Akibatnya, catatan dalam contoh ini dikirim ke kunci objek S3 berikut:
s3://my-logs-prod/customer_id=1234567890/device=mobile/year=2019/month=08/day=09/hour=20/my-delivery-stream-2019-08-09-23-55-09-a9fa96af-e4e4-409f-bac3-1f804714faaa
Untuk partisi dinamis, Anda harus menggunakan format ekspresi berikut di awalan bucket S3:!{namespace:value}
, di mana namespace dapat berupa atau, atau keduanya. partitionKeyFromQuery
partitionKeyFromLambda
Jika Anda menggunakan penguraian inline untuk membuat kunci partisi untuk data sumber Anda, Anda harus menentukan nilai awalan bucket S3 yang terdiri dari ekspresi yang ditentukan dalam format berikut:. "partitionKeyFromQuery:keyID"
Jika Anda menggunakan fungsi AWS
Lambda untuk membuat kunci partisi untuk data sumber Anda, Anda harus menentukan nilai awalan bucket S3 yang terdiri dari ekspresi yang ditentukan dalam format berikut:. "partitionKeyFromLambda:keyID"
catatan
Anda juga dapat menentukan nilai awalan bucket S3 menggunakan format gaya sarang, misalnya customer_id =! {partitionKeyFromQuery:customer_id}.
Untuk informasi selengkapnya, lihat “Pilih Amazon S3 untuk Tujuan Anda” di Membuat aliran Amazon Firehose dan Awalan Kustom untuk Objek Amazon S3.
Tambahkan pembatas baris baru saat mengirimkan data ke Amazon S3
Anda dapat mengaktifkan New Line Delimiter untuk menambahkan pembatas baris baru di antara catatan dalam objek yang dikirim ke Amazon S3. Ini dapat membantu untuk mengurai objek di Amazon S3. Ini juga sangat berguna ketika partisi dinamis diterapkan ke data agregat karena deagregasi multi-rekaman (yang harus diterapkan pada data agregat sebelum dapat dipartisi secara dinamis) menghapus baris baru dari catatan sebagai bagian dari proses penguraian.