全ロードと変更データキャプチャ (CDC) の両方の AWS Database Migration Service (AWS DMS) タスクがあります。「ERROR: null value in column violates not-null constraint」 というエラーが表示されました。
解決策
移行タスクにラージオブジェクト (LOB) 列がある場合は、次のようなログエントリが表示されます。
「E: Command failed to load data with exit error code 1, Command output: ERROR: null value in column "xyz" violates not-null constraint」
AWS DMS が LOB 列を移行する場合、LOB 列を除くすべてのデータがターゲットテーブルに移行されます。AWS DMS はまた LOB 列に NULL レコードを挿入します。次に、AWS DMS はターゲットテーブルの行を LOB 列データで更新します。
ターゲットが AWS DMS によって作成されていない場合は、ターゲットデータ記述言語 (DDL) で NOT NULL 属性が指定されているかどうかを確認します。NOT NULL 属性がある場合は、テーブルを変更して LOB 列のデータ型の NOT NULL 制約を削除します。次に、AWS DMS タスクを再開します。
LOB モードとタスクフェーズの AWS DMS タスク動作については、次の表を参照してください。
LOB モード | 全ロード | 変更データキャプチャ |
---|
完全 LOB モード | NOT NULL 制約は許可されていない | NOT NULL 制約は許可されていない |
制限付き LOB モード | NULL 制約は許可されている | NOT NULL 制約は許可されていない |
関連情報
ラージバイナリオブジェクト (LOB) の移行