翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon S3 を宛先として使用する Firehose ストリームを作成する場合は、Firehose がデータを配信する Amazon S3 バケットを指定する必要があります。Amazon S3 バケットプレフィックスを使用して、S3 バケットに保存するデータを整理できます。Amazon S3 バケットプレフィックスは、類似オブジェクトをグループ化できるディレクトリと同様のものです。
動的パーティショニングでは、パーティショニングされたデータは、指定された Amazon S3 プレフィックスに配信されます。動的パーティショニングを有効にしない場合、Firehose ストリームの S3 バケットプレフィックスの指定はオプションです。ただし、動的パーティショニングを有効にする場合は、Firehose がパーティショニングされたデータを配信する S3 バケットプレフィックスを指定する必要があります。
動的パーティショニングを有効にするすべての Firehose ストリームで、S3 バケットプレフィックス値は、その Firehose ストリームのために指定されたパーティショニングキーに基づく式で構成されます。上記のデータレコードの例を再度使用して、上記で定義したパーティショニングキーに基づく式で構成される次の S3 プレフィックス値を構築できます。
"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 は、実行時に上記の式を評価します。同じ評価された S3 プレフィックス式に一致するレコードを 1 つのデータセットにグループ化します。Firehose は、評価された S3 プレフィックスに各データセットを配信します。S3 へのデータセット配信の頻度は、Firehose ストリームバッファリング設定によって決まります。その結果、この例のレコードは次の S3 オブジェクトキーに配信されます。
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
動的パーティショニングでは、S3 バケットプレフィックスで次の式形式を使用する必要があります: !{namespace:value}
。ここで、名前空間は partitionKeyFromQuery
または partitionKeyFromLambda
、またはその両方です。インライン解析を使用してソースデータのパーティショニングキーを作成している場合は、次の形式で指定された式で構成される S3 バケットプレフィクス値を指定する必要があります: "partitionKeyFromQuery:keyID"
。AWS Lambda 関数を使用してソースデータのパーティショニングキーを作成している場合は、次の形式で指定された式で構成される S3 バケットプレフィックス値を指定する必要があります。"partitionKeyFromLambda:keyID"
。
注記
また、Hive スタイルの形式 (customer_id=!{partitionKeyFromQuery:customer_id} など) を使用して S3 バケットプレフィクス値を指定することもできます。
詳細については、「Creating an Amazon Firehose stream」および「Custom Prefixes for Amazon S3 Objects」の「Choose Amazon S3 for Your Destination」を参照してください。
Amazon S3 にデータを配信する際に改行区切り文字を追加する
[改行区切り文字] を有効にして、Amazon S3 に配信されるオブジェクト内のレコード間に改行区切り文字を追加できます。これは、Amazon S3 のオブジェクトの解析に役立ちます。これは、動的パーティショニングが集約データに適用される場合にも特に便利です。それは、マルチレコードの集約解除 (動的にパーティション化する前に集約データに適用する必要があります) は、解析プロセスの一環としてレコードから新しい行を削除するからです。