共用方式為


疑難排解 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'

若要解決,此使用者可以遵循下列其中一個步驟:

  1. 在資料庫層級執行下列查詢以將 IDENTITY_INSERT 設定為 ON,然後重新執行 CDC 對應工具

查詢 5

SET IDENTITY_INSERT dbo.TableName ON; 

(或)

  1. 執行插入時,使用者可以從對應中移除特定身分識別資料行。

問題:使用自我裝載整合執行階段時發生困難。

目前,CDC 資源不支援自我裝載整合執行階段。 如果嘗試連線至內部部署來源,則請搭配使用 Azure 整合執行階段與受控虛擬網路。