Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memahami awalan khusus untuk objek Amazon S3
<evaluated prefix><suffix>Objek yang dikirim ke Amazon S3 mengikuti format nama. Anda dapat menentukan awalan kustom yang menyertakan ekspresi yang dievaluasi saat runtime. Awalan kustom yang Anda tentukan akan mengganti awalan default. YYYY/MM/dd/HH
Anda dapat menggunakan ekspresi formulir berikut dalam awalan kustom Anda:!{namespace:
, di mana value
}namespace
bisa menjadi salah satu dari yang berikut, seperti yang dijelaskan di bagian berikut.
-
firehose
-
timestamp
-
partitionKeyFromQuery
-
partitionKeyFromLambda
Jika prefiks berakhir dengan garis miring (/), itu akan muncul sebagai folder dalam bucket Amazon S3. Untuk informasi selengkapnya, lihat Format Nama Objek Amazon S3 di Panduan Data FirehoseDeveloper Amazon.
timestamp
namespace
Nilai yang valid untuk namespace ini adalah string yang merupakan string Java yang valid. DateTimeFormatter!{timestamp:yyyy}
memberi nilai 2018
.
Saat mengevaluasi stempel waktu, Firehose menggunakan perkiraan stempel waktu kedatangan dari catatan tertua yang terdapat dalam objek Amazon S3 yang sedang ditulis.
Secara default, stempel waktu masuk. UTC Tapi, Anda dapat menentukan zona waktu yang Anda inginkan. Misalnya, Anda dapat mengonfigurasi zona waktu ke Asia/Tokyo di AWS Management Console atau dalam pengaturan API parameter (CustomTimeZone) jika Anda ingin menggunakan Waktu Standar Jepang alih-alihUTC. Untuk melihat daftar zona waktu yang didukung, lihat Format Nama Objek Amazon S3.
Jika Anda menggunakan namespace timestamp
lebih dari sekali dalam ekspresi prefiks yang sama, setiap instans akan memberi nilai waktu yang sama.
firehose
namespace
Ada dua nilai yang dapat Anda gunakan dengan namespace ini: error-output-type
dan random-string
. Tabel berikut menjelaskan cara menggunakannya.
Konversi | Deskripsi | Contoh input | Contoh Output | Catatan |
---|---|---|---|---|
error-output-type |
Mengevaluasi ke salah satu string berikut, tergantung pada konfigurasi aliran Firehose Anda, dan alasan kegagalan: {processing-failed, AmazonOpenSearchService -failed, splunk-failed,,}. format-conversion-failed http-endpoint-failed Jika Anda menggunakannya lebih dari sekali dalam ekspresi yang sama, setiap instans akan memberi nilai string kesalahan yang sama. |
myPrefix/result=!{firehose:error-output-type}/!{timestamp:yyyy/MM/dd} |
myPrefix/result=processing-failed/2018/08/03 |
error-output-type Nilai hanya dapat digunakan di ErrorOutputPrefix lapangan. |
random-string |
Memberi nilai string acak berisi 11 karakter. Jika Anda menggunakannya lebih dari sekali dalam ekspresi yang sama, setiap instans akan memberi nilai string acak baru. |
myPrefix/!{firehose:random-string}/ |
myPrefix/046b6c7f-0b/ |
Anda dapat menggunakannya dengan kedua jenis prefiks tersebut. Anda dapat menempatkannya di awal string format untuk mendapatkan prefiks acak, yang kadang-kadang diperlukan untuk mencapai throughput yang sangat tinggi dengan Amazon S3. |
partitionKeyFromLambda
dan ruang partitionKeyFromQuery
nama
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 AWS
Fungsi 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"
Untuk informasi selengkapnya, lihat “Pilih Amazon S3 untuk Tujuan Anda” di Membuat aliran Amazon Firehose.
Aturan semantik
Aturan berikut berlaku untuk ekspresi Prefix
dan ErrorOutputPrefix
.
-
Untuk namespace
timestamp
, setiap karakter yang tidak diapit tanda kutip tunggal akan diberi nilai. Dengan kata lain, string yang tidak menggunakan tanda kutip tunggal di bidang nilai akan ditafsirkan secara harfiah. -
Jika Anda menentukan awalan yang tidak berisi ekspresi namespace stempel waktu, Firehose akan menambahkan ekspresi ke nilai di
!{timestamp:yyyy/MM/dd/HH/}
bidang.Prefix
-
Urutan
!{
hanya dapat muncul dalam ekspresi!{namespace:
.value
} -
ErrorOutputPrefix
boleh null hanya jikaPrefix
tidak mengandung ekspresi apa pun. Dalam kasus ini,Prefix
memberi nilai<specified-prefix>yyyy/MM/DDD/HH/
danErrorOutputPrefix
memberi nilai<specified-prefix><error-output-type>YYYY/MM/DDD/HH/
.DDD
mewakili hari ke berapa dalam tahun itu. -
Jika Anda menentukan ekspresi untuk
ErrorOutputPrefix
, Anda harus menyertakan setidaknya satu instans dari!{firehose:error-output-type}
. -
Prefix
tidak boleh berisi!{firehose:error-output-type}
. -
Baik
Prefix
maupunErrorOutputPrefix
boleh berisi lebih dari 512 karakter setelah diberi nilai. -
Jika tujuannya adalah Amazon Redshift,
Prefix
tidak boleh berisi ekspresi danErrorOutputPrefix
harus null. -
Jika tujuannya adalah Amazon OpenSearch Service atau Splunk, dan no
ErrorOutputPrefix
ditentukan, Firehose menggunakan field untukPrefix
catatan gagal. -
Ketika tujuannya adalah Amazon S3,
Prefix
danErrorOutputPrefix
dalam konfigurasi tujuan Amazon S3 secara berurutan digunakan untuk catatan yang berhasil dan catatan yang gagal. Jika Anda menggunakan AWS CLI atauAPI, Anda dapat menggunakanExtendedS3DestinationConfiguration
untuk menentukan konfigurasi cadangan Amazon S3 dengan konfigurasi cadangan sendiriPrefix
dan.ErrorOutputPrefix
-
Saat Anda menggunakan AWS Management Console dan mengatur tujuan ke Amazon S3, Firehose menggunakan
Prefix
danErrorOutputPrefix
dalam konfigurasi tujuan untuk catatan yang berhasil dan catatan yang gagal, masing-masing. Jika Anda menentukan awalan menggunakan ekspresi, Anda harus menentukan awalan kesalahan termasuk.!{firehose:error-output-type}
-
Saat Anda menggunakan
ExtendedS3DestinationConfiguration
dengan AWS CLI, yangAPI, atau AWS CloudFormation, jika Anda menentukanS3BackupConfiguration
, Firehose tidak menyediakan default.ErrorOutputPrefix
-
Anda tidak dapat menggunakan
partitionKeyFromLambda
danpartitionKeyFromQuery
ruang nama saat membuat ErrorOutputPrefix ekspresi.
Contoh prefiks
Input | Awalan yang dievaluasi (pukul 10:30 UTC pada 27 Agustus 2018) |
---|---|
|
|
|
Input tidak valid: ErrorOutputPrefix tidak boleh null ketika Prefiks berisi ekspresi |
|
|
|
|
|
|