本文說明如何將 Azure SQL 資料庫 異動數據擷取 (CDC) 來源新增至事件資料流。
適用於 Microsoft Fabric 事件資料流的 Azure SQL 資料庫 CDC 來源連接器可讓您擷取 Azure SQL 資料庫中目前數據的快照集。 接著,連接器會監視並記錄此數據的任何未來數據列層級變更。 一旦在 Eventstream 中擷取變更,您可以即時處理此 CDC 資料,並將其傳送至 Fabric 中的不同目的地,以執行進一步處理或分析。
必要條件
- 在 Fabric 容量授權模式或試用版授權模式下,擁有貢獻者或更高權限的使用者可存取工作區。
- 執行中具有 Azure SQL 資料庫的 Azure SQL 伺服器。
- Azure SQL 資料庫必須可公開存取,且不可位於防火牆後方或在 Azure 虛擬網路中受保護。
- 執行預存程式
sys.sp_cdc_enable_db,在您的 Azure SQL 資料庫中啟用 CDC。 如需詳細資料,請參閱啟用和停用異動資料擷取。 - 如果您沒有 eventstream, 請建立 eventstream。
請注意,您不得在 Azure SQL 資料庫中啟用鏡像。
為 Azure SQL 資料庫啟用 CDC
前往 Azure 入口網站,打開您的 Azure SQL Database,然後選取 [查詢編輯器]。 選取驗證方法登入
執行下列 SQL 命令,在您的資料庫中啟用 CDC:
-- Enable Database for CDC EXEC sys.sp_cdc_enable_db; -- Enable CDC for a table using a gating role option EXEC sys.sp_cdc_enable_table @source_schema = N'dbo', @source_name = N'MyTable', @role_name = NULL GO
啟動選取數據源精靈
如果你還沒在事件串流中新增任何來源,請選擇 「使用外部來源 」磁磚。
如果你是將原始碼加入已發布的事件串流,請切換到 編輯 模式。 在色帶上選擇 新增來源>外部來源。
在 [選取數據來源] 頁面上,搜尋並在 [Azure SQL DB (CDC)] 圖格上選取 [連線]。
設定並連線至 Azure SQL 資料庫 CDC
在 [連線] 頁面上,選取 [新的連線]。
在 [ 連線設定 ] 區段中,輸入 Azure SQL 資料庫的下列值:
伺服器:從 Azure 入口網站 輸入 Azure SQL 伺服器名稱。 格式如下:
mysqlservername.database.windows.net。資料庫:從 Azure 入口網站 輸入 Azure SQL 資料庫名稱。
向下卷動,然後在 [ 連線認證 ] 區段中,遵循下列步驟。
對於連線名稱,請輸入連線的名稱。
針對 [ 驗證種類],選取 [ 基本]。
備註
目前,Fabric Eventstream 僅支援 基本 驗證。
輸入資料庫的使用者名稱和密碼。
選取 Connect。
現在,在 [連線] 頁面上,選取 [所有資料表],或 [輸入資料表名稱]。 如果您選取後者,請使用完整資料表標識碼 (
schemaName.tableName) 或有效正則表達式的逗號分隔清單來指定資料表。 例如:- 使用
dbo.test.*來選取名稱開頭為dbo.test的所有數據表。 - 使用
dbo\.(test1|test2)來選取dbo.test1並dbo.test2。
您可以使用逗號來混合這兩種格式。 整個專案的字元總計限製為 102,400 個字元。
- 使用
您可以展開 進階設定 以存取Azure SQL Database CDC來源的更多設定選項:
-
十進位處理模式:定義連接器如何處理
DECIMAL欄位NUMERIC值:-
Precise:表示使用精確十進位型別的值(例如 JavaBigDecimal),以確保數據表示的完整精確度和精確度。 -
Double:將值轉換成雙精確度浮點數。 此設定可改善可用性和效能,但可能會導致精確度損失。 -
String:將值編碼為格式化字串。 此設定可讓您輕鬆在下游系統中使用,但會遺失原始數值類型的語意資訊。
-
-
快照模式:在連接器啟動時指定執行快照的條件:
-
Initial:連接器會僅在尚未為邏輯伺服器名稱記錄任何位移時,或偵測到先前的快照未能完成時,執行一次快照。 快照完成後,連接器開始串流事件記錄以供後續資料庫變更使用。 -
InitialOnly:連接器僅在邏輯伺服器名稱未記錄任何偏移時執行快照。 快照完成後,連接器停止運作。 它不會切換到串流來讀取binlog的變更事件。 -
NoData: 連接器執行一個快照,只捕捉結構,卻不捕捉任何資料表資料。 如果你不需要資料的一致快照,但只需要自連接器開始以來發生的變更,請設定此選項。
-
- 欄位排除清單:指定欄位以完全限定名稱(schemaName.tableName.columnName)排除事件值變更。
-
資料庫應用意圖:決定 SQL Server Always On 可用性群組中的路由行為:
-
ReadWrite: 連線到主要副本。 如果連線需要同時執行讀寫操作,請使用此方法。 -
ReadOnly允許路由至可讀的次要副本以進行僅限讀取操作。 用它直接在複本上啟用 CDC。 它需要將 snapshot.isolation.mode 設為 snapshot,這是唯一支援唯讀副本的事務隔離模式。
-
- 快照選擇語句覆寫功能:若要快照只包含資料表的部分資料列,請使用該屬性。 此特性僅影響快照。 它不適用於連接器從日誌讀取的事件。
-
十進位處理模式:定義連接器如何處理
選取 [下一步]。
在 [ 檢閱和建立] 畫面上檢閱摘要,然後選取 [ 新增]。
透過 CDC 自動資料表結構描述註冊,將變更資料從 Azure SQL 資料庫內嵌至 Eventstream。
在 [連線] 頁面上,選取 [新的連線]。
在 [ 連線設定 ] 區段中,輸入 Azure SQL 資料庫的下列值:
伺服器:從 Azure 入口網站 輸入 Azure SQL 伺服器名稱。 格式如下:
mysqlservername.database.windows.net。資料庫:從 Azure 入口網站 輸入 Azure SQL 資料庫名稱。
向下卷動,然後在 [ 連線認證 ] 區段中,遵循下列步驟。
對於連線名稱,請輸入連線的名稱。
針對 [ 驗證種類],選取 [ 基本]。
備註
目前,Fabric Eventstream 僅支援 基本 驗證。
輸入資料庫的使用者名稱和密碼。
選取 Connect。
現在,在 [連線] 頁面上,選取 [所有資料表],或 [輸入資料表名稱]。 如果您選取後者,請使用完整資料表標識碼 (
schemaName.tableName) 或有效正則表達式的逗號分隔清單來指定資料表。 例如:- 使用
dbo.test.*來選取名稱開頭為dbo.test的所有數據表。 - 使用
dbo\.(test1|test2)來選取dbo.test1並dbo.test2。
您可以使用逗號來混合這兩種格式。 整個專案的字元總計限製為 102,400 個字元。
- 使用
您可以展開 進階設定 以存取Azure SQL Database CDC來源的更多設定選項:
-
十進位處理模式:定義連接器如何處理
DECIMAL欄位NUMERIC值:-
Precise:表示使用精確十進位型別的值(例如 JavaBigDecimal),以確保數據表示的完整精確度和精確度。 -
Double:將值轉換成雙精確度浮點數。 此設定可改善可用性和效能,但可能會導致精確度損失。 -
String:將值編碼為格式化字串。 此設定可讓您輕鬆在下游系統中使用,但會遺失原始數值類型的語意資訊。
-
-
快照模式:在連接器啟動時指定執行快照的條件:
-
Initial:連接器會僅在尚未為邏輯伺服器名稱記錄任何位移時,或偵測到先前的快照未能完成時,執行一次快照。 快照完成後,連接器開始串流事件記錄以供後續資料庫變更使用。 -
InitialOnly:連接器僅在邏輯伺服器名稱未記錄任何偏移時執行快照。 快照完成後,連接器停止運作。 它不會切換到串流來讀取binlog的變更事件。 -
NoData: 連接器執行一個快照,只捕捉結構,卻不捕捉任何資料表資料。 如果你不需要資料的一致快照,但只需要自連接器開始以來發生的變更,請設定此選項。
-
- 欄位排除清單:指定欄位以完全限定名稱(schemaName.tableName.columnName)排除事件值變更。
-
資料庫應用意圖:決定 SQL Server Always On 可用性群組中的路由行為:
-
ReadWrite: 連線到主要副本。 如果連線需要同時執行讀寫操作,請使用此方法。 -
ReadOnly允許路由至可讀的次要副本以進行僅限讀取操作。 用它直接在複本上啟用 CDC。 它需要將 snapshot.isolation.mode 設為 snapshot,這是唯一支援唯讀副本的事務隔離模式。
-
- 快照選擇語句覆寫功能:若要快照只包含資料表的部分資料列,請使用該屬性。 此特性僅影響快照。 它不適用於連接器從日誌讀取的事件。
-
十進位處理模式:定義連接器如何處理
啟用 事件結構描述關聯。
針對 [工作區],選取結構描述集的 Fabric 工作區。
對於 結構描述集,預設會選取 + 建立 ,這會建立新的結構描述集。 您可以變更它以選取現有的事件結構描述集。
如果您在上一個步驟中選取 [+ 建立 ] 選項,請輸入結構描述集的名稱。
在 [檢閱 + 連線 ] 頁面上,選取 [新增]。
針對 Azure SQL 資料庫中的所有資料表或選取的資料表,連接器會自動探索並建立結構描述,並將其註冊到結構描述登錄。
選取中間的 事件串流 節點,然後切換至底部窗格中的 [相關聯的結構描述 ] 索引標籤。
結構描述集
檢視更新的事件串流
您可以在編輯模式中看到新增至事件資料流的 Azure SQL 資料庫 (CDC) 來源。
若要實作這個新增的 Azure SQL 資料庫 CDC 來源,請選取 [發佈]。 在實時檢視中完成這些步驟之後,Azure SQL 資料庫 CDC 來源可供查看。
設定事件串流目的地以使用架構
目前,啟用擴展功能的事件串流僅支援事件屋、自訂端點及衍生串流目的地。 本節會展示如何在啟用擴展功能(如結構支援)時新增和設定事件屋目的地。
設定自訂端點目的地的架構
選擇 轉換事件或新增目的地,然後選擇 自訂端點。
在 自訂端點 面板中,指定目的地名稱。
針對 輸入架構,選取事件的架構。 啟用事件串流的結構支援時,你會在這個框中選擇。
如需設定自訂端點目的地的詳細步驟,請參閱將 自訂端點或自訂應用程式目的地新增至事件串流。
設定 Eventhouse 終端的結構方案
選取 [轉換事件] 或 [新增目的地],然後選取 [Eventhouse]。
在 Eventhouse 窗格中,設定以下與結構相關的設定:
關於如何設定活動屋目的地的詳細步驟,請參見 「將活動屋目的地加入事件串流」。
相關內容
其他連接器: