{DynamoDB}DynamoDB でテーブルのエクスポートをリクエストする

DynamoDB テーブルを S3 バケットにエクスポートすると、Athena、AWS Glue、Lake Formation などの他の AWS サービスを使用して、
データの分析や複雑なクエリを有効にできます。

Amazon DynamoDB テーブルから Amazon S3 バケットにデータをエクスポートするには、ソーステーブルでポイントインタイムリカバリ(PITR)を有効にする必要があります。

DynamoDB JSON 形式または Amazon Ion テキスト形式のどちらでデータをエクスポートするかを選択できます。

前提:aws-cli/2.2.31
aws cli version 1の場合、エラー発生

-- 1. S3バケット作成

aws s3 mb s3://bucket123
aws s3 ls

-- 2. テストテーブル作成
aws dynamodb create-table \
--table-name tab1 \
--attribute-definitions \
AttributeName=col1,AttributeType=S \
AttributeName=col2,AttributeType=S \
--key-schema \
AttributeName=col1,KeyType=HASH \
AttributeName=col2,KeyType=RANGE \
--billing-mode=PAY_PER_REQUEST


aws dynamodb describe-table --table-name tab1

aws dynamodb put-item \
--table-name tab1 \
--item \
'{"col1": {"S": "val11"}, "col2": {"S": "val12"}, "col3": {"S": "val13"}, "col4": {"N": "1"}}'

aws dynamodb put-item \
--table-name tab1 \
--item \
'{"col1": {"S": "val21"}, "col2": {"S": "val22"}, "col3": {"S": "val23"}, "col4": {"N": "2"} }'

aws dynamodb scan --table-name tab1

-- 3. ポイントインタイムリカバリの有効化

aws dynamodb update-continuous-backups \
--table-name tab1 \
--point-in-time-recovery-specification PointInTimeRecoveryEnabled=True

 

-- 4. エクスポートをリクエス

aws dynamodb export-table-to-point-in-time \
--table-arn arn:aws:dynamodb:ap-northeast-1:999999999999:table/tab1 \
--s3-bucket bucket123 \
--s3-prefix tab1 \
--export-format DYNAMODB_JSON


aws dynamodb list-exports \
--table-arn arn:aws:dynamodb:ap-northeast-1:999999999999:table/tab1

aws dynamodb describe-export \
--export-arn arn:aws:dynamodb:ap-northeast-1:999999999999:table/tab1/export/99999999999999-xxxxxxxx


aws s3 ls s3://bucket123 --recursive

 

 

-- 5. クリーンアップ

-- テーブル一覧
aws dynamodb list-tables

-- テーブル削除
aws dynamodb delete-table --table-name tab1

-- バケット一覧
aws s3 ls

-- バケット削除
aws s3 rb s3://bucket123 --force