本文說明如何將 Postgre SQL 資料庫 異動資料擷取 (CDC) 來源新增至 Eventstream。
適用於 Microsoft Fabric 事件串流的 PostgreSQL 資料庫異動資料擷取 (CDC) 來源連接器,讓您擷取 PostgreSQL 資料庫中目前資料的快照。 目前,PostgreSQL 資料庫異動數據擷取 (CDC) 支援下列服務,其中可以公開存取資料庫:
- 適用於 PostgreSQL 的 Azure 資料庫
- Amazon RDS for PostgreSQL
- Amazon Aurora PostgreSQL
- Google Cloud SQL for PostgreSQL
將 PostgreSQL 資料庫 CDC 來源新增至事件數據流之後,它會擷取指定數據表的數據列層級變更。 然後,這些變更可以實時處理,並傳送到不同的目的地,以進行進一步分析。
注意
工作區容量的下列區域不支援此來源: 美國西部 3、 瑞士西部。
必要條件
在 Fabric 容量授權模式或具有參與者或更高許可權的試用版授權模式中存取工作區。
PostgreSQL 資料庫中已註冊的使用者存取權。
您的 PostgreSQL 資料庫必須可公開存取,且不可位於防火牆後方或在 Azure 虛擬網路中受保護。
在 PostgreSQL 資料庫和資料表中啟用 CDC。
如果您有 適用於 PostgreSQL 的 Azure 資料庫,請遵循下一節中的步驟來啟用 CDC。 如需詳細資訊,請參閱邏輯複寫和邏輯解碼 - 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器。
如需其他 PostgreSQL 資料庫,請參閱 PostgreSQL 的 Debezium 連接器:Debezium 文件。
如果您沒有 eventstream, 請建立 eventstream。
在 PostgreSQL 資料庫中啟用 CDC
本節使用適用於 PostgreSQL 的 Azure 資料庫 作為範例。
若要在適用於 PostgreSQL 的 Azure 資料庫彈性伺服器中啟用 CDC,請依照這些步驟進行:
在 Azure 入口網站中的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器頁面上,選取導覽功能表中的伺服器參數。
在 [ 伺服器參數] 頁面上:
- 將 wal_level 設定為 logical。
- 將 max_worker_processes 更新為至少 16。
儲存變更並重新啟動伺服器。
確認您的 Azure Database for PostgreSQL 彈性伺服器執行個體允許公用網路流量。
執行下列 SQL 語句, 以授與系統管理員用戶 復寫權限。 如果您要使用其他使用者帳戶來連線 PostgreSQL DB 來擷取 CDC,請確定使用者是 資料表擁有者。
ALTER ROLE <admin_user_or_table_owner_user> WITH REPLICATION;
啟動選取數據源精靈
如果您尚未將任何來源新增至事件串流,請選取 [ 使用外部來源 ] 圖格。
如果您要將來源新增至已發行的事件串流,請切換至 [編輯 模式],選取 功能區上的 [新增來源 ],然後選取 [ 外部來源]。
在 [選取資料來源] 頁面上,搜尋 [PostgreSQL DB (CDC)] 圖格,然後選取其中的 [Connect]。
設定並連線到 PostgreSQL 資料庫 CDC
在連線頁面上,選取新增連線。
在連線設定區段中,輸入下列資訊。
伺服器:PostgreSQL 資料庫的伺服器位址,例如 my-pgsql-server.postgres.database.azure.com。
資料庫:資料庫名稱,例如 my_database。
向下卷動,然後在 [ 連線認證 ] 區段中,遵循下列步驟。
對於連線名稱,請輸入連線的名稱。
針對 [ 驗證種類],選取 [ 基本]。
注意
目前,Fabric 事件串流僅支援基本身份驗證。
輸入資料庫的使用者名稱和密碼。
選取 Connect。
現在,在 [ 連線] 頁面上,執行下列步驟:
針對 [ 埠],輸入埠號碼或保留預設值:5432。 如果您在 管理連線和閘道中設定選取的雲端連線,請確定埠號碼符合該處設定的埠號碼。 如果兩者不相符,管理連線和閘道中的雲端連線埠號碼會具有優先權。
針對 資料表,請選取 [所有資料表] 或 [輸入資料表名稱]。 如果您選取後者,請使用完整資料表標識碼 (
schemaName.tableName
) 或有效正則表達式的逗號分隔清單來指定資料表。 例如:- 使用
dbo.test.*
來選取名稱開頭為dbo.test
的所有數據表。 - 使用
dbo\.(test1|test2)
來選取dbo.test1
並dbo.test2
。 您可以輸入最多 100 個數據表,而且每個數據表名稱(包括架構)最多可以有 128 個字元。
您可以使用逗號來混合這兩種格式。 最多可以輸入 100 個數據表,如果直接使用完整數據表標識碼,每個數據表名稱(包括架構名稱)限制為 128 個字元。
- 使用
槽位名稱(選擇性):輸入為特定資料庫/架構中特定外掛程式變更而建立的 PostgreSQL 邏輯解碼槽的名稱。 伺服器會使用此位置將事件串流至 Eventstream 串流連接器。 它只能包含小寫字母、數位和底線。
- 如果未指定,則會使用 GUID 來建立槽位,需要適當的資料庫許可權。
- 如果指定的槽名稱存在,連接器會直接使用它。
請選取頁面底部的下一步。
在 [ 檢閱 + 連線 ] 頁面上,檢閱摘要,然後選取 [ 新增]。
注意
一個 Eventstream 的來源和目的地數目上限為 11。
檢視更新的事件串流
您可以在編輯模式中看到 Postgre SQL 資料庫 CDC 來源新增至 Eventstream。
若要實作這個新增的 PostgreSQL DB CDC 來源,請選取 [ 發佈]。 完成這些步驟之後,PostgreSQL DB CDC 來源可在即時檢視中提供視覺效果。
相關內容
其他連接器: