

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 針對 Aurora 零 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)。

使用下列資訊，針對 Aurora 零 ETL 整合的常見問題進行疑難排解。

**重要**  
重新同步和重新整理操作不適用於與 Amazon SageMaker AI 資料湖倉的零 ETL 整合。如果整合發生問題，您必須刪除整合並建立新的整合。您無法重新整理或重新同步現有的整合。

**Topics**
+ [我無法建立零 ETL 整合](#zero-etl.troubleshooting.creation)
+ [我的整合停滯在 `Syncing` 狀態](#zero-etl.troubleshooting.syncing)
+ [我的資料表未複寫至 Amazon Redshift](#zero-etl.troubleshooting.primarykey)
+ [我的一個或多個 Amazon Redshift 資料表需要重新同步](#zero-etl.troubleshooting.resync)
+ [Amazon SageMaker AI Lakehouse 零 ETL 整合的整合失敗問題](#zero-etl.troubleshooting.integration-issues)
+ [在 Aurora PostgreSQL 的 DDL 交易完成之前，DDL 變更在 Amazon Redshift 中](#zero-etl.troubleshooting.ddl)

## 我無法建立零 ETL 整合
<a name="zero-etl.troubleshooting.creation"></a>

如果您無法建立零 ETL 整合，請確定下列情況對於您的來源資料庫是正確的：
+ 來源資料庫必須執行支援的資料庫引擎版本。如需支援的版本的清單，請參閱[零 ETL 整合的支援區域和 Aurora 資料庫引擎](Concepts.Aurora_Fea_Regions_DB-eng.Feature.Zero-ETL.md)。
+  您已正確設定資料庫參數。如果必要參數設定不正確或未與資料庫相關聯，則建立會失敗。請參閱 [步驟 1：建立自訂資料庫叢集參數群組。](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>

如果您變更其中一個必要資料庫參數的值，您的整合可能會持續顯示 `Syncing` 的狀態。

若要修正此問題，請檢查與來源資料庫叢集相關聯之參數群組中的參數值，並確定其符合必要值。如需詳細資訊，請參閱[步驟 1：建立自訂資料庫叢集參數群組。](zero-etl.setting-up.md#zero-etl.parameters)。

如果您修改任何參數，請務必將資料庫叢集重新開機以套用變更。

## 我的資料表未複寫至 Amazon Redshift
<a name="zero-etl.troubleshooting.primarykey"></a>

如果您沒有看到一或多個資料表反映在 Amazon Redshift 中，您可以執行下列命令來重新同步它們：

```
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)。

您的資料可能不會複寫，因為一或多個來源資料表沒有主索引鍵。Amazon Redshift 中的監控儀表板會將這些資料表的狀態顯示為 `Failed`，而整體零 ETL 整合的狀態會變更為 `Needs attention`。若要解決此問題，您可以識別資料表中可成為主索引鍵的現有索引鍵，也可以新增合成主索引鍵。如需詳細解決方案，請參閱在下列資源：
+ [建立與 Amazon Redshift 的 Amazon Aurora MySQL 或 Amazon RDS for MySQL 零 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/)
+ [建立與 Amazon Redshift 的 Amazon Aurora PostgreSQL 零 ETL 整合時，在沒有主索引鍵的情況下處理資料表](https://aws.amazon.com/blogs/database/handle-tables-without-primary-keys-while-creating-amazon-aurora-postgresql-zero-etl-integrations-with-amazon-redshift/)

## 我的一個或多個 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) 系統檢視會顯示 `ResyncRequired` 的 `table_state`，這表示整合必須將該特定資料表的資料從 MySQL 完全重新載入至 Amazon Redshift。

當資料表開始重新同步時，其會進入 `Syncing` 的狀態。您不需要採取任何手動動作，即可重新同步資料表。當資料表資料重新同步時，您無法在 Amazon Redshift 中存取該資料。

以下是一些可以將資料表置於 `ResyncRequired` 狀態的範例操作，以及可以考慮的替代方法。


| 作業 | 範例 | 備用 | 
| --- | --- | --- | 
| 將資料欄新增到特定位置  |  <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 值是由 Aurora MySQL 計算，若沒有完整的資料表資料重新同步，就無法在 Amazon Redshift 中進行模擬。如果可能，請將預設值切換為 `2023-01-01 00:00:15` 之類的常值常數，避免資料表可用性中的延遲。 | 
| 在單一命令內執行多個資料欄操作 |  <pre>ALTER TABLE table_name<br />  ADD COLUMN column_1,<br />  RENAME COLUMN column_2 TO column_3;</pre>  | 考慮將命令分成兩個單獨的操作 (ADD 和 RENAME)，這不需要重新同步。 | 

## Amazon SageMaker AI Lakehouse 零 ETL 整合的整合失敗問題
<a name="zero-etl.troubleshooting.integration-issues"></a>

如果您在現有的零 ETL Amazon SageMaker AI 整合中遇到與湖房整合的問題，唯一的解決方法是刪除整合並建立新的整合。與其他 AWS 服務不同，零 ETL 整合不支援重新整理或重新同步操作。

若要解決整合問題：

1. 使用主控台、CLI 或 API 刪除有問題的零 ETL 整合。

1. 驗證來源資料庫和目標資料倉儲組態是否正確。

1. 使用相同或更新的組態建立新的零 ETL 整合。

此程序將導致資料管道完全重新初始化，這可能需要一些時間，取決於來源資料庫的大小。

## 在 Aurora PostgreSQL 的 DDL 交易完成之前，DDL 變更在 Amazon Redshift 中
<a name="zero-etl.troubleshooting.ddl"></a>

在 Aurora PostgreSQL 零 ETL 整合中完成 DDL 操作之前，DDL 變更可能會出現在 Amazon Redshift 中。如需詳細資訊，請參閱[Aurora PostgreSQL 的 DDL 操作](zero-etl.querying.md#zero-etl.ddl-postgres)。