疑難排解 Azure Data Factory 中的異動資料擷取資源
適用於:Azure Data Factory Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費啟動新的試用版!
本文提供疑難排解 Azure Data Factory 中異動資料擷取資源常見問題的建議。
問題:在 SQL 來源中啟用原生 CDC 時發生困難。
針對 SQL 中的來源,有兩組資料表可供使用:已啟用原生 SQL CDC 的資料表,以及具有時間型累加資料行的資料表。
遵循下列步驟,以設定 SQL 資料庫中特定來源資料表的原生 CDC。
假設您擁有下表,而識別碼就是主索引鍵。 如果結構描述中有主索引鍵,則 supports_net_changes 會預設為 true。 如果沒有,則請使用查詢 3 中的指令碼進行設定。
查詢 1
CREATE TABLE Persons (
ID int,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
Last_login DATETIME,
PRIMARY KEY (ID));
注意
ADF CDC 資源目前只會載入插入、更新和刪除作業的淨變更。
若要在資料庫層級啟用 CDC,請執行下列查詢:
查詢 2
EXEC sys.sp_cdc_enable_db
若要在資料表層級啟用 CDC,請執行下列查詢:
查詢 3
EXEC sys.sp_cdc_enable_table
@source_schema = N'dbo'
, @source_name = N'Persons'
, @role_name = N'cdc_admin'
, @supports_net_changes = 1
, @captured_column_list = N'ID';
問題:無法在 CDC 資源設定程序中選取資料表。
如果您的 SQL 來源沒有已啟用 net_changed 的 SQL Server CDC,或沒有任何時間型累加資料行,則將無法選取來源中的資料表。
問題:無法從暖集區取得偵錯叢集。
無法從暖集區取得偵錯叢集。 將會有依 1+ 分鐘順序的等候時間。
問題:追蹤刪除作業時發生困難。
目前,CDC 資源支援下列接收器類型的刪除作業 - Azure SQL Database 和 Delta。 若要在資料行對應頁面中達到此目的,請選取 keys 資料行,以用來判斷來源中的資料列是否符合接收器中的資料列。
問題:目標 SQL 資料表具有身分識別資料行時,我的 CDC 資源失敗。
當您的目標接收器資料表具有身分識別資料行時,執行 CDC 時發生下列錯誤:
當 IDENTITY_INSERT 設為 OFF 時,無法將外顯值插入資料表 'TableName' 的識別欄位中。
執行下列查詢,以判斷您的 SQL 型目標中是否有身分識別資料行。
查詢 4
SELECT *
FROM sys.identity_columns
WHERE OBJECT_NAME(object_id) = 'TableName'
若要解決,此使用者可以遵循下列其中一個步驟:
- 在資料庫層級執行下列查詢以將 IDENTITY_INSERT 設定為 ON,然後重新執行 CDC 對應工具
查詢 5
SET IDENTITY_INSERT dbo.TableName ON;
(或)
- 執行插入時,使用者可以從對應中移除特定身分識別資料行。
問題:使用自我裝載整合執行階段時發生困難。
目前,CDC 資源不支援自我裝載整合執行階段。 如果嘗試連線至內部部署來源,則請搭配使用 Azure 整合執行階段與受控虛擬網路。