將資料從 PostgreSQL 複製到 Google BigQuery
瞭解如何使用 OCI GoldenGate 將資料從 PostgreSQL 複製到 Google BigQuery。
開始之前
若要順利完成此快速啟動,您必須具備下列項目:
若要順利完成此快速啟動,您必須具備下列項目:
-
PostgreSQL 安裝可作為來源資料庫 (請參閱「環境」設定)
-
VCN 安全清單中開放的連接埠 5432
-
注意:請確定 GCS 儲存桶和 BigQuery 資料集存在於相同位置 / 區域中。
環境設定:PostgreSQL
設定此「快速啟動」的環境:
-
執行下列命令以安裝 PostgreSQL 。
-
安裝 PostgreSQL 伺服器 :
sudo yum install postgresql-server -
安裝 postgresql-contrib 模組以避免此 SQL 異常狀況:
sudo yum install postgresql-contrib -
建立新的 PostgreSQL 資料庫叢集:
sudo postgresql-setup --initdb -
啟用 postgresql.service:
sudo systemctl enable postgresql.service -
啟動 postgresql.service:
sudo systemctl start postgresql.service
-
-
PostgreSQL 預設只允許本機連線。允許遠端連線至 PostgreSQL 。
-
在
/var/lib/pgsql/data/postgresql.conf中,準備資料庫以進行複製。 -
尋找和取消註釋
listen_addresses = 'localhost',並將 localhost 變更為星號 (`):listen_addresses = '*' -
將下列參數設定如下:
-
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 檔案瞭解詳細資訊。
- 重新啟動 PostgreSQL 伺服器 :
sudo systemctl restart postgresql.service- 如果使用 Oracle Cloud Compute 代管 PostgreSQL,請開啟連接埠 5432:
sudo firewall-cmd --permanent --add-port=5432/tcp sudo firewall-cmd --reload sudo firewall-cmd --list-all -
-
在 VCN 的安全清單中開啟連接埠 5432。
-
> sudo su - postgres > psql注意:如果上述範例沒有作用,您也可以輸入
sudo su - postgres psql。 -
設定 PostgreSQL。
-
下載並執行 seedSRCOCIGGLL_PostgreSQL.sql ,以設定資料庫並載入範例資料。
-
執行下列命令來設定使用者 (請確定以實際密碼取代
<password>):
create user ggadmin with password '<password>'; alter user ggadmin with SUPERUSER; GRANT ALL PRIVILEGES ON DATABASE ociggll TO ggadmin; -
-
作業 1:建立 OCI GoldenGate 資源
-
建立部署來源 PostgreSQL 資料庫。
-
建立大數據部署目標 Google BigQuery。
-
建立目標 Google BigQuery 連線。
-
建立與來源 PostgreSQL 資料庫的連線。
-
對於類型,請確定選取 PostgreSQL 伺服器。
-
對於資料庫名稱,請輸入
ociggll。 -
在主機中,輸入 PostgreSQL 執行所在運算執行處理的公用 IP。
-
在連接埠中,輸入
5432。 -
在使用者名稱中,輸入
ggadmin。 -
在密碼中,輸入密碼。
-
在安全協定中,選取純文字。
-
任務 2:啟用補充記錄
若要啟用補充日誌記錄:
-
啟動 PostgreSQL GoldenGate 部署主控台:
-
從「部署」頁面中,選取 PostgreSQL 部署以檢視其詳細資訊。
-
在 PostgreSQL 部署詳細資訊頁面上,選取啟動主控台。
-
在建置主控台登入頁面中,輸入「工作 1」步驟 1 中提供的 GoldenGate 管理證明資料。
注意:如果在建立部署時未選取 IAM 作為證明資料存放區,則必須登入。
-
-
在建置主控台中,選取左導覽中的 DB 連線,接著選取來源 PostgreSQL 資料庫,然後選取 Trandata 。
-
在 TRANDATA 頁面的「TRANDATA 資訊」旁邊,選取新增 TRANDATA (加號圖示)。
-
在 Trandata 面板中,針對綱要名稱,輸入
src_ociggll,然後選取提交。注意:使用搜尋欄位來搜尋
src_ociggll,並確認已新增表格。
任務 3:建立擷取
若要新增「變更資料擷取擷取」:
-
在左側導覽中,選取擷取。
-
在「擷取」頁面上,選取新增擷取 (加號圖示),然後完成欄位,如下所示:
-
在「擷取資訊」頁面上:
-
對於擷取類型,請選取變更資料擷取擷取。
-
在程序名稱中,輸入 Extract 的名稱,例如
ECDC。 -
選取下一步。
-
-
在「擷取選項」頁面上:
-
若為「來源」證明資料,請從網域下拉式清單中選取 Oracle GoldenGate
-
從別名下拉式清單中選取來源 PostgreSQL 資料庫。
-
對於「擷取歷程檔名稱」,請輸入兩個字元的歷程檔名稱,例如
C1。 -
選取下一步。
-
-
在「擷取參數」頁面上,使用下列項目取代
MAP *.*, TARGET *.*;:TABLE SRC_OCIGGLL.*;
-
-
選取建立並執行。
您將返回「摘錄」頁面,您可在此頁面觀察「摘錄」的開始。
作業 4:建立變更資料擷取的分配路徑
若要建立「變更資料擷取」的「分送路徑」,請完成下列步驟:
-
在 Oracle Cloud 主控台的「部署」頁面中,選取目標大數據部署。
-
選取新增分配路徑。
-
完成「新增路徑」表單,如下所示:
-
在「路徑資訊 (Path Information)」頁面上:
-
在路徑名稱中,輸入名稱。
-
選取下一步。
-
-
在「來源選項 (Source Options)」頁面上:
-
對於來源擷取,請選取「變更資料擷取擷取擷取」(
ECDC)。 -
針對歷程檔名稱,選取「變更資料擷取」歷程檔 (
C1)。 -
選取下一步。
-
-
在「目標選項 (Target Options)」頁面上:
-
在目標中,選取 wss 。
-
在目標主機中,輸入目標建置主控台 URL (您可以在建置詳細資訊頁面上找到此 URL,而不需要 https:// 或任何尾端斜線)。
-
在連接埠號碼中,輸入
443。 -
在歷程檔名稱中,輸入
C1。 -
在目標認證方法中,選取 UserID 別名。
-
針對網域,輸入網域的名稱。
-
在別名輸入別名。
-
-
選取建立路徑並執行。
-
任務 5:新增複製
-
在目標大數據部署主控台導覽功能表中,選取複製,然後選取新增 Replicat (加號圖示)。
-
在複製頁面上,選取新增 Replicat (加號圖示),然後完成新增 Replicat 表單,如下所示:
-
在 Replicat 資訊頁面上:
-
對於 Replicat 類型,請選取平行或協調式 Replicat 。
-
在程序名稱中輸入名稱,例如
RCDC。 -
選取下一步。
-
-
在「Replicat 選項」頁面上:
-
在複製追蹤名稱中,輸入任務 3 (
C1) 的追蹤名稱。 -
在目標證明資料中,選取 Google Big Query 連線的網域和別名。
-
若為可用的暫存位置,請從下拉式清單中選取 Google Cloud Storage。
-
若為透過暫存別名,請從下拉式清單中選取 Google Cloud Storage 連線。
-
-
在「參數檔」頁面上,新增下列對應,然後選取下一步:
MAP *.*, TARGET *.*; -
在「特性檔」頁面上,視需要設定必要的特性。尋找標示為
#TODO的項目,然後選取下一步。要考慮修改的某些特性包括:
gg.eventhandler.gcs.bucketMappingTemplate:提供將作為暫存儲存的儲存桶名稱
-
-
選取建立並執行。
您可以返回「複本」頁面,複查 Replicat 詳細資訊。
作業 6:核對變更資料擷取
執行來源 PostgreSQL 資料庫更新,以驗證複寫至 Google BigQuery。
-
執行下列命令檔以執行 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); -
在來源 PostgreSQL 建置主控台中,選取「擷取」名稱 (
ECDC),然後選取統計資料。確認 src_ociggll.src_city 有 10 個插入項目。注意:如果 Extract 未擷取任何插入,請重新啟動
ECDCExtract。 -
在目標 Big Data 部署主控台中,選取 Replicat 名稱、檢視其詳細資訊,然後檢查統計資料以確認插入數目。