View a markdown version of this page

エクスポート配信について - AWS Data Exports

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

エクスポート配信について

次のセクションでは、エクスポート配信について説明します。

  • エクスポート S3 の親ディレクトリ構造: エクスポートが配信される S3 ディレクトリで、エクスポートデータがどのように構造化されるか。

  • エクスポートの更新: S3 ディレクトリでエクスポートが更新される頻度。

  • エクスポートの上書きと新規作成: エクスポート配信が上書きによってどのように変化し、新しい配信設定が作成されるか。

  • エクスポートデータのファイル名とチャンク: エクスポートファイル (gzip/csv または Parquet) の名前の付け方。

エクスポート S3 の親ディレクトリ構造

各エクスポートは、クエリからのデータが (1 つ以上の gzip/csv ファイルまたは Parquet ファイルとして) S3 に配信され、エクスポートが実行された時点でのエクスポート定義に関する情報を含む Manifest.json メタデータファイルも送信されます。

[データ]

エクスポートクエリの結果のデータは、次の S3 ファイルパスに保存されます。

s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/

パーティションはクエリ対象のテーブルに対応しています。CUR 2.0 の場合、パーティションは特定の CUR 2.0 エクスポートの「請求期間」に対応します。

prefix: エクスポートに割り当てる S3 ファイルプレフィックス。

export-name: エクスポートに割り当てる名前。

partition: パーティションは、1 つのテーブルを配信用に別々のテーブルに分割する方法を示しています。CUR 2.0 では、パーティションは BILLING_PERIOD=YYYY-MM のフォーマットで「請求期間」に対応します。例えば、2023 年 11 月のパーティションは 2023-11 です。

S3 ファイルパスの例を次に示します。

s3://my-data-export-s3-bucket/my-cur-files/business_group_a_cur/data/BILLING_PERIOD=2023-11

メタデータ

クエリの Manifest.json メタデータファイルは、次の S3 ファイルパスに保存されます。

s3://<bucket-name>/<prefix>/<export-name>/metadata/<partition>/<export-name>-Manifest.json

Manifest.json ファイルは、エクスポートが更新されるたびに更新されます。エクスポートによって新しいパーティションが作成されるたびに、新しい Manifest.json ファイルが作成されます。CUR 2.0 では、新しい請求期間が始まると新しい Manifest.json ファイルが生成されます。

マニフェストファイルには、次の情報が含まれています。

  • エクスポートに含まれるすべての列。

  • エクスポートファイルとそのファイルパスのリスト。このリストをプログラムで読み込み、取り込むファイルを特定することをおすすめします。

  • エクスポートの対象となる期間。

  • Athena または Amazon Redshift 統合がある場合に配信される追加のファイルを一覧表示additionalOutputFilesする というセクション。

Manifest.json は、すべてのエクスポートデータファイルが S3 に配信された後にのみ配信されます。

エクスポートの更新

データエクスポートは、ソースデータが更新されるたびにエクスポートを更新します。CUR 2.0の場合、少なくとも 1 日に 1 回実行されます。現在の請求期間 (パーティション) は請求期間が終了するまで更新され、その時点で次の請求期間の配信が開始されます。次の請求期間の配信には、その請求期間の料金と請求データのみが含まれます。請求期間が終了したら、以前の請求期間の終了から最初の 2 週間以内にエクスポート配信を更新 AWS できます。

エクスポートの上書きと新規作成

エクスポートを作成する場合、新しいエクスポートファイルを作成するか、更新ごとに既存のエクスポートファイルを上書きするかを選択できます。

新規作成

新しいエクスポートファイルを作成すると、エクスポートの更新がすべて保持されるため、S3 ストレージの使用量が増えます。以前のエクスポートファイルを上書きすると、各請求期間の更新の最新バージョンのみが保持されるため、S3 ストレージの使用量が少なくなります。

「新規作成」モードでは、エクスポートファイルは次の S3 パスに配信されます。

s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/<timestamp>-<execution-id>

timestamp はエクスポートが実行された日時です。execution-id は実行に割り当てられた一意の ID です。

「新規作成」では、エクスポートを実行するたびに 2 つの Manifest.json ファイルが配信されます。1 つは metadata/<partition>/<timestamp>-<execution-id> ディレクトリに保存され、もう 1 つは metadata/<partition> ディレクトリで上書きされます。metadata/<partition> ディレクトリ内のマニフェストは常に最新の更新内容を表し、そのデータを使用して最近更新されたエクスポートファイルの場所を識別します。

上書き

上書きは、同じパーティション (つまり請求期間) の更新にのみ適用されます。新しい請求期間が始まると、エクスポートは最新のパーティションまたは請求期間に基づいた名前で新しい S3 ディレクトリを作成し、そこに新しいエクスポートパーティションの配信を開始します。特定のパーティションのデータが更新されない限り、前のパーティションのエクスポートは上書きされません。

「上書き」モードでは、エクスポートファイルは次の S3 パスに配信されます。

s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/

このファイルディレクトリ内のエクスポートファイルは、同じパーティション (つまり、請求期間) が配信されるたびに上書きされます。

エクスポートのサイズが十分になると、エクスポートファイルは複数の「チャンク」(個別の gzip/csv ファイルまたは Parquet ファイル) として配信されます。その月の間にエクスポートのサイズが減少した場合 (クエリの変更やデータの修正により)、エクスポートを更新するのに必要なチャンクが少なくなる可能性があります。この場合、データエクスポートは前回の更新で発生した余分なチャンクを空のデータで上書きします。

上書きの場合、エクスポートを実行するたびに 1 つの Manifest.json ファイルが配信されます。ファイルは metadata/<partition> ディレクトリに保存され、更新されるたびに上書きされます。

エクスポートデータのファイル名とチャンク

エクスポートは、1 回の実行結果を 1 つのファイル (gzip/csv または Parquet) として配信するか、エクスポートのサイズが十分になったときに複数の「チャンク」(個別の gzip/csv または Parquet ファイル) として配信します。

gzip/csv ファイル形式のエクスポートの名前は次のとおりです。

<export-name>-<chunk-number>.csv.gz

Parquet 形式のエクスポートの名前は次のとおりです。

<export-name>-<chunk-number>.snappy.parquet

チャンク番号は常に 5 桁です。チャンク番号は 00001 から順に列挙されます。

注記

CUR 2.0 の作成時に Athena または Redshift レポート統合オプションを選択した場合、Redshift と Athena の統合に関する以下のセクションが関連している可能性があります。

Amazon Redshift の統合

Amazon Redshift 統合のオプションを選択した場合、 はレポートを Amazon Redshift にアップロードするために必要な SQL コマンドを含むファイル AWS も作成して配信します。Amazon Redshift にデータエクスポートをアップロードするには、次の手順を実行します。

Amazon Redshift にデータエクスポートをアップロードするには
  1. Amazon Redshift クラスターを作成します。詳細については、「Amazon Redshift 管理ガイド」の「クラスターの作成」を参照してください。

  2. AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/s3/ で Amazon S3 コンソールを開きます。

  3. AWS データエクスポートを保存する Amazon S3 の場所に移動します。

  4. S3 のマニフェストRedshiftCommands.sqlファイルと Redshift ヘルパーファイルと一緒に保存されているファイルをダウンロードします。

    <bucket>/<prefix>/<export-name>/metadata/<partition>/<export-name>-RedshiftCommands.sql

  5. copy コマンドで、 を、 AWS データエクスポートを保存する Amazon S3 バケットにアクセスする権限を持つ IAM ロールの ARN <AWS_ROLE>に置き換えます。

  6. を Amazon S3 バケットがあるリージョン<S3_BUCKET_REGION>に置き換えます。例えば、us-east-1

  7. SQL クライアントを使用してクラスターに接続します。詳細については、Amazon Redshift管理ガイドAmazon Redshift クラスターとデータベースへのアクセスを参照してください。

  8. SQL コマンドを RedshiftCommands.sql ファイルから SQL クライアントに、次の順序でコピーします:

    1. テーブルの作成 — レポートに合わせてカスタマイズされたスキーマを持つ Amazon Redshift テーブルを作成します。

    2. copy — 提供された IAM ロールを使用して、S3 から Amazon Redshift に AWS データエクスポートファイルをアップロードします。

    3. タグテーブルの作成 — 定義タグをユーザー定義 AWSタグにマッピングできるテーブルを作成します。

    4. insert — ユーザー定義タグをタグテーブルに挿入します。

  9. AWS データエクスポートから Amazon Redshift にすべてのデータをコピーしたら、SQL を使用してデータをクエリできます。詳細については、「Amazon Redshift データベースデベロッパーガイド」の「Amazon Redshift SQL」を参照してください。

Amazon Athena の統合

Amazon Athena 統合のオプションを選択した場合、 は必要なすべてのリソースのセットアップに役立つ複数のファイル AWS も作成して配信します。 は CloudFormation テンプレート、Athena テーブルを手動で作成するための SQL ファイル、およびエクスポートの更新ステータスをチェックするためのステータスフォルダ AWS を提供します。これらのファイルでは次の命名規則が使用されます。

Athena リソースを設定するための CloudFormation テンプレート:

<prefix>/<export-name>/crawler-cfn.yml

Athena テーブルを手動で作成する SQL ファイル:

<prefix>/<export-name>/metadata/<partition>/<export-name>-create-table.sql

更新ステータスフォルダをエクスポートします。

<prefix>/<export-name>/execution_status/

CloudFormation テンプレートを使用した Athena のセットアップ

Athena CloudFormation テンプレートを使用するには
  1. S3 バケット内の crawler-cfn.yml ファイルに移動し、オブジェクト URL の横にあるコピーボタンを選択します。

  2. クラウドフォーメーション コンソール のhttps://console.aws.amazon.com/cloudformation/ 開きます:

  3. CloudFormation を使用したことがない場合は、新しいスタックの作成を選択します。それ以外の場合は、[スタックを作成] を選択します。

  4. テンプレートの準備 で、既存のテンプレートの選択 を選択します。

  5. テンプレートの指定で、テンプレートソースAmazon S3 URL を選択します。

  6. S3 オブジェクト URL を Amazon S3 URL ボックスに貼り付けます。

  7. [次へ] を選択します。

  8. [スタック名] としてテンプレートの名前を入力し、[次へ] を選択します。

  9. ページの下部で、 AWS CloudFormation が IAM リソースを作成する場合があることを承認します。

  10. [次へ] を選択し、[送信] を選択します。

既存の Athena CloudFormation テンプレートを更新するには
  1. Amazon S3 コンソール (https://console.aws.amazon.com/s3/) を開きます。

  2. バケットのリストから、データエクスポートの受信 AWS を選択したバケットを選択します。

  3. レポートパスプレフィックス (your-report-path-prefix/) を選択し、レポート名 () を選択しますyour-report-name/

  4. .yml テンプレートファイルを選択し、オブジェクト URL の横にあるコピーボタンを選択します。

  5. クラウドフォーメーション コンソール のhttps://console.aws.amazon.com/cloudformation/ 開きます:

  6. 以前に作成したスタックを選択し、スタックの更新 > 直接更新を選択します。

  7. 「テンプレートの準備」で、「既存のテンプレートを置き換える」を選択します。

  8. テンプレートソースで、Amazon S3 URL を選択します。

  9. S3 オブジェクト URL を Amazon S3 URL ボックスに貼り付けます。

  10. [次へ] を選択します。

  11. スタックの詳細を指定ページで、詳細を変更し、次へを選択します。

  12. ページの下部で、 AWS CloudFormation が IAM リソースを作成する可能性があることを承認します。

  13. [次へ] を選択し、[送信] を選択します。

Athena の手動セットアップ

CloudFormation テンプレートを使用しない場合は、提供された SQL ファイルを使用して Athena テーブルを手動で作成できます。

Athena テーブルを手動で作成するには
  1. エクスポート用の create-table.sql ファイルは、次の場所にあります。

    <bucket>/<prefix>/<export-name>/metadata/BILLING_PERIOD=YYYY-MM/<export-name>-create-table.sql

  2. 新しいクエリ 1 クエリペインで、 ファイルから SQL を貼り付けます。には<database name>.<table name>、SQL の最初の行のデータベースとテーブル名を使用します。

  3. データベースを作成するには、以下を実行します。

    CREATE DATABASE <database name>

新しいレポートパーティションをロードするには、次の SQL を実行します。

ALTER TABLE `<database name>`.<table name> ADD PARTITION (billing_period='YYYY-MM') LOCATION 's3://<bucket>/<prefix>/<export-name>/data/BILLING_PERIOD=YYYY-MM/'; YYYY-MM は、4 桁の年と 2 桁の月で表される請求期間です。例: 2026 年 5 月。

詳細については、Amazon Athena を使用したコストと使用状況レポートのクエリ」を参照してください。

概要

新規作成用のディレクトリを含むエクスポートデータファイル名

Parquet:

s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/<timestamp>-<execution-id>/<export-name>-<chunk-number>.snappy.parquet

gzip/csv:

s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/<timestamp>-<execution-id>/<export-name>-<chunk-number>.csv.gz

上書き用のディレクトリを含むエクスポートデータファイル名

Parquet:

s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/<export-name>-<chunk-number>.snappy.parquet

gzip/csv:

s3://<bucket-name>/<prefix>/<export-name>/data/<partition>/<export-name>-<chunk-number>.csv.gz

新規作成用のディレクトリを含むマニフェストファイル名

「新規作成」モードは Manifest.json を 2 つの場所に配信します。

1 つ目の場所は、エクスポートの特定の実行を表すフォルダ (timestamp および execution-id という名前) にあります。このマニフェストはその特定の実行に対応しています。ファイルパスは次のとおりです。

s3://<bucket-name>/<prefix>/<export-name>/metadata/<partition>/<timestamp>-<execution-id>

2 つ目の場所は、すべての実行内容を含むパーティションフォルダです。このマニフェストは、最後にエクスポートを実行したときと同じファイルです。このマニフェストを読むと、最近のすべてのエクスポートファイルの正確なファイルパスを確認できます。ファイルパスは次のとおりです。

s3://<bucket-name>/<prefix>/<export-name>/metadata/<partition>/Manifest.json

上書き用のディレクトリを含むマニフェストファイル名

「上書き」モードでは Manifest.json を 1 つの場所に配信します。

s3://<bucket-name>/<prefix>/<export-name>/metadata/<partition>

このディレクトリのマニフェストは、特定のパーティション (つまり、請求期間) が更新されるたびに上書きされます。