PostgreSQL-pgoutput讀取方式

  • 文檔創建者:Nikozhan
  • 編輯次數:1
  •  1. 概述

    1.1 版本

    FineDataLink 版本
    功能變動
    4.2.10.1PostgreSQL 作為資料開發-實時任務、實時管道任務的資料來源時,適配 pgoutput 邏輯解碼插件

    1.2 功能簡介

    本文介紹 PostgreSQL 作為資料開發-實時任務、實時管道任務的資料來源且讀取方式選擇 pgoutput 時需要做的一些配置。

    1.3 wal2json和pgoutput的差別

    wal2jaon 讀取方式需要額外安裝插件。

    2. 操作步驟

    本文以 PostgreSQL 安裝在 Linux 系統中操作為例;若 PostgreSQL 安裝在 Windows 系統中,可以在 【Windows環境】PostgreSQL環境準備 文檔中找到與本文步驟相同的操作,進行參考。

    2.1 確認當前使用的資料庫版本

    PostgreSQL 10 及以上版本& FineDataLink 為 4.2.10.1 及之後版本時,適配 pgoutput 邏輯解碼插件(該插件內建在 PostgreSQL 中,無需使用者手動安裝)。

    2.2 修改REPLICA IDENTITY

    該屬性決定了當資料發生UPDATE,DELETE時,日誌記錄的欄位。

    • DEFAULT - 更新和刪除將包含primary key列的先前值

    • NOTHING - 更新和刪除將不包含任何先前值

    • FULL - 更新和刪除將包含所有列的先前值

    • INDEX index name - 更新和刪除事件將包含名為 index name 的索引定義中包含的列的先前值。

    修改程式碼如下:

    注:所有需要進行實時同步的表,都應該做此操作。

    alter table schema.tablename REPLICA IDENTITY FULL;

    1)使用預設 postgres 帳號登入名為 fdl 的資料庫:-U指定使用者,-d指定資料庫,-h指定伺服器,-p指定埠。

    psql -U postgres -d fdl -h 192.168.101.119 -p 5432

    輸入密碼後,登入資料庫。

    1756867356688513.png

    2)例如將模式為 public 的表「產品名稱維度」修改設定,則輸入如下語句:

    1756867390491956.png

    2.3 使用者權限確認

    以上都是用預設使用者 Postgres 進行,若用其他使用者進行配置,則需要該使用者為 PostgreSQL replication 角色、PostgreSQL login 角色,並且有需要同步的表的 select  權限。

    1)建立一個具有使用者,該使用者為 PostgreSQL replication 角色、PostgreSQL login 角色。

    注:wendy 為帳號,123456 為密碼,使用者自訂即可。

    CREATE USER wendy WITH REPLICATION LOGIN PASSWORD '123456';


    2)在指定模式中的所有表上執行 select 操作的權限賦給使用者:

    注:schemaname 為模式名稱,username為帳號稱,使用者根據需要修改。

    GRANT SELECT ON ALL TABLES IN SCHEMA schemaname TO username;


    3)賦予使用者 replication 和 login 權限命令。

    進入 PostgreSQL 安裝目錄下的 data 資料夾,進入 data 資料夾中,找到 postgresql.conf、pg_hba.conf,對這兩個檔案進行修改。

    • 修改 PostgreSQL 複製槽設定。

    本文範例中,postgresql.conf 檔案在/var/lib/pgsql/12/data目錄下,使用vi /var/lib/pgsql/12/data/postgresql.conf(使用者根據實際情況修改 postgresql.conf 所在路徑)語句編輯該檔案,在檔案末尾追加以下配置:

    注:或者找到下面程式碼中的設定項,取消註釋,修改對應的值。

    wal_level = logical
    max_wal_senders = 10
    max_replication_slots = 10
    • 設定使用者 replication 權限。

    本文範例中,pg_hba.conf 檔案在/var/lib/pgsql/12/data目錄下,使用vi /var/lib/pgsql/12/data/pg_hba.conf(使用者根據實際情況修改 pg_hba.conf 所在路徑)語句編輯該檔案,把下圖中紅圈中的兩行前邊的 # 去掉:

    1756867686764200.png

    2.4 後續步驟

    在進行實時同步前,在 FineDataLink 中配置好需要同步的源端和目標端資料庫資料連結,以便在同步任務配置程式中,透過選擇資料源名稱來控制同步任務,詳情參見:建立並管理資料源

    然後設計任務即可,詳情參見:配置管道任務實時任務概述



    附件列表


    主題: 實時管道
    已經是第一篇
    已經是最後一篇
    • 有幫助
    • 沒幫助
    • 只是瀏覽
    • 评价文档,奖励 1 ~ 100 随机 F 豆!