翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
データがソースからターゲットに正確に移行されたことを確認できます。タスクの検証を有効にすると、 はテーブルに対して全ロードが実行された直後にソースデータとターゲットデータの比較 AWS DMS を開始します。タスクのデータ検証の詳細、要件、データベースサポートのスコープ、レポートするメトリクスについては、「AWS DMS データ検証」をご参照ください。タスク設定ファイルを使用してタスク設定を設定する方法については、「タスク設定例」をご参照ください。
データの検証設定およびその値には、以下のものが含まれます。
-
EnableValidation
- true に設定すると、データの検証を有効にします。それ以外の場合は、タスクの検証が無効になります。デフォルト値は false です。 -
ValidationMode
– DMS がソーステーブルに対してターゲットテーブルのデータを検証する方法を制御します。 AWS DMS では、今後の拡張に向けてこの設定を提供しています。現在、デフォルトかつ唯一の有効な値は ですROW_LEVEL
。 は、ソーステーブルとターゲットテーブル間のすべての行 AWS DMS を検証します。 -
FailureMaxCount
- タスク検証が停止する前に、検証を失敗できるレコードの最大数を指定します。デフォルト値は 10,000 です。検証に失敗するレコードの数に関係なく検証を継続するには、この値をソースのレコード数より大きく設定します。 -
HandleCollationDiff
- このオプションをtrue
に設定すると、検証で比較するソースレコードとターゲットレコードを識別する際に、PostgreSQL と SQL Server のエンドポイントでの列照合の違いが考慮されます。それ以外の場合は、このような列照合の違いは検証で無視されます。列の照合は行の順序を指定でき、データ検証にとってはとても重要となります。HandleCollationDiff
を true に設定すると、この照合の違いを自動的に解決し、データ検証における誤検出を防ぎます。デフォルト値はfalse
です。 -
RecordFailureDelayInMinutes
– 検証障害の詳細を報告する前に遅延を分単位で指定します。 -
RecordFailureDelayLimitInMinutes
- 検証障害の詳細を報告する前に遅延を指定します。通常の場合、 AWS DMS はターゲットに変更行う際の実際の遅延を認識するタスクレイテンシーを使用して、誤検出を防ぎます。この設定は実際の遅延値を上書きし、すべての検証メトリクスを報告する前のより長い遅延の設定を有効にします。デフォルト値は 0 です。 -
RecordSuspendDelayInMinutes
-FailureMaxCount
で設定されたエラーしきい値のため、テーブル検証が中断されるまでの遅延時間を分単位で指定します。 -
SkipLobColumns
– このオプションを に設定するとtrue
、 はタスク検証のテーブルの 部分内のすべての LOB 列のデータ検証を AWS DMS スキップします。デフォルト値はfalse
です。 -
TableFailureMaxCount
– テーブル検証が停止する前に、検証を失敗できるテーブルあたりの最大行数を指定します。デフォルト値は 1,000 です。 -
ThreadCount
– 検証中に が AWS DMS 使用する実行スレッドの数を指定します。各スレッドは、ソースとターゲットからまだ検証されていないデータを選択し、比較して検証します。デフォルト値は 5 です。をより高い数値ThreadCount
に設定すると、 は検証をより迅速に完了 AWS DMS できます。ただし、この場合、 AWS DMS はより多くの同時クエリを実行し、ソースとターゲットでより多くのリソースを消費します。 -
ValidationOnly
– このオプションをtrue
に設定すると、タスクはデータの移行やレプリケーションを実行せずにデータ検証を実行します。デフォルト値はfalse
です。タスク作成後にValidationOnly
設定を変更することはできません。[TargetTablePrepMode] は
DO_NOTHING
(検証のみのタスクのデフォルト)に設定し、[移行タイプ] は次のいずれかに設定します。-
フルロード — タスク移行タイプを設定して、 AWS DMS コンソールで既存のデータを移行します。または、 AWS DMS API で移行タイプを FULL-LOAD に設定します。
-
CDC — AWS DMS コンソールで、タスクの [移行タイプ] を [データ変更のみをレプリケートする] に設定します。または、 AWS DMS API で移行タイプを CDC に設定します。
選択した移行タイプを問わず、検証のみのタスクではデータが実際に移行またはレプリケートされることはありません。
詳細については、「検証のみのタスク」を参照してください。
重要
ValidationOnly
の設定はイミュータブルです。タスクの作成後、タスクに対する変更はできません。 -
-
ValidationPartialLobSize
- 列に保存されているすべてのデータを検証するのではなく、LOB 列の部分検証を実行するかどうかを指定します。これは、LOB データセット全体ではなく LOB データの一部のみを移行する場合に便利な機能です。この値は、KB 単位です。デフォルト値は 0 で、 AWS DMS はすべての LOB 列データを検証します。例えば、 は、ソースとターゲットの両方の列データの最初の 32KB AWS DMS のみを検証する"ValidationPartialLobSize": 32
ことを意味します。 -
PartitionSize
-ソースとターゲットの両方から比較noために読み取るレコードのバッチサイズを指定します。デフォルトは 10,000 です。 -
ValidationQueryCdcDelaySeconds
— CDC 更新ごとに、ソースとターゲットの両方で最初の検証クエリが遅延する時間。これにより、移行のレイテンシーが高い場合にリソースの競合が軽減される可能性があります。検証のみのタスクでは、このオプションは自動的に 180 秒に設定されます。デフォルトは 0 です。
たとえば、以下の JSON ではスレッドのデフォルト数の 2 倍のデータ検証を有効化しています。また、ここでは PostgreSQL エンドポイントでの列照合の違いによって生じるレコード順序の相違も考慮されます。また、すべての検証失敗を処理する追加の時間を考慮に入れた検証報告遅延を提供します。
"ValidationSettings": {
"EnableValidation": true,
"ThreadCount": 10,
"HandleCollationDiff": true,
"RecordFailureDelayLimitInMinutes": 30
}
注記
Oracle エンドポイントの場合、 は DBMS_CRYPTO AWS DMS を使用して BLOBs。Oracle エンドポイントで BLOB を使用する場合は、Oracle エンドポイントにアクセスするために使用されるユーザーアカウントに DBMS_CRYPTO での execute
許可を付与します。これを行うには、以下のステートメントを実行します。
grant execute on sys.dbms_crypto to
dms_endpoint_user
;