

# Amazon RDS ゼロ ETL 統合のトラブルシューティング
<a name="zero-etl.troubleshooting"></a>

分析送信先の [SVV\$1INTEGRATION](https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_INTEGRATION.html) システムテーブルにクエリを実行することで、ゼロ ETL 統合の状態を確認できます。`state` 列の値が `ErrorState` の場合、何か問題があることを意味します。詳細については、「[Amazon Redshift のシステムテーブルを使用して統合をモニタリングします。](zero-etl.describingmonitoring.md#zero-etl.monitoring)」を参照してください。

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

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

**Topics**
+ [ゼロ ETL 統合を作成できない](#zero-etl.troubleshooting.creation)
+ [統合が `Syncing` の状態でスタックしている](#zero-etl.troubleshooting.syncing)
+ [テーブルが Amazon Redshift にレプリケートされない](#zero-etl.troubleshooting.primarykey)
+ [1 つ以上の Amazon Redshift テーブルを再同期する必要がある](#zero-etl.troubleshooting.resync)
+ [Amazon SageMaker AI Lakehouse ゼロ ETL 統合の統合で失敗した問題](#zero-etl.troubleshooting.integration-issues)

## ゼロ ETL 統合を作成できない
<a name="zero-etl.troubleshooting.creation"></a>

ゼロ ETL 統合を作成できない場合は、ソースデータベースについて以下が正しいことを確認してください。
+ ソースデータベースは、サポートされている DB エンジンバージョンを実行している必要があります。サポートされているバージョンのリストについては、「[Amazon RDS ゼロ ETL 統合でサポートされているリージョンと DB エンジン](Concepts.RDS_Fea_Regions_DB-eng.Feature.ZeroETL.md)」を参照してください。
+  DB パラメータを正しく設定しました。必須パラメータが正しく設定されていないか、データベースに関連付けられていない場合、作成は失敗します。「[ステップ 1: カスタム DB のパラメータグループを作成する](zero-etl.setting-up.md#zero-etl.parameters)」を参照してください。

さらに、ターゲットデータウェアハウスについて、以下が正しいことを確認してください。
+ 大文字と小文字の区別が有効になっている。「[データウェアハウスの大文字と小文字の区別を有効にする](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.setting-up.html#zero-etl-setting-up.case-sensitivity)」を参照してください。
+ 正しい承認済みプリンシパルと統合ソースを追加した。「[Amazon Redshift データウェアハウスの認可を設定する](https://docs.aws.amazon.com/redshift/latest/mgmt/zero-etl-using.setting-up.html#zero-etl-using.redshift-iam)」を参照してください。
+ データウェアハウスは暗号化されている (プロビジョニングされたクラスターの場合)。「[Amazon Redshift データベース暗号化](https://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html)」を参照してください。

## 統合が `Syncing` の状態でスタックしている
<a name="zero-etl.troubleshooting.syncing"></a>

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

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

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

## テーブルが Amazon Redshift にレプリケートされない
<a name="zero-etl.troubleshooting.primarykey"></a>

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

```
ALTER DATABASE dbname INTEGRATION REFRESH TABLES table1, table2;
```

詳細については、「Amazon Redshift SQL リファレンス」の「[ALTER DATABASE](https://docs.aws.amazon.com/redshift/latest/dg/r_ALTER_DATABASE.html)」を参照してください。

1 つ以上のソーステーブルにプライマリキーがないため、データがレプリケートされていない可能性があります。Amazon Redshift のモニタリングダッシュボードには、これらのテーブルのステータスが `Failed` と表示され、ゼロ ETL 統合全体のステータスが `Needs attention` に変わります。この問題を解決するには、プライマリキーとなる既存のキーをテーブル内で特定するか、合成プライマリキーを追加することができます。詳細な解決策については、「[Amazon Aurora MySQL または Amazon RDS for MySQL と Amazon Redshift とのゼロ ETL 統合を作成する際に、プライマリキーがないテーブルを処理する](https://aws.amazon.com/blogs/database/handle-tables-without-primary-keys-while-creating-amazon-aurora-mysql-or-amazon-rds-for-mysql-zero-etl-integrations-with-amazon-redshift/)」を参照してください。

## 1 つ以上の Amazon Redshift テーブルを再同期する必要がある
<a name="zero-etl.troubleshooting.resync"></a>

ソースデータベースに対して特定のコマンドを実行するには、テーブルの再同期が必要になる場合があります。このような場合、[SVV\$1INTEGRATION\$1TABLE\$1STATE](https://docs.aws.amazon.com/redshift/latest/dg/r_SVV_INTEGRATION_TABLE_STATE.html) システムビューには `table_state` が `ResyncRequired` と表示されます。つまり、統合は MySQL から Amazon Redshift に特定のテーブルを完全にリロードする必要があります。

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

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


| Operation | 例 | 代替 | 
| --- | --- | --- | 
| 特定の位置への列の追加  |  <pre>ALTER TABLE table_name<br />  ADD COLUMN column_name INTEGER<br />  NOT NULL first;</pre>  | Amazon Redshift は、first または after キーワードを使用して特定の位置に列を追加することをサポートしていません。ターゲットテーブルの列の順序が重要でない場合は、より簡単なコマンドを使用してテーブルの最後に列を追加します。<pre>ALTER TABLE table_name<br />  ADD COLUMN column_name column_type;</pre> | 
| デフォルトの CURRENT\$1TIMESTAMP でのタイムスタンプ列の追加 |  <pre>ALTER TABLE table_name<br />  ADD COLUMN column_name TIMESTAMP<br />  NOT NULL DEFAULT CURRENT_TIMESTAMP;</pre>  | 既存のテーブル行の CURRENT\$1TIMESTAMP 値は RDS for MySQL によって計算されるため、テーブルデータを完全に再同期しない限り、Amazon Redshift でシミュレートすることはできません。可能であれば、テーブルが利用可能になるまでの待ち時間を避けるために、デフォルト値を `2023-01-01 00:00:15` などのリテラル定数に切り替えてください。 | 
| 1 つのコマンドで複数の列操作を実行する |  <pre>ALTER TABLE table_name<br />  ADD COLUMN column_1,<br />  RENAME COLUMN column_2 TO column_3;</pre>  | コマンドを ADD と RENAME の 2 つの操作に分割することを検討してください。この場合、再同期は不要です。 | 

## Amazon SageMaker AI Lakehouse ゼロ ETL 統合の統合で失敗した問題
<a name="zero-etl.troubleshooting.integration-issues"></a>

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

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

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

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

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

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