共用方式為


將 Postgre SQL 資料庫 CDC 來源新增至 Eventstream

本文說明如何將 Postgre SQL 資料庫 異動資料擷取 (CDC) 來源新增至 Eventstream。

適用於 Microsoft Fabric 事件串流的 PostgreSQL 資料庫異動資料擷取 (CDC) 來源連接器,讓您擷取 PostgreSQL 資料庫中目前資料的快照。 目前,PostgreSQL 資料庫異動數據擷取 (CDC) 支援下列服務,其中可以公開存取資料庫:

  • 適用於 PostgreSQL 的 Azure 資料庫
  • Amazon RDS for PostgreSQL
  • Amazon Aurora PostgreSQL
  • 適用於 PostgreSQL 的 Google Cloud SQL

將 PostgreSQL 資料庫 CDC 來源新增至事件數據流之後,它會擷取指定數據表的數據列層級變更。 然後,這些變更可以實時處理,並傳送到不同的目的地,以進行進一步分析。

必要條件

在 PostgreSQL 資料庫中啟用 CDC

本節使用適用於 PostgreSQL 的 Azure 資料庫 作為範例。

若要在適用於 PostgreSQL 的 Azure 資料庫彈性伺服器中啟用 CDC,請依照這些步驟進行:

  1. 在 Azure 入口網站中的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器頁面上,選取導覽功能表中的伺服器參數

  2. 在 [ 伺服器參數] 頁面上:

    • wal_level 設定為 logical
    • max_worker_processes 更新為至少 16

    為彈性伺服器部署啟用 CDC 的螢幕擷取畫面。

  3. 儲存變更並重新啟動伺服器。

  4. 確認您的 Azure Database for PostgreSQL 彈性伺服器執行個體允許公用網路流量。

  5. 執行下列 SQL 語句, 以授與系統管理員用戶 復寫權限。 如果您要使用其他使用者帳戶來連線 PostgreSQL DB 來擷取 CDC,請確定使用者是 資料表擁有者

    ALTER ROLE <admin_user_or_table_owner_user> WITH REPLICATION;
    

啟動選取數據源精靈

如果你還沒在事件串流中新增任何來源,請選擇 「使用外部來源 」磁磚。

截圖顯示了使用外部來源的圖塊選擇過程。

如果你是將原始碼加入已發布的事件串流,請切換到 編輯 模式。 在色帶上選擇 新增來源>外部來源

顯示新增外部來源選項的截圖。

在 [選取資料來源] 頁面上,搜尋 [PostgreSQL DB (CDC)] 圖格,然後選取其中的 [Connect]。

此螢幕截圖顯示在 [取得事件精靈] 中選取 [Azure DB for PostgreSQL (CDC)] 作為來源類型。

設定並連線到 PostgreSQL 資料庫 CDC

  1. 連線頁面上,選取新增連線

    此螢幕擷取畫面顯示 Azure PostgreSQL 資料庫的 [連線] 頁面,其中醒目提示 [新增連線] 連結。

  2. 連線設定區段中,輸入下列資訊。

    • 伺服器:PostgreSQL 資料庫的伺服器位址,例如 my-pgsql-server.postgres.database.azure.com

    • 資料庫:資料庫名稱,例如 my_database

      顯示 Azure PostgreSQL 資料庫連接器之 [連線設定] 區段的螢幕擷取畫面。

    • 線上名稱:輸入連線的名稱。

    • 驗證種類,選取 [基本 ],然後 輸入資料庫的使用者 名稱和 密碼

      注意

      目前,Fabric 事件數據流僅支援 基本 身份驗證。

    • 選取 [連線 ] 以完成連線設定。 此螢幕擷取畫面顯示 Azure PostgreSQL 資料庫連接器的 [連線認證] 區段。

  3. :輸入伺服器的埠號碼。 預設值為 5432。 如果您在 管理連線和閘道中設定選取的雲端連線,請確定埠號碼符合該處設定的埠號碼。 如果兩者不相符,那麼在 管理連線和閘道中,雲端連線的埠號會優先

  4. 從資料庫資料表擷取變更時,您可以選擇兩個選項:

    • 所有數據表:從資料庫中的每個數據表擷取變更。
    • 輸入資料表名稱(s):可讓您使用逗號分隔清單來指定資料表的子集。 您可以使用 schemaName.tableName 格式的完整資料表識別碼或有效的正則表示式。 範例:
    • dbo.test.*:選取 test 架構中名稱以 dbo 開頭的所有資料表。
    • dbo\.(test1|test2):選取 dbo.test1dbo.test2

    您可以在清單中合併這兩種格式。 整個專案的字元總計限製為 102,400 個字元。

  5. 插槽名稱(選擇性):輸入為特定資料庫/架構的特定外掛程式變更而建立的 PostgreSQL 邏輯解碼插槽名稱。 伺服器會使用此位置將事件串流至 Eventstream 串流連接器。 它只能包含小寫字母、數位和底線。

    • 如果未指定,則會使用 GUID 來建立位置,需要適當的資料庫許可權。
    • 如果指定的槽名稱存在,連接器會直接使用該名稱。
  6. 您可以展開 進階設定 以存取更多 PostgreSQL 資料庫 CDC 來源的設定選項:

    • 發行集名稱:指定要使用的PostgreSQL邏輯復寫發行集名稱。 這必須符合資料庫中的現有發行集,否則會根據自動創建模式自動建立它。 預設值: dbz_publication

      注意

      連接器用戶必須具有超級用戶許可權,才能建立發佈。 建議您在第一次啟動連接器之前手動建立刊物,以避免許可權相關問題。

    • 發行集自動建立模式:控制發行集是否自動建立及如何建立。 這些選項包括:

      • Filtered (預設值):如果指定的發行集不存在,連接器會建立一個只包含所選的數據表的數據表(如數據表包含清單中所指定)。
      • AllTables:如果指定的發行集存在,連接器會使用它。 如果不存在,連接器會建立一個包含資料庫中所有資料表的連接。
      • Disabled:連接器不會建立發行物。 如果指定的發行集遺失,連接器會丟出例外狀況並停止。 在這種情況下,必須在資料庫中手動建立此項目。

      如需更多資訊,請參閱 Debezium 文件中的發行自動建立模式

    • 十進位處理模式:指定連接器如何處理 PostgreSQL DECIMALNUMERIC 欄位值:

      • Precise:表示使用精確十進位型別的值(例如 Java BigDecimal),以確保數據表示的完整精確度和精確度。
      • Double:將值轉換成雙精確度浮點數。 這可改善可用性和效能,但可能會導致精確度降低。
      • String:將值編碼為格式化字串。 這可讓它們輕鬆地在下游系統中取用,但會遺失原始數值類型的語意資訊。
    • 快照模式:在連接器啟動時指定執行快照的條件:

      • Initial:當沒有為邏輯伺服器名稱記錄偏移量,或偵測到先前的快照未完成時,連接器僅會執行快照。 快照完成後,連接器開始串流事件記錄以供後續資料庫變更使用。
      • InitialOnly:僅當邏輯伺服器名稱尚未記錄偏移時,連接器才會執行快照。 快照完成後,連接器停止運作。 它不會切換到串流來讀取binlog的變更事件。
      • NoData: 連接器執行一個快照,只捕捉結構,卻不捕捉任何資料表資料。 如果你不需要資料的一致快照,但只需要自連接器開始以來發生的變更,請設定此選項。
    • 心跳動作查詢:指定連接器在發送心跳訊息時,在來源資料庫執行的查詢。

    • 快照選擇語句覆蓋:指定要在快照中包含的資料表列。 如果你想讓快照只包含資料表中列的子集,可以使用這個屬性。 此特性僅影響快照。 它不適用於連接器從日誌讀取的事件。

  7. 在 [ 檢閱 + 連線 ] 頁面上,檢閱摘要,然後選取 [ 新增]。

    此螢幕擷取畫面顯示已填入 Azure PostgreSQL 資料庫連接器的 [檢閱和建立] 頁面。

檢視更新的事件串流

  1. 您可以在編輯模式中看到 Postgre SQL 資料庫 CDC 來源新增至 Eventstream。

    在 [編輯] 檢視中串流 PostgreSQL DB CDC 來源的螢幕擷取畫面。

  2. 若要實作這個新增的 PostgreSQL DB CDC 來源,請選取 [ 發佈]。 完成這些步驟之後,PostgreSQL DB CDC 來源可在即時檢視中提供視覺效果。

    在 [即時] 檢視中串流 PostgreSQL DB CDC 來源的螢幕擷取畫面。

其他連接器: