こんにちは、SCSK浦野です。
やっと暑さが落ち着いてきた気がしますが、よく考えたらあと数日で10月ですね。
さて、9月26日にAmazon DynamoDB データエクスポートで増分のエクスポートが追加され、すべてのリージョンで利用可能との事ですので、早速触ってみることにしました。
前提など
既にテーブルが作成されている状態から開始します。また、エクスポート先のS3についても準備済みとします。
DynamoDBに事前に登録してあるデータは以下です。
増分エクスポートの検証
- ポイントインタイム リカバリ (PITR) の有効化
通常のエクスポートでも必要な設定ですので、既に設定している場合はスキップしてください。 [バックアップ]タブを選択、ポイントインタイム リカバリ (PITR)欄から確認できます。
状態が「オフ」となっているときは、編集から有効にしてください。
- フルエクスポートの実施
ソーステーブル、送信先S3を選択肢、今まで通りの全体のエクスポートを実行します。
実行結果を見ると、フルで取得されていることが分かります。
S3に保存されたデータを確認してみると、以下の内容になっていました。全部入っていますね。
{ "Item": { "Dept": { "S": "Development" }, "Id": { "N": "3" }, "name": { "S": "Charlie Coder" } } } { "Item": { "Dept": { "S": "Sales" }, "Id": { "N": "2" }, "name": { "S": "Bob Salesman" } } } { "Item": { "Dept": { "S": "Administration" }, "Id": { "N": "4" }, "name": { "S": "Diana Admin" } } } { "Item": { "Dept": { "S": "Development" }, "Id": { "N": "1" }, "name": { "S": "Alice Developer" } } } { "Item": { "Dept": { "S": "Sales" }, "Id": { "N": "5" }, "name": { "S": "Eve Consultant" } } }
- DynamoDBへのアイテムの追加
コマンドを利用して、1件アイテムを追加します。
追加後の結果はこちら。
- 増分ののエクスポート の実施
S3へのエクスポートのページに移動し、[S3へのエクスポート]ボタンを押して新たなエクスポートを作成、実行します。
エクスポート期間では、先ほど追加のアイテムを追加した時間が入るように期間を設定します。
実行結果を見ると、増分で取得されていることが分かります。
S3に保存されたデータを確認してみると、以下の内容になっていました。該当時間に追加されたデータが入っていました。
※増分データは、取得時に作成されるフォルダの中ではなく、一つ上の階層に data フォルダが出来てそこに保存されるようです。{ "Metadata": { "WriteTimestampMicros": { "N": "1695885268847648" } }, "Keys": { "Dept": { "S": "Management" }, "Id": { "N": "6" } }, "NewImage": { "Dept": { "S": "Management" }, "Id": { "N": "6" }, "name": { "S": "Frank Manager" } } }
まとめ
DynamoDB のS3への増分エクスポートを試してみました。
実際の運用で定期的な実行には、Amazon EventBridge などを使用して、スケジュール設定する必要などが出てくるかと思いますが
増分エクスポートができるようになったことで、利便性が向上したと思います。