皆さん、こんにちは!今回は、DynamoDBのインクリメンタルエクスポート機能を使って、データを継続的に保持する方法について解説します。
DynamoDBのデータ活用、特にオフライン分析や、別テーブルへのデータ同期などを考えている皆さん!テーブルサイズが大きくなってくると、フルエクスポートは時間とコストがかかってしまいますよね?そこで便利なのが、今回ご紹介する「インクリメンタルエクスポート」です!
DynamoDBのインクリメンタルエクスポートは、前回エクスポートした時点からのデータの変更分のみをAmazon S3にエクスポートする機能です。これにより、データの鮮度を保ちつつ、フルエクスポートよりも効率的にデータをエクスポートできます。
具体的な動作を見ていきましょう。
ポイントは、データの時間的な連続性を担保するために、フルエクスポートの終了時間と最初のインクリメンタルエクスポートの開始時間を一致させることです。また、各インクリメンタルエクスポートの終了時間と次のインクリメンタルエクスポートの開始時間も同様に一致させる必要があります。
今回ご紹介する「DCIE(DynamoDB Continuous Incremental Exports)」は、GitHubで公開されているオープンソースソリューションです。 Amazon EventBridge Schedulerで繰り返しワークフローをスケジュールし、AWS Step Functionsでワークフロー内のオーケストレーションを管理します。
DCIEのデプロイには、以下の5つの主要な入力値が必要です。
Step Functionsの状態マシンは、AWS Systems Managerの機能であるParameter Storeを使用して状態を維持します。
DCIEは、AWS Cloud Development Kit (AWS CDK)を使用してデプロイできます。カスタマイズのために上記入力値のみを提供します。また、カスタムS3バケット、S3プレフィックス、15分のデフォルトウィンドウよりも広い時間枠、10秒のデフォルト間隔よりも少ない/多い頻度でエクスポートが完了したかどうかを確認する間隔など、オプションの構成も提供できます。
Step Functionsワークフローは、指定されたテーブルが存在し、ポイントインタイムリカバリ(PITR)が有効になっていることを確認するためのサニティチェックから始まります。 PITRは、S3機能へのエクスポートの前提条件です。
ワークフローには、初期フルエクスポートを実行するためのツリーと、後続のすべての増分エクスポートを実行するためのツリーの2つの主要なツリーがあります。それぞれが作業を開始し、完了またはエラーを定期的にチェックし、それらを処理します。
DCIEのデプロイと詳細については、GitHubリポジトリのREADMEを参照してください。
今回の記事では、DynamoDBのインクリメンタルエクスポート機能と、継続的なデータエクスポートを実現するオープンソースソリューション「DCIE」をご紹介しました。 DynamoDBのデータ活用において、効率的かつ効果的なデータ連携を実現する上で、ぜひ本記事の内容をご活用ください。
AWSモダナイズ開発、データ分析基盤構築とデータ活用支援、基幹業務システムのUI.UX刷新はお気軽にお問い合わせください。
スモールスタート開発支援、サーバーレス・NoSQLのことなら
ラーゲイトまでご相談ください
低コスト、サーバーレスの
モダナイズ開発をご検討なら
下請け対応可能
Sler企業様からの依頼も歓迎