Amazon RDS ゼロ ETL 統合のトラブルシューティング - Amazon Relational Database Service

Amazon RDS ゼロ ETL 統合のトラブルシューティング

分析送信先の SVV_INTEGRATION システムテーブルにクエリを実行することで、ゼロ ETL 統合の状態を確認できます。state 列の値が ErrorState の場合、何か問題があることを意味します。詳細については、「Amazon Redshift のシステムテーブルを使用して統合をモニタリングします。」を参照してください。

以下の情報を使用して、Amazon RDS ゼロ ETL 統合に関する一般的な問題をトラブルシューティングしてください。

重要

再同期および更新オペレーションは、Amazon SageMaker Lakehouse とのゼロ ETL 統合では使用できません。統合に問題がある場合は、統合を削除して新しい統合を作成する必要があります。既存の統合を更新または再同期することはできません。

ゼロ ETL 統合を作成できない

ゼロ ETL 統合を作成できない場合は、ソースデータベースについて以下が正しいことを確認してください。

さらに、ターゲットデータウェアハウスについて、以下が正しいことを確認してください。

統合が Syncing の状態でスタックしている

必須 DB パラメータのいずれかの値を変更すると、統合のステータスが常に Syncing と表示されることがあります。

この問題を解決するには、ソースデータベースに関連付けられているパラメータグループのパラメータの値をチェックして、必要な値と一致していることを確認します。詳細については、「ステップ 1: カスタム DB のパラメータグループを作成する」を参照してください。

パラメータを変更した場合は、必ずデータベースを再起動して変更を適用してください。

テーブルが Amazon Redshift にレプリケートされない

Amazon Redshift に 1 つ以上のテーブルが反映されていない場合は、次のコマンドを実行してテーブルを再同期できます。

ALTER DATABASE dbname INTEGRATION REFRESH TABLES table1, table2;

詳細については、「Amazon Redshift SQL リファレンス」の「ALTER DATABASE」を参照してください。

1 つ以上のソーステーブルにプライマリキーがないため、データがレプリケートされていない可能性があります。Amazon Redshift のモニタリングダッシュボードには、これらのテーブルのステータスが Failed と表示され、ゼロ ETL 統合全体のステータスが Needs attention に変わります。この問題を解決するには、プライマリキーとなる既存のキーをテーブル内で特定するか、合成プライマリキーを追加することができます。詳細な解決策については、Amazon Aurora MySQL または Amazon RDS for MySQL と Amazon Redshift とのゼロ ETL 統合を作成する際に、プライマリキーがないテーブルを処理するを参照してください。

1 つ以上の Amazon Redshift テーブルを再同期する必要がある

ソースデータベースに対して特定のコマンドを実行するには、テーブルの再同期が必要になる場合があります。このような場合、SVV_INTEGRATION_TABLE_STATE システムビューには table_state が ResyncRequired と表示されます。つまり、統合は MySQL から Amazon Redshift に特定のテーブルを完全にリロードする必要があります。

テーブルが再同期を開始すると、Syncing の状態はになります。テーブルを再同期するために手動で操作を行う必要はありません。テーブルデータの再同期中は、Amazon Redshift からデータにアクセスすることはできません。

以下に、テーブルを ResyncRequired 状態にする操作の例と、検討すべき代替案をいくつか示します。

Operation 代替
特定の位置への列の追加
ALTER TABLE table_name ADD COLUMN column_name INTEGER NOT NULL first;
Amazon Redshift は、first または after キーワードを使用して特定の位置に列を追加することをサポートしていません。ターゲットテーブルの列の順序が重要でない場合は、より簡単なコマンドを使用してテーブルの最後に列を追加します。
ALTER TABLE table_name ADD COLUMN column_name column_type;
デフォルトの CURRENT_TIMESTAMP でのタイムスタンプ列の追加
ALTER TABLE table_name ADD COLUMN column_name TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
既存のテーブル行の CURRENT_TIMESTAMP 値は RDS for MySQL によって計算されるため、テーブルデータを完全に再同期しない限り、Amazon Redshift でシミュレートすることはできません。

可能であれば、テーブルが利用可能になるまでの待ち時間を避けるために、デフォルト値を 2023-01-01 00:00:15 などのリテラル定数に切り替えてください。

1 つのコマンドで複数の列操作を実行する
ALTER TABLE table_name ADD COLUMN column_1, RENAME COLUMN column_2 TO column_3;
コマンドを ADD と RENAME の 2 つの操作に分割することを検討してください。この場合、再同期は不要です。

Amazon SageMaker Lakehouse ゼロ ETL 統合の統合で失敗した問題

既存のゼロ ETL 統合と Amazon SageMaker Lakehouse で問題が発生した場合、唯一の解決策は統合を削除して新しい統合を作成することです。他の AWS サービスとは異なり、ゼロ ETL 統合は更新または再同期オペレーションをサポートしていません。

統合の問題を解決するには

  1. コンソール、CLI、または API を使用して、問題のあるゼロ ETL 統合を削除します。

  2. ソースデータベースとターゲットデータウェアハウスの設定が正しいことを確認します。

  3. 同じ設定または更新された設定で新しいゼロ ETL 統合を作成します。

このプロセスにより、データパイプラインが完全に再初期化されます。再初期化の時間は、ソースデータベースのサイズによって異なる場合があります。