翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon S3 ターゲットのデータ検証
AWS DMSは、Amazon S3 ターゲットでレプリケートされたデータの検証をサポートしています。AWS DMSはレプリケートされたデータをフラットファイルとして Amazon S3 に保存するため、Amazon Athena CREATE TABLE AS SELECT (CTAS) クエリを使用してデータを検証します。
Amazon S3 に保存されているデータに対するクエリは、多大なコンピューティングが必要となるため、したがって、 は変更データキャプチャ (CDC) 中に Amazon S3 データの検証を 1 日 1 回、UTC 午前 0 時 (00:00) にAWS DMS実行します。がAWS DMS実行する各日次検証は、間隔検証と呼ばれます。間隔の検証中に、 は過去 24 時間ターゲット Amazon S3 バケットに移行されたすべての変更レコードAWS DMSを検証します。間隔検証の制限の詳細については、「ターゲットの S3 の検証を使用する場合の制限」を参照してください。
Amazon S3 のターゲット検証では Amazon Athena を使用するため、追加料金が適用されます。詳細については、Amazon Athena 料金
注記
S3 ターゲットの検証には、AWS DMSバージョン 3.5.0 以降が必要です。
S3 ターゲット検証の前提条件
S3 ターゲット検証を使用する前に、次の設定とアクセス許可を確認します。
-
エンドポイントの S3Settings の
DataFormat値をparquetに設定します。詳細については、「S3 の parquet 設定」を参照してください。 -
移行タスクの作成に使用するユーザーアカウントに割り当てられたロールに、適切なアクセス許可のセットが付与されていることを確認します。次の「権限」を参照してください。
継続的なレプリケーション (CDC) を使用するタスクの場合は、次の設定を確認します。
-
補足ログを有効にすると、CDC データに完全な記録を残せます。補足ロギングを有効にする方法については、このガイドの「トラブルシューティングと診断サポート」セクションの「Oracle ソース エンドポイントにサプリメンタル ログを自動的に追加する」を参照してください。
-
ターゲットエンドポイントの
TimestampColumnNameパラメータを設定します。タイムスタンプ列名には制限はありません。詳細については、[S3Settings] (S3設定)をご参照ください。 -
ターゲットでの日付ベースのフォルダ分割を設定します。詳細については、「日付ベースのフォルダパーティション分割を使用する」を参照してください。
ターゲットの S3 の検証を使用するためのアクセス許可
ターゲットの S3 の検証を使用するためのアクセス許可を設定するには、移行タスクの作成に使用するユーザーアカウントに割り当てられたロールに、次のとおりのアクセス許可のセットが付与されていることを確認します。サンプル値は実際の値に置き換えます。
ターゲットの S3 の検証を使用する場合の制限
ターゲットの S3 の検証を使用する場合に適用される追加の制限は、次のとおりです。すべての検証に適用される制限については、「制限事項」を参照してください。
-
DatePartitionSequence値には Day コンポーネントが必要です。ターゲットの S3 の検証は、YYYYMM形式をサポートしていません。 -
CDC 中に間隔検証を実行すると、
awsdms_validation_failures_v1テーブルに誤った検証エラーが表示されることがあります。これらのエラーは、間隔の検証中に到着した変更を翌日のパーティションフォルダAWS DMSに移行するために発生します。このような変更は通常、当日のパーティションフォルダに書き込まれます。このような誤ったエラーは、動的ソースデータベースから Amazon S3 などの静的ターゲットへのレプリケーションの検証の制限です。このような誤ったエラーを調べるには、検証期間の終わり (UTC 00:00) 付近のレコードを確認します。エラーは通常、この時間帯に表示されます。誤ったエラーの数を最小限に抑えるには、タスクの
CDCLatencySourceが低く設定されていることを確認します。レイテンシーのモニタリングの詳細については、「レプリケーションタスクのメトリクス」を参照してください。 -
failedまたはstoppedの状態のタスクは前日の変更を検証しません。予期しない障害による検証エラーを最小限に抑えるには、テーブルマッピング、ソースエンドポイント、ターゲットエンドポイントに同じ検証のみのタスクを個別に作成します。データ検証の詳細については、「S3 ターゲット検証での検証のみのタスクの使用」を参照してください。 -
テーブル統計の [検証ステータス] 列には、最新の間隔検証の状態が反映されます。そのため、不一致のあるテーブルが翌日の間隔検証後に検証済みとして表示される可能性があります。ターゲットの Amazon S3 バケット内の
s3_validation_failures folderフォルダを調べて、1 日以上前に発生した不一致がないかを確認します。 -
S3 Validation は、Amazon Athena のバケットテーブル機能を使用します。これにより、S3 検証はターゲットのテーブルデータのバケットコピーを作成できます。つまり、テーブルデータのコピーは、DMS 検証の内部パーティショニングに一致するサブセットに分割されます。Athena バケットテーブルには、100,000 バケットの制限があります。この制限を超える S3 検証が検証を試みるテーブルは、検証に失敗します。S3 Validation が作成を試みるバケットの数は、次と等しくなります。
(#records in the table) / (validation partition size setting)この制限を回避するには、S3 Validation によって作成されたバケット数が 100,000 未満になるように、検証パーティションサイズ設定を大きくします。バケット化の詳細については、「Amazon Athena ユーザーガイド」の「パーティショニングとバケット化を使用する」を参照してください。
-
テーブル名にはアンダースコア以外の特殊文字を含めることはできません。
S3 Validation は、テーブル名の特殊文字 (アンダースコア以外) をサポートしていない Amazon Athena を使用します。詳細については、「Amazon Athena ユーザーガイド」の「CREATE TABLE」を参照してください。
-
AWSLake Formation が管理する Amazon S3 ターゲットでAWS DMSデータ検証機能を使用すると、検証プロセスは失敗します。これにより、データ整合性の問題が生じる可能性があります。
S3 ターゲット検証での検証のみのタスクの使用
検証のみのタスクでは、移行は実行せず、移行されるデータの検証を実行します。
移行タスクが停止しても、検証のみのタスクは引き続き実行されます。これにより、 AWS DMSは 00:00 UTC 間隔の検証ウィンドウを見逃しません。
Amazon S3 ターゲットエンドポイントで検証のみのタスクを使用する場合、次の制限があります。
-
検証のみの設定が有効になっているフルロードタスクの Amazon S3 検証はサポートされています。ただし、その他のエンドポイントのフルロードタスクや検証のみのタスクとは動作が異なります。S3 をターゲットとして使用する場合、このようなタイプのタスクは S3 ターゲットのフルロードデータのみを検証し、CDC 移行の一環として移行されたデータは検証されません。この機能は、フルロードのみのタスクが作成したデータを検証する場合にのみ使用します。アクティブな CDC タスクが実行されているターゲットでこのモードを使用してデータを検証しても、効果的な検証は行われません。
-
検証のみのタスクは、最後の間隔検証期間 (UTC 00:00) 以降の変更のみを検証します。検証のみのタスクでは、前日のフルロードデータや CDC データは検証されません。