[アップデート] Amazon DynamoDBで指定した区間のエクスポートができる増分エクスポート機能が追加されました
こんにちは。サービス開発室の武田です。
Amazon DynamoDBにはAmazon S3にテーブルをエクスポートできる機能があります。これまではテーブル全体をエクスポートする「フルエクスポート」のみが提供されていましたが、今回新しく、指定した期間のみエクスポートする「増分エクスポート」がサポートされました。
前提
増分エクスポートを使用する前提としてPITR(ポイントインタイムリカバリ)が有効化されている必要があります。そのためエクスポート機能を利用する予定のあるテーブルでは忘れずに有効化しましょう。
出力されるファイル
増分エクスポートをすると、マニフェストファイルとデータファイルの2種類がS3バケットに出力されます。マニフェストファイルは次のように出力されます。
prefix/AWSDynamoDB/ExportId/_started prefix/AWSDynamoDB/ExportId/manifest-summary.json prefix/AWSDynamoDB/ExportId/manifest-summary.checksum prefix/AWSDynamoDB/ExportId/manifest-files.json prefix/AWSDynamoDB/ExportId/manifest-files.checksum
prefix
はエクスポート時に、任意に指定できるキーです。また、ExportId
は自動で振られる一意なIDです。_started
は0Bの書き込みチェックなどの目的で作られるファイルとなり、これは消してしまっても問題ありません。
manifest-summary.json
はエクスポートジョブに関する概要情報を、manifest-files.json
はエクスポートされたテーブルデータを含むファイルについての情報を含みます。それぞれのフォーマットを公式ドキュメントから引用します。
{ "version": "2023-08-01", "exportArn": "arn:aws:dynamodb:us-east-1:599882009758:table/export-test/export/01695097218000-d6299cbd", "startTime": "2023-09-19T04:20:18.000Z", "endTime": "2023-09-19T04:40:24.780Z", "tableArn": "arn:aws:dynamodb:us-east-1:599882009758:table/export-test", "tableId": "b116b490-6460-4d4a-9a6b-5d360abf4fb3", "exportFromTime": "2023-09-18T17:00:00.000Z", "exportToTime": "2023-09-19T04:00:00.000Z", "s3Bucket": "jason-exports", "s3Prefix": "20230919-prefix", "s3SseAlgorithm": "AES256", "s3SseKmsKeyId": null, "manifestFilesS3Key": "20230919-prefix/AWSDynamoDB/01693685934212-ac809da5/manifest-files.json", "billedSizeBytes": 20901239349, "itemCount": 169928274, "outputFormat": "DYNAMODB_JSON", "outputView": "NEW_AND_OLD_IMAGES", "exportType": "INCREMENTAL_EXPORT" }
{ "itemCount": 8, "md5Checksum": "sQMSpEILNgoQmarvDFonGQ==", "etag": "af83d6f217c19b8b0fff8023d8ca4716-1", "dataFileS3Key": "AWSDynamoDB/data/sgad6417s6vss4p7owp0471bcq.json.gz" }
やってみた
- S3バケットは作成済み
- テーブルのPITR有効化済み
という前提で、残りの手順を試してみましょう。
まずテーブルの設定画面から、「エクスポートおよびストリーム」タグにアクセスします。この画面の「S3 へのエクスポート」を選択します。
次にエクスポートの設定をしていきます。「送信先 S3 バケット」にバケットおよびprefixの指定をします。また送信先には、自身だけでなく他のアカウントも指定できます。
「エクスポート設定」では「フルエクスポート」または「増分エクスポート」が指定できるようになっています。増分エクスポートを選んだ場合、「エクスポート期間」を指定します。期間の指定は最後の1時間や、最後の6時間といった相対指定か、日時を指定する絶対指定が可能です。
また「追加の設定」ではフォーマットの指定などができます。
これらを指定し実行ボタンをクリックすると、エクスポートが始まります。エクスポートタイプとして「増分」が表示されていることが確認できます。
しばらく待っていると、無事にバケットにデータがエクスポートされました。指定した期間ではあまりデータの更新がなかったようで、少量のデータのみエクスポートされたようです。
まとめ
これまではテーブルのエクスポートは全体のみ可能でしたが、期間を指定した増分エクスポートがサポートされました。データレイクでの使用など、定期的に更新していきたいケースで非常に有用な機能ではないでしょうか。