みなさん、こんにちは。小寺です。
AWS Database Migration Service(DMS)でS3データ検証をサポートするようになりました。

https://aws.amazon.com/jp/about-aws/whats-new/2023/03/aws-database-migration-service-s3-data-validation/

DMSとは

AWS Database Migration Serviceとは、データベースと分析のワークロードを迅速かつ安全に、ダウンタイムをゼロ、データ損失を最小限に抑えて AWS に移行するのを支援するマネージド移行およびレプリケーションサービスです。


AWS DMSを使えば、AWSクラウド間、オンプレからAWS間のデータの移行ができます。
ソース(移行元)とターゲット(移行先)の接続を指定し、抽出元とロード先を AWS DMSで設定すれば、データ移行を始めることができます。
ドライバーやアプリケーションをインストールする必要はなく、移行元のソースデータベースを何かしら変更することは不要で、AWS マネジメントコンソールで数回クリックするだけで、データベースの移行を始められます。

DMSは、テーブルと関連付けられたプライマリキーがターゲット(移行先)にない場合は代わりに作成します。
もしくは、ターゲット(移行先)テーブルを手動で作成することができます。AWS Schema Conversion Tool (AWS SCT) を使用して、ターゲットテーブル、インデックス、ビュー、トリガーなどの一部またはすべてを作成することができます。

今回のアップデート内容

AWS DMSでAmazon S3で移行先として、レプリケートされたデータの検証をサポートするようになりました。
元々、DMSではサポートされているソース(移行元)からサポートされているターゲット(移行先)に、低レイテンシーで継続的にデータをレプリケートする機能がありました。継続的なデータレプリケーションのユースケースとして、DR対策やデータベースの地理的分散、および開発/テスト環境の同期などさまざまなユースケースが挙げられます。
S3についてのユースケースとしては、複数のソースからAmazon Simple Storage Service (S3) にデータをレプリケートすることで、高可用性のスケーラブルなデータレイクソリューションを構築できます。また、Amazon Redshiftにデータをストリーミングすることで、データベースをペタバイト規模のデータウェアハウスに統合できるといったことがありました。

今回のアップデートでは、レプリケートされたデータをS3のバケットにフラットファイルとして格納され、Amazon AthenaのCTAS(CREATE TABLE AS)クエリを使用してデータを検証します。
CTAS(CREATE TABLE AS)とは、SELECTクエリの実行結果に基づいて、新しいテーブルとそのデータファイルをS3の指定された場所に作成する機能です。

検証のクエリ実行により、負荷が高くならないように、変更データキャプチャ (CDC) 中に Amazon S3 データの検証は日次で00:00UTCに実行します。日本時間(JST)なら9時ですね。
AWS DMS が実行する毎日の検証は「interval validation」と呼ばれます。interval validation中に、DMSは過去 24 時間にターゲットのAmazon S3バケットに移行された全部の変更レコードを検証します。

S3のデータ検証を実際に行う前には、以下の点に注意が必要です。
・エンドポイントの S3設定で DataFormat値をparquetに設定します。
・移行タスクの作成に使用されたユーザー アカウントに割り当てられたロールに、正しい権限セットがあるか確認します。
・進行中のレプリケーション (CDC) を使用するタスクについては、サプリメンタルロギングを有効にします。
・ターゲット エンドポイントの TimestampColumnName パラメータを設定します。
・ターゲットの日付ベースのフォルダー パーティションを設定します。

データ検証の制限事項について

以下がS3データ検証を利用する際の制限事項です。
・DatePartitionSequence値には Day コンポーネントが必要となり、YYYYMM 形式がサポートされないので、要注意
・CDC 中に「interval validation」が実行されている場合、awsdms_validation_failures_v1 テーブルに誤った検証エラーが表示されることあり。
なぜエラーになるのか?というと、DMSが「interval validation」実施中に変更がかかった場合、変更内容を翌日のパーティション フォルダーに移行するためです。
・誤ったエラーの数を最小限に抑えるには、タスクの CDCLatencySource が低いことを確認
・失敗または停止状態のタスクは、前日の変更検証ができないので要注意

まとめ

AWS Database Migration ServiceがS3データ検証をサポートするようになりました。今までも複数ソースから、S3にデータレプリケートして利用されている方には、うれしいアップデートですね。