共用方式為


將 Azure SQL 資料庫 CDC 來源新增至事件串流

本文說明如何將 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

  1. 前往 Azure 入口網站,打開您的 Azure SQL Database,然後選取 [查詢編輯器]。 選取驗證方法登入

    開啟 Azure SQL 資料庫的螢幕快照。

  2. 執行下列 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 DB CDC 作為 [取得事件精靈] 中來源類型的螢幕快照。

設定並連線至 Azure SQL 資料庫 CDC

  1. [連線] 頁面上,選取 [新的連線]

    此螢幕快照顯示 [取得事件精靈] 的 [連線] 頁面,其中已醒目提示 [新增連線] 連結。

  2. 在 [ 連線設定 ] 區段中,輸入 Azure SQL 資料庫的下列值:

    • 伺服器:從 Azure 入口網站 輸入 Azure SQL 伺服器名稱。 格式如下: mysqlservername.database.windows.net

    • 資料庫:從 Azure 入口網站 輸入 Azure SQL 資料庫名稱。

      顯示 [新連線] 頁面的連線設定的螢幕擷取畫面。

  3. 向下卷動,然後在 [ 連線認證 ] 區段中,遵循下列步驟。

    • 對於連線名稱,請輸入連線的名稱。

    • 針對 [ 驗證種類],選取 [ 基本]。

      備註

      目前,Fabric Eventstream 僅支援 基本 驗證。

    • 輸入資料庫的使用者名稱密碼

  4. 選取 Connect

    顯示 [新增連線] 頁面 [連線認證] 區段的螢幕快照。

  5. 現在,在 [連線] 頁面上,選取 [所有資料表],或 [輸入資料表名稱]。 如果您選取後者,請使用完整資料表標識碼 (schemaName.tableName) 或有效正則表達式的逗號分隔清單來指定資料表。 例如:

    • 使用 dbo.test.* 來選取名稱開頭為 dbo.test的所有數據表。
    • 使用 dbo\.(test1|test2) 來選取 dbo.test1dbo.test2

    您可以使用逗號來混合這兩種格式。 整個專案的字元總計限製為 102,400 個字元。

  6. 您可以展開 進階設定 以存取Azure SQL Database CDC來源的更多設定選項:

    • 十進位處理模式:定義連接器如何處理 DECIMAL 欄位 NUMERIC 值:
      • Precise:表示使用精確十進位型別的值(例如 Java BigDecimal),以確保數據表示的完整精確度和精確度。
      • Double:將值轉換成雙精確度浮點數。 此設定可改善可用性和效能,但可能會導致精確度損失。
      • String:將值編碼為格式化字串。 此設定可讓您輕鬆在下游系統中使用,但會遺失原始數值類型的語意資訊。
    • 快照模式:在連接器啟動時指定執行快照的條件:
      • Initial:連接器會僅在尚未為邏輯伺服器名稱記錄任何位移時,或偵測到先前的快照未能完成時,執行一次快照。 快照完成後,連接器開始串流事件記錄以供後續資料庫變更使用。
      • InitialOnly:連接器僅在邏輯伺服器名稱未記錄任何偏移時執行快照。 快照完成後,連接器停止運作。 它不會切換到串流來讀取binlog的變更事件。
      • NoData: 連接器執行一個快照,只捕捉結構,卻不捕捉任何資料表資料。 如果你不需要資料的一致快照,但只需要自連接器開始以來發生的變更,請設定此選項。
    • 欄位排除清單:指定欄位以完全限定名稱(schemaName.tableName.columnName)排除事件值變更。
    • 資料庫應用意圖:決定 SQL Server Always On 可用性群組中的路由行為:
      • ReadWrite: 連線到主要副本。 如果連線需要同時執行讀寫操作,請使用此方法。
      • ReadOnly允許路由至可讀的次要副本以進行僅限讀取操作。 用它直接在複本上啟用 CDC。 它需要將 snapshot.isolation.mode 設為 snapshot,這是唯一支援唯讀副本的事務隔離模式。
    • 快照選擇語句覆寫功能:若要快照只包含資料表的部分資料列,請使用該屬性。 此特性僅影響快照。 它不適用於連接器從日誌讀取的事件。
  7. 選取 [下一步]。

    這是 [取得事件精靈] 中 [連線] 頁面已填寫的螢幕擷圖。

  8. 在 [ 檢閱和建立] 畫面上檢閱摘要,然後選取 [ 新增]。

    顯示已填寫的活動精靈 [檢閱並建立] 頁面的螢幕擷取畫面。

透過 CDC 自動資料表結構描述註冊,將變更資料從 Azure SQL 資料庫內嵌至 Eventstream。

  1. [連線] 頁面上,選取 [新的連線]

    螢幕擷取畫面顯示 [取得事件] 精靈的 [連線] 頁面,並醒目提示 [新增連線] 連結。

  2. 在 [ 連線設定 ] 區段中,輸入 Azure SQL 資料庫的下列值:

    • 伺服器:從 Azure 入口網站 輸入 Azure SQL 伺服器名稱。 格式如下: mysqlservername.database.windows.net

    • 資料庫:從 Azure 入口網站 輸入 Azure SQL 資料庫名稱。

      顯示 [新連線] 頁面的連線設定的螢幕擷取畫面。

  3. 向下卷動,然後在 [ 連線認證 ] 區段中,遵循下列步驟。

    • 對於連線名稱,請輸入連線的名稱。

    • 針對 [ 驗證種類],選取 [ 基本]。

      備註

      目前,Fabric Eventstream 僅支援 基本 驗證。

    • 輸入資料庫的使用者名稱密碼

  4. 選取 Connect

    顯示 [新增連線] 頁面 [連線認證] 區段的螢幕快照。

  5. 現在,在 [連線] 頁面上,選取 [所有資料表],或 [輸入資料表名稱]。 如果您選取後者,請使用完整資料表標識碼 (schemaName.tableName) 或有效正則表達式的逗號分隔清單來指定資料表。 例如:

    • 使用 dbo.test.* 來選取名稱開頭為 dbo.test的所有數據表。
    • 使用 dbo\.(test1|test2) 來選取 dbo.test1dbo.test2

    您可以使用逗號來混合這兩種格式。 整個專案的字元總計限製為 102,400 個字元。

  6. 您可以展開 進階設定 以存取Azure SQL Database CDC來源的更多設定選項:

    • 十進位處理模式:定義連接器如何處理 DECIMAL 欄位 NUMERIC 值:
      • Precise:表示使用精確十進位型別的值(例如 Java BigDecimal),以確保數據表示的完整精確度和精確度。
      • Double:將值轉換成雙精確度浮點數。 此設定可改善可用性和效能,但可能會導致精確度損失。
      • String:將值編碼為格式化字串。 此設定可讓您輕鬆在下游系統中使用,但會遺失原始數值類型的語意資訊。
    • 快照模式:在連接器啟動時指定執行快照的條件:
      • Initial:連接器會僅在尚未為邏輯伺服器名稱記錄任何位移時,或偵測到先前的快照未能完成時,執行一次快照。 快照完成後,連接器開始串流事件記錄以供後續資料庫變更使用。
      • InitialOnly:連接器僅在邏輯伺服器名稱未記錄任何偏移時執行快照。 快照完成後,連接器停止運作。 它不會切換到串流來讀取binlog的變更事件。
      • NoData: 連接器執行一個快照,只捕捉結構,卻不捕捉任何資料表資料。 如果你不需要資料的一致快照,但只需要自連接器開始以來發生的變更,請設定此選項。
    • 欄位排除清單:指定欄位以完全限定名稱(schemaName.tableName.columnName)排除事件值變更。
    • 資料庫應用意圖:決定 SQL Server Always On 可用性群組中的路由行為:
      • ReadWrite: 連線到主要副本。 如果連線需要同時執行讀寫操作,請使用此方法。
      • ReadOnly允許路由至可讀的次要副本以進行僅限讀取操作。 用它直接在複本上啟用 CDC。 它需要將 snapshot.isolation.mode 設為 snapshot,這是唯一支援唯讀副本的事務隔離模式。
    • 快照選擇語句覆寫功能:若要快照只包含資料表的部分資料列,請使用該屬性。 此特性僅影響快照。 它不適用於連接器從日誌讀取的事件。
  7. 啟用 事件結構描述關聯

  8. 針對 [工作區],選取結構描述集的 Fabric 工作區。

  9. 對於 結構描述集,預設會選取 + 建立 ,這會建立新的結構描述集。 您可以變更它以選取現有的事件結構描述集。

  10. 如果您在上一個步驟中選取 [+ 建立 ] 選項,請輸入結構描述集的名稱。

    螢幕擷取畫面,顯示 Azure SQL 資料庫 CDC 來源的結構描述設定。

  11. 在 [檢閱 + 連線 ] 頁面上,選取 [新增]。

    螢幕擷取畫面,顯示 Azure SQL 資料庫 CDC 來源的檢閱 + 連線頁面。

    針對 Azure SQL 資料庫中的所有資料表或選取的資料表,連接器會自動探索並建立結構描述,並將其註冊到結構描述登錄。

  12. 選取中間的 事件串流 節點,然後切換至底部窗格中的 [相關聯的結構描述 ] 索引標籤。

    螢幕擷取畫面,顯示底部窗格中的 [相關結構描述] 視窗。

結構描述集

  1. 導覽至您在上一個步驟中選取的工作區。 在下列範例中,它是 [我的工作區]。

  2. 選取 Azure SQL 資料庫 (CDC) 連接器所建立的結構描述集。

    螢幕擷取畫面,顯示在 [ 我的工作區 ] 頁面中產生的結構描述集。

  3. 您會看到結構描述集中的結構描述,如下圖所示。

    顯示所產生結構描述集中結構描述的螢幕擷取畫面。

  4. 若要查看結構描述的 JSON 版本,請切換至 JSON 結構描述 檢視。

    顯示 JSON 結構描述檢視的螢幕擷取畫面。

    請勿使用此編輯器變更這些探索到的結構描述,因為它會與 Azure SQL 資料庫來源中的資料表結構描述進行非確認。

檢視更新的事件串流

  1. 您可以在編輯模式中看到新增至事件資料流的 Azure SQL 資料庫 (CDC) 來源。

    在 [編輯] 檢視中串流 Azure SQL 資料庫 CDC 來源的螢幕快照。

  2. 若要實作這個新增的 Azure SQL 資料庫 CDC 來源,請選取 [發佈]。 在實時檢視完成這些步驟之後,Azure SQL 資料庫 CDC 來源可供查看。

    即時檢視中串流 Azure SQL 資料庫 CDC 來源的螢幕快照。

設定事件串流目的地以使用架構

目前,啟用擴展功能的事件串流僅支援事件屋、自訂端點及衍生串流目的地。 本節會展示如何在啟用擴展功能(如結構支援)時新增和設定事件屋目的地。

設定自訂端點目的地的架構

  1. 選擇 轉換事件或新增目的地,然後選擇 自訂端點

  2. 自訂端點 面板中,指定目的地名稱。

  3. 針對 輸入架構,選取事件的架構。 啟用事件串流的結構支援時,你會在這個框中選擇。

截圖顯示了設定自訂端點的面板。

如需設定自訂端點目的地的詳細步驟,請參閱將 自訂端點或自訂應用程式目的地新增至事件串流

設定 Eventhouse 終端的結構方案

  1. 選取 [轉換事件] 或 [新增目的地],然後選取 [Eventhouse]。

  2. Eventhouse 窗格中,設定以下與結構相關的設定:

    1. 對於 輸入架構,從下拉選單中選擇一個或多個架構。

      截圖顯示 eventhouse 設定窗格,並選取輸入結構。

      備註

      如果你在設定事件集線來源時選擇了 「透過標頭的動態結構 」選項,你可能已經為該來源設定了多個結構,並將它們對應到各種屬性及其值。

    2. 在建立 表格的方法中,根據需求,選擇一個 包含所有結構的單一表格 ,或是每個 結構分別使用獨立表格

      截圖顯示了 eventhouse 設定窗格及資料表建立方法。

    3. 針對 寫入資料方式,選取下列其中一個選項:

      • 僅限有效載荷:將擷取的有效載荷資料寫入資料表。 如果有多個輸入結構描述,則資料會傳送至多個資料表。
      • 中繼資料和承載:將中繼資料和承載資料寫入單一資料表。 範例欄位包括 sourcesubjecttypedata和 。

      截圖顯示了事件屋設定窗格及寫入資料的選項。

關於如何設定活動屋目的地的詳細步驟,請參見 「將活動屋目的地加入事件串流」。

其他連接器: