將資料從 PostgreSQL 複製到 Google BigQuery

瞭解如何使用 OCI GoldenGate 將資料從 PostgreSQL 複製到 Google BigQuery。

開始之前

若要順利完成此快速啟動,您必須具備下列項目:

若要順利完成此快速啟動,您必須具備下列項目:

環境設定:PostgreSQL

設定此「快速啟動」的環境:

  1. 執行下列命令以安裝 PostgreSQL

    1. 安裝 PostgreSQL 伺服器 :

      sudo yum install postgresql-server
    2. 安裝 postgresql-contrib 模組以避免此 SQL 異常狀況

      sudo yum install postgresql-contrib
    3. 建立新的 PostgreSQL 資料庫叢集:

      sudo postgresql-setup --initdb
    4. 啟用 postgresql.service:

      sudo systemctl enable postgresql.service
    5. 啟動 postgresql.service:

      sudo systemctl start postgresql.service
  2. PostgreSQL 預設只允許本機連線。允許遠端連線至 PostgreSQL

    1. /var/lib/pgsql/data/postgresql.conf 中,準備資料庫以進行複製

    2. 尋找和取消註釋 listen_addresses = 'localhost',並將 localhost 變更為星號 (`):

      listen_addresses = '*'
    3. 將下列參數設定如下:

      • wal_level = logical

      • max_replication_slots = 1

      • max_wal_senders = 1

      • track_commit_timestamp = on

      注意:

      設定 /var/lib/pgsql/data/pg_hba.conf 以確定將從屬端認證設為允許來自 Oracle GoldenGate 主機的連線。例如,新增下列項目:

      #Allow connections from remote hosts
      
      host all all 0.0.0.0/0 md5

      請參閱 pg_hba.conf 檔案瞭解詳細資訊。

      1. 重新啟動 PostgreSQL 伺服器 :
      sudo systemctl restart postgresql.service
      1. 如果使用 Oracle Cloud Compute 代管 PostgreSQL,請開啟連接埠 5432:
      sudo firewall-cmd --permanent --add-port=5432/tcp
      sudo firewall-cmd --reload
      sudo firewall-cmd --list-all
    4. 在 VCN 的安全清單中開啟連接埠 5432。

    5. 連接到 PostgreSQL

      > sudo su - postgres
      > psql

      注意:如果上述範例沒有作用,您也可以輸入 sudo su - postgres psql

    6. 設定 PostgreSQL。

      1. 下載並執行 seedSRCOCIGGLL_PostgreSQL.sql ,以設定資料庫並載入範例資料。

      2. 執行下列命令來設定使用者 (請確定以實際密碼取代 <password>):

      create user ggadmin with password '<password>';
      alter user ggadmin with SUPERUSER;
      GRANT ALL PRIVILEGES ON DATABASE ociggll TO ggadmin;

作業 1:建立 OCI GoldenGate 資源

  1. 建立部署來源 PostgreSQL 資料庫。

  2. 建立大數據部署目標 Google BigQuery。

  3. 建立目標 Google BigQuery 連線。

  4. 建立與來源 PostgreSQL 資料庫的連線。

    1. 對於類型,請確定選取 PostgreSQL 伺服器。

    2. 對於資料庫名稱,請輸入 ociggll

    3. 主機中,輸入 PostgreSQL 執行所在運算執行處理的公用 IP。

    4. 連接埠中,輸入 5432

    5. 使用者名稱中,輸入 ggadmin

    6. 密碼中,輸入密碼。

    7. 安全協定中,選取純文字

  5. 建立 GoldenGate 連線,然後將此連線指派給來源 PostgreSQL 部署

  6. 指定來源 PostgreSQL 部署的來源連線。

  7. 將目標連線指派給目標大數據部署

任務 2:啟用補充記錄

若要啟用補充日誌記錄:

  1. 啟動 PostgreSQL GoldenGate 部署主控台:

    1. 從「部署」頁面中,選取 PostgreSQL 部署以檢視其詳細資訊。

    2. 在 PostgreSQL 部署詳細資訊頁面上,選取啟動主控台

    3. 在建置主控台登入頁面中,輸入「工作 1」步驟 1 中提供的 GoldenGate 管理證明資料。

      注意:如果在建立部署時未選取 IAM 作為證明資料存放區,則必須登入。

  2. 在建置主控台中,選取左導覽中的 DB 連線,接著選取來源 PostgreSQL 資料庫,然後選取 Trandata

  3. 在 TRANDATA 頁面的「TRANDATA 資訊」旁邊,選取新增 TRANDATA (加號圖示)。

  4. 在 Trandata 面板中,針對綱要名稱,輸入 src_ociggll,然後選取提交

    注意:使用搜尋欄位來搜尋 src_ociggll,並確認已新增表格。

任務 3:建立擷取

若要新增「變更資料擷取擷取」:

  1. 在左側導覽中,選取擷取

  2. 在「擷取」頁面上,選取新增擷取 (加號圖示),然後完成欄位,如下所示:

    • 在「擷取資訊」頁面上:

      1. 對於擷取類型,請選取變更資料擷取擷取

      2. 程序名稱中,輸入 Extract 的名稱,例如 ECDC

      3. 選取下一步

    • 在「擷取選項」頁面上:

      1. 若為「來源」證明資料,請從網域下拉式清單中選取 Oracle GoldenGate

      2. 別名下拉式清單中選取來源 PostgreSQL 資料庫。

      3. 對於「擷取歷程檔名稱」,請輸入兩個字元的歷程檔名稱,例如 C1

      4. 選取下一步

    • 在「擷取參數」頁面上,使用下列項目取代 MAP *.*, TARGET *.*;

      TABLE SRC_OCIGGLL.*;
  3. 選取建立並執行

您將返回「摘錄」頁面,您可在此頁面觀察「摘錄」的開始。

作業 4:建立變更資料擷取的分配路徑

若要建立「變更資料擷取」的「分送路徑」,請完成下列步驟:

  1. 在 Oracle Cloud 主控台的「部署」頁面中,選取目標大數據部署。

  2. 選取新增分配路徑

  3. 完成「新增路徑」表單,如下所示:

    1. 在「路徑資訊 (Path Information)」頁面上:

      1. 路徑名稱中,輸入名稱。

      2. 選取下一步

    2. 在「來源選項 (Source Options)」頁面上:

      1. 對於來源擷取,請選取「變更資料擷取擷取擷取」(ECDC)。

      2. 針對歷程檔名稱,選取「變更資料擷取」歷程檔 (C1)。

      3. 選取下一步

    3. 在「目標選項 (Target Options)」頁面上:

      1. 目標中,選取 wss

      2. 目標主機中,輸入目標建置主控台 URL (您可以在建置詳細資訊頁面上找到此 URL,而不需要 https:// 或任何尾端斜線)。

      3. 連接埠號碼中,輸入 443

      4. 歷程檔名稱中,輸入 C1

      5. 目標認證方法中,選取 UserID 別名

      6. 針對網域,輸入網域的名稱。

      7. 別名輸入別名。

    4. 選取建立路徑並執行

任務 5:新增複製

  1. 目標大數據部署主控台導覽功能表中,選取複製,然後選取新增 Replicat (加號圖示)。

  2. 複製頁面上,選取新增 Replicat (加號圖示),然後完成新增 Replicat 表單,如下所示:

    1. 在 Replicat 資訊頁面上:

      1. 對於 Replicat 類型,請選取平行協調式 Replicat

      2. 程序名稱中輸入名稱,例如 RCDC

      3. 選取下一步

    2. 在「Replicat 選項」頁面上:

      1. 複製追蹤名稱中,輸入任務 3 (C1) 的追蹤名稱。

      2. 目標證明資料中,選取 Google Big Query 連線的網域別名

      3. 若為可用的暫存位置,請從下拉式清單中選取 Google Cloud Storage。

      4. 若為透過暫存別名,請從下拉式清單中選取 Google Cloud Storage 連線。

    3. 在「參數檔」頁面上,新增下列對應,然後選取下一步

      MAP *.*, TARGET *.*;
    4. 在「特性檔」頁面上,視需要設定必要的特性。尋找標示為 #TODO 的項目,然後選取下一步

      要考慮修改的某些特性包括:

      • gg.eventhandler.gcs.bucketMappingTemplate:提供將作為暫存儲存的儲存桶名稱
  3. 選取建立並執行

您可以返回「複本」頁面,複查 Replicat 詳細資訊。

作業 6:核對變更資料擷取

執行來源 PostgreSQL 資料庫更新,以驗證複寫至 Google BigQuery。

  1. 執行下列命令檔以執行 PostgreSQL 資料庫的插入:

    Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1000,'Houston',20,743113);
    Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1001,'Dallas',20,822416);
    Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1002,'San Francisco',21,157574);
    Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1003,'Los Angeles',21,743878);
    Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1004,'San Diego',21,840689);
    Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1005,'Chicago',23,616472);
    Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1006,'Memphis',23,580075);
    Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1007,'New York City',22,124434);
    Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1008,'Boston',22,275581);
    Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1009,'Washington D.C.',22,688002);
  2. 在來源 PostgreSQL 建置主控台中,選取「擷取」名稱 (ECDC),然後選取統計資料。確認 src_ociggll.src_city 有 10 個插入項目。

    注意:如果 Extract 未擷取任何插入,請重新啟動 ECDC Extract。

  3. 在目標 Big Data 部署主控台中,選取 Replicat 名稱、檢視其詳細資訊,然後檢查統計資料以確認插入數目。