對 Aurora 與 Amazon Redshift 的零ETL整合進行故障診斷 - Amazon Aurora

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

Aurora 與 Amazon Redshift 的零ETL整合進行故障診斷

您可以在 Amazon Redshift 中查詢 SVV_INTEGRATION 系統資料表,以檢查零ETL整合的狀態。如果 state 資料欄具有 ErrorState 的值,表示有問題。如需詳細資訊,請參閱使用系統資料表監控整合

使用下列資訊來疑難排解與 Redshift 的 Amazon Aurora ETL零整合的常見問題。

我無法建立零整合ETL

如果您無法建立零ETL整合,請確定來源資料庫的下列內容正確無誤:

此外,請確定下列情況對於您的目標資料倉儲是正確的:

我的整合停滯在 的狀態 Syncing

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

若要修正此問題,請檢查與來源叢集相關聯之參數群組中的參數值,並確認它們符合所需的值。如需詳細資訊,請參閱步驟 1:建立自訂資料庫叢集參數群組。

如果您修改任何參數,請務必重新啟動 DB 叢集以套用變更。

我的資料表未複寫至 Amazon Redshift

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

ALTER DATABASE dbname INTEGRATION REFRESH TABLES table1, table2;

如需詳細資訊,請參閱《Amazon Redshift SQL參考ALTERDATABASE》中的 。

您的資料可能不會複寫,因為一或多個來源資料表沒有主索引鍵。Amazon Redshift 中的監控儀表板會將這些資料表的狀態顯示為 Failed,而整體零ETL整合的狀態會變更為 Needs attention。若要解決此問題,您可以識別資料表中可成為主索引鍵的現有索引鍵,也可以新增合成主索引鍵。如需詳細解決方案,請參閱在下列資源:

我的一個或多個 Amazon Redshift 資料表需要重新同步

在來源資料庫上執行特定命令可能需要重新同步資料表。在這些情況下,SVV_INTEGRATION_TABLE_STATE 系統檢視會顯示 table_stateResyncRequired,這表示整合必須將該特定資料表的資料從 MySQL 完全重新載入 Amazon Redshift。

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

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

作業 範例 備用
將資料欄新增到特定位置
ALTER TABLE table_name ADD COLUMN column_name INTEGER NOT NULL first;
Amazon Redshift 不支援使用 firstafter 關鍵字將資料欄新增到特定位置。如果目標資料表中的資料欄順序並不重要,請使用更簡單的命令,將資料欄新增至資料表的尾端:
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的值由 MySQL 計算,如果沒有完整資料表資料重新同步,無法在 Amazon Redshift 中模擬。

如果可能,請將預設值切換為 2023-01-01 00:00:15 之類的常值常數,避免資料表可用性中的延遲。

在單一命令內執行多個資料欄操作
ALTER TABLE table_name ADD COLUMN column_1, RENAME COLUMN column_2 TO column_3;
考慮將命令分成兩個單獨的操作 (ADDRENAME),這不需要重新同步。

DDL 在 Aurora Postgre DDL的交易完成之前,變更會在 Amazon Redshift 中SQL

DDL 在 Aurora PostgreSQL ETL零整合中完成DDL操作之前,變更可能會出現在 Amazon Redshift 中。如需詳細資訊,請參閱Aurora PostgreSQL 的 DDL 操作