Skip to content
Last updated

Amazon S3 バケットへの Bulk Export の使用

Treasure Data の Bulk Export 機能を使用すると、データを Amazon S3 バケットにダンプできます。

前提条件

  • TD Toolbelt を含む Treasure Data の基本的な知識。

  • Amazon AWS アカウントと Amazon S3 バケット。

    • この機能には、オブジェクト操作のための Amazon S3 パーミッションが必要です

      • s3:PutObject

      • s3:GetBucketLocation

制限事項

  • 1 つのリージョンのデータを別のリージョンにエクスポートすることはできません。

  • Bulk Export コマンドは、エクスポートされたデータのパーティション化をサポートしなくなりました。これは、要件を満たすには遅すぎたエクスポートの速度を最適化するためです。パーティション化が必要な場合は、このコマンドを使用して一度に 1 時間のセグメントをエクスポートすることをお勧めします – プロセスをスクリプトで自動化します。

  • float 型の列のエクスポートはサポートされていません。スキーマに float 型の列を含むテーブルエクスポートジョブを実行しようとすると、次のエラーメッセージが表示される場合があります: invalid schema: unexpected type: float. 回避策として、テーブルのスキーマを手動で double に変更してください。

  • Policy-based Permission 機能を使用する場合、Bulk Export 機能はデフォルトで無効になっています。これは、Bulk Export 機能がポリシーベースの権限で設定された制限をサポートしていないためです。この制限を受け入れて PBP 機能を有効にしたい場合は、サポートにお問い合わせください。

  • Bulk Export 機能は、以下のリージョンに制限されています:

利用ユーザーコードリージョン名
US Regionus-east-1US East (N. Virginia) S3 bucket
Tokyo Regionap-northeast-1Asia Pacific (Tokyo) S3 bucket
Europe Regioneu-central-1EU (Frankfurt) S3 bucket
Koreaap-northeast-2Asia Pacific (Seoul) S3 bucket

Amazon S3 バケットへのデータのエクスポート

jsonl.gz または tsv.gz フォーマットの使用を強くお勧めします。これは、特定のパフォーマンス最適化のためです。

ダンプは MapReduce ジョブを通じて実行されます。バケットの場所は、AWS パブリックおよびプライベートアクセスキーが埋め込まれた S3 パスとして表現されます。

td table:export コマンドは、Treasure Data にアップロードされたすべてのデータを Amazon S3 バケットにダンプします。

  1. TD Toolbelt がインストールされているマシンから、コマンドラインターミナルを開きます。

  2. オプションで、次の構文を使用して、td table:export コマンドの最新の使用情報を検証します。

td table:export -help
  1. Bulk Export コマンドを使用して Bulk Export を開始します。データをダンプするデータベースとテーブルを指定します。
td table:export <db> <table>
  1. オプションで、使用したいオプションの値を入力します。たとえば、オプションは次のとおりです:
オプション説明
-w, --waitジョブが完了するまで待機
-f, --from TIMETIME と同じかそれより新しいデータをエクスポート
-t, --to TIMETIME より古いデータをエクスポート
-b, --s3-bucket NAME宛先 S3 バケットの名前 (必須)
-p, --prefix PATHS3 上のファイルのパスプレフィックス
-k, --aws-key-id KEY_IDデータをエクスポートするための AWS アクセスキー ID (必須)
-s, --aws-secret-key SECRET_KEYデータをエクスポートするための AWS シークレットアクセスキー (必須)
-F, --file-format FILE_FORMATエクスポートされたデータのファイルフォーマット。利用可能なフォーマットは、tsv.gz (1 行あたりタブ区切り値) および jsonl.gz (1 行あたり JSON レコード) です。json.gz および line-json.gz フォーマットはデフォルトで、後方互換性のためにまだ利用可能ですが、パフォーマンスが低いため、このオプションの使用は推奨されません。
-O, --pool-name NAME名前でリソースプールを指定
-e, --encryption ENCRYPT_METHODENCRYPT_METHOD でサーバーサイド暗号化を使用してエクスポート
-a --assume-role ASSUME_ROLE_ARNロール arn として ASSUME_ROLE_ARN で assume role を使用してエクスポート

Amazon Resource Names (ARN) は、AWS リソースを一意に識別します。

シンプルな Bulk Export 構文は次のようになります:

td table:export example_db table1 \
--s3-bucket mybucket \
-k KEY_ID \
-s SECRET_KEY

一般的な Bulk Export 構文には、次のオプションが含まれます:

td table:export <database_name> <table_name> \
--s3-bucket <S3_BUCKET_NAME> \
--prefix <S3_FILE_PREFIX> \
--aws-key-id <AWS_KEY> \
--aws-secret-key <AWS_SECRET_KEY> \
--file-format jsonl.gz

関連項目: