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 rb s3://bucket123 --force