將亞馬遜資料 Firehose 串流交付到 Amazon S3 中的 Apache 冰山表格已處於預覽狀態,且可能會有所變更。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
了解 Amazon S3 物件的自訂前置詞
交付到 Amazon S3 的物件會遵循的名稱格式<evaluated prefix><suffix>。您可以指定包含在執行階段評估的運算式的自訂前置詞。您指定的自訂前置詞將會覆寫的預設首碼YYYY/MM/dd/HH
。
自訂字首可使用下列形式的運算式:!{namespace:
,其中 value
}namespace
可為以下項目之一,如下列部分所述。
-
firehose
-
timestamp
-
partitionKeyFromQuery
-
partitionKeyFromLambda
如果字首結尾為斜線,看起來會像是 Amazon S3 儲存貯體內的資料夾。如需詳細資訊,請參閱 Amazon 資料 FirehoseDeveloper指南中的 Amazon S3 物件名稱格式。
timestamp
命名空間
此命名空間的有效值為有效 Java DateTimeFormatter!{timestamp:yyyy}
的評估結果為 2018
。
評估時間戳記時,Firehose 會使用正在寫入之 Amazon S3 物件中所包含之最舊記錄的近似到達時間戳記。
依預設,時間戳記為中UTC。但是,您可以指定您喜歡的時區。例如,您可以在中將時區設定為「亞洲/東京」 AWS Management Console 或者在API參數設置(CustomTimeZone),如果你想使用日本標準時間代替UTC。若要查看支援的時區清單,請參閱 Amazon S3 物件名稱格式。
若您在同一字首表達式內多次使用 timestamp
命名空間,每個執行個體的評估結果都是相同的時間。
firehose
命名空間
此命名空間可使用兩個值:error-output-type
和 random-string
。下表說明如何使用這兩個值。
firehose 命名空間值 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Conversion (轉換) | 描述 | 範例輸入 | 範例輸出 | 備註 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
error-output-type |
根據 Firehose 串流的組態以及失敗的原因,評估為下列其中一個字串:{處理失敗、失敗、溢出失敗、 AmazonOpenSearchService、、}。 format-conversion-failed http-endpoint-failed 若您在同一表達式內多次使用此值,每個執行個體的評估結果都是相同的錯誤字串。 |
myPrefix/result=!{firehose:error-output-type}/!{timestamp:yyyy/MM/dd} |
myPrefix/result=processing-failed/2018/08/03 |
此 error-output-type 值只能在 ErrorOutputPrefix欄位中使用。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
random-string |
評估結果為 11 個字元的隨機字串。若您在同一表達式內多次使用此值,每個執行個體的評估結果為新的隨機字串。 |
myPrefix/!{firehose:random-string}/ |
myPrefix/046b6c7f-0b/ |
可用於這兩種字首類型。 您可將其放在格式字串的開頭,以取得 Amazon S3 達到極高輸送量有時需要的隨機字首。 |
partitionKeyFromLambda
和 partitionKeyFromQuery
命名空間
對於動態分割,您必須在 S3 儲存貯體字首中使用下列運算式格式:!{namespace:value}
,其中命名空間可以是 partitionKeyFromQuery
或 partitionKeyFromLambda
,也可以是兩者。如果您使用內嵌剖析來建立來源資料的分割索引鍵,則必須指定由以下格式指定之運算式所組成的 S3 儲存貯體字首值:"partitionKeyFromQuery:keyID"
。如果您正在使用 AWS
Lambda 函數若要為來源資料建立分割金鑰,您必須指定由以下格式指定的運算式所組成的 S3 儲存貯體前綴值:"partitionKeyFromLambda:keyID"
如需詳細資訊,請參閱建立 Amazon Firehose 串流中的「為您的目的地選擇 Amazon S3」。
語義規則
下列規則適用於 Prefix
及 ErrorOutputPrefix
表達式。
-
以
timestamp
命名空間而言,不在單引號內的任何字元都將納入評估。換言之,值欄位中任何以單引號逸出的字串都將依照字面意思處理。 -
如果您指定不包含時間戳記命名空間運算式的前置詞,Firehose 會將運算式附加
!{timestamp:yyyy/MM/dd/HH/}
至欄位中的Prefix
值。 -
序列
!{
僅出現於!{namespace:
表達式。value
} -
僅在
Prefix
不具表達式時,ErrorOutputPrefix
才可為零。在此情況下,Prefix
評估為<specified-prefix>yyyy/MM/DDD/HH/
,而ErrorOutputPrefix
評估為<specified-prefix><error-output-type>YYYY/MM/DDD/HH/
。DDD
代表某年某日。 -
若您指定
ErrorOutputPrefix
的表達式,務必納入至少一個!{firehose:error-output-type}
執行個體。 -
Prefix
無法納入!{firehose:error-output-type}
。 -
Prefix
或ErrorOutputPrefix
評估後都不能超過 512 個字元。 -
若目的地為 Amazon Redshift,
Prefix
必定不能具備運算式,ErrorOutputPrefix
必須為零。 -
當目的地是 Amazon OpenSearch 服務或 Splunk,並且沒有
ErrorOutputPrefix
指定時,Firehose 會使用該Prefix
欄位來輸入失敗的記錄。 -
當目的地為 Amazon S3 時,Amazon S3 目的地組態中的
Prefix
和ErrorOutputPrefix
會分別用於成功的記錄和失敗的記錄。如果您使用 AWS CLI 或者API,您可以使ExtendedS3DestinationConfiguration
用它自己的Prefix
和來指定 Amazon S3 備份組態ErrorOutputPrefix
。 -
當您使用 AWS Management Console 並將目的地設定為 Amazon S3,Firehose 會分別使用目標組態
ErrorOutputPrefix
中的Prefix
和來處理成功記錄和失敗記錄。如果您使用表示式指定前置詞,則必須指定錯誤前置碼,包括!{firehose:error-output-type}
。 -
當您
ExtendedS3DestinationConfiguration
搭配使用時 AWS CLI API、或 AWS CloudFormation,如果您指定了S3BackupConfiguration
,Firehose 就不會提供預設值ErrorOutputPrefix
。 -
建立 ErrorOutputPrefix 運算式時
partitionKeyFromLambda
,您無法使用和partitionKeyFromQuery
命名空間。
範例字首
Prefix 及 ErrorOutputPrefix 範例 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
輸入 | 已評估的前綴(二零一八年八月二十七日UTC上午十時三十分) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
無效輸入:Prefix 具有表達式時,ErrorOutputPrefix 不可為零 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|