使用串流處理程式將資料從 PostgresSQL 複製到 Snowflake
瞭解如何使用 OCI GoldenGate,使用串流處理程式將資料從 PostgreSQL 複製到 Snowflake。
開始之前
若要順利完成此快速啟動,您必須具備下列項目:
-
使用 PostgreSQL 存取 OCI 資料庫
-
OCI 資料庫搭配 PostgreSQL 使用之 VCN 安全清單中的開放連接埠 5432
-
存取 Snowflake
使用 PostgreSQL 設定 OCI 資料庫
-
建立具備 PostgreSQL 的 OCI 資料庫。
-
使用 PostgreSQL 連線至 OCI 資料庫。請參閱連線至資料庫以瞭解詳細資訊。
-
使用 PostgreSQL 在 OCI 資料庫中建立 GoldenGate 資料庫和使用者:
-
Database
-
建立資料庫 ociggll;
-
\c ociggll
-
建立綱要 src_ociggll;
-
-
User
-
使用密碼
<password>建立使用者ggadmin; -
在 DATABASE ocigll 上授予所有權限給 ggadmin;
-
授予在 SCHEMA src_ociggll 中選取所有標籤給 ggadmin;
-
-
設定 Snowflake 資料庫
-
新增公開金鑰至 Snowflake 使用者,例如:
ALTER USER example_user SET RSA_PUBLIC_KEY='MIIBIjANBgkqh...'; -
使用範例綱要建立目標表格。
作業 1:建立 OCI GoldenGate 資源
此快速啟動範例需要來源和目標的部署和連線。
-
需有 GoldenGate for PostgreSQL 26ai。
-
建立 PostgreSQL 部署來源 PostgreSQL 資料庫。
-
建立大數據部署目標 Snowflake 資料庫。
-
使用下列值建立 PostgreSQL 連線:
-
對於類型,請從下拉式清單中選取 OCI Database with PostgreSQL 。
-
對於資料庫名稱,請輸入
ociggll。 -
在使用者名稱中,輸入
ggadmin。 -
在密碼中,輸入您的密碼。
-
若為安全協定,請從下拉式清單中選取 TLS ,然後選取偏好。
-
-
建立具有下列值的 Snowflake 連線:
-
在連線 URL 中,輸入
jdbc:snowflake://<account_identifier>.snowflakecomputing.com/?warehouse=<warehouse name>&db=OCIGGLL。注意:請確定將
<account_identifier>和<warehouse name>取代為適當的值。 -
若為認證類型,請從下拉式清單中選取金鑰組認證。
注意: Snowflake Streaming 是唯一支援的認證類型。
-
在使用者名稱中,輸入名稱。
-
上傳您先前建立的私密金鑰。
-
在私有金鑰密碼欄位中輸入私有金鑰密碼詞組。
-
-
建立 GoldenGate 連線以進行目標大數據部署,然後將此連線指派給來源 PostgreSQL 部署。
任務 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.*;
-
-
選取建立並執行。
-
-
新增初始載入摘錄:
-
在「擷取」頁面上,選取新增擷取,然後完成「新增擷取」表單,如下所示:
-
在「擷取資訊」頁面上:
-
對於「擷取」類型,請選取初始載入擷取。
-
在處理名稱中,輸入名稱,例如
EIL。 -
選取下一步。
-
-
在「擷取選項」頁面上:
-
若為「來源」證明資料,請從網域下拉式清單中選取 Oracle GoldenGate 。
-
從別名下拉式清單中選取 PostgreSQL 資料庫。
-
在擷取歷程檔名稱中輸入兩個字元的歷程檔名稱,例如
I1。 -
選取下一步。
-
-
在「擷取參數」頁面上,以下列項目取代文字區域的內容:
EXTRACT EIL USERIDALIAS PostgreSQL_Compute, DOMAIN OracleGoldenGate EXTFILE I1, PURGE TABLE src_ociggll.*;注意:請確定先移除
USERIDALIAS前面的SOURCEDB參數,再繼續進行。
-
-
選取建立並執行。
-
您可返回「摘錄」頁面,在此您可以觀察「摘錄」的開始。
任務 4:建立初始載入擷取的分配路徑
若要建立初始載入擷取的分配路徑,請執行下列動作:
-
在 Oracle Cloud 主控台的「部署」頁面中,選取目標大數據部署。
-
在部署詳細資料頁面上,選取啟動主控台,然後以管理員使用者身分登入。
-
如果使用 IAM 證明資料存放區,請繼續執行「建立分送路徑」步驟。如果使用 GoldenGate 證明資料存放區,請建立來源 GoldenGate 用來連線至目標 GoldenGate 的使用者。
-
在導覽功能表中,選取使用者管理。
-
選取新增使用者 (加號圖示)、依下列方式完成欄位,然後選取提交:
-
在使用者名稱中,輸入
ggsnet。 -
在角色中,選取運算子。
-
輸入密碼兩次以進行驗證。
-
-
-
在來源 PostgreSQL 建置主控台中,為在上一個步驟中建立的使用者建立「路徑連線」。
-
在導覽功能表中,選取路徑連線。
-
選取新增路徑連線 (加號圖示)、依下列方式完成欄位,然後選取送出:
-
在「證明資料別名」中輸入
dpuser。 -
對於使用者 ID,請輸入
ggsnet -
若為「密碼」,請輸入上一個步驟所使用的相同密碼。
-
-
-
建立分配路徑。
-
在服務功能表列中,選取路徑,然後選取新增分送路徑 (加號)。
-
完成「新增路徑」表單,如下所示:
-
在「路徑資訊 (Path Information)」頁面上:
-
在路徑名稱中,輸入此路徑的名稱。
-
選取下一步。
-
-
在「來源選項 (Source Options)」頁面上:
-
對於來源擷取,請保留空白。
-
在歷程檔名稱中,輸入「起始載入擷取」歷程檔名稱 (
I1)。 -
選取下一步。
-
-
在「目標選項 (Target Options)」頁面上:
-
在目標中,選取 wss 。
-
針對目標主機,輸入不含 https:// 或任何尾端斜線的目標部署 URL。
-
在連接埠號碼中,輸入
443。 -
在歷程檔名稱中,輸入
I1。 -
在目標認證方法中,選取 UserID 別名。
-
在網域中,輸入在上一個步驟中建立的網域名稱。
-
在別名中,輸入在上一個步驟中建立的別名 (
dpuser)。 -
選取下一步。
-
-
-
選取建立並執行。
您可返回「分送服務」頁面,複查建立的路徑。
-
-
在目標建置主控台中,複查因「分送」路徑而建立的「接收者」路徑:
-
選取路徑。
-
複查「路徑」詳細資訊。
-
作業 5:新增初始載入的 Replicat
-
在目標大數據建置主控台中,新增「起始載入 Replicat」。
-
在導覽功能表中,選取複製,然後選取新增 Replicat (加號圖示)。
-
在「複本」頁面上,依下列方式完成「新增複本」欄位:
-
在「複製資訊 (Replication Information)」頁面上:
-
在 Replicat 類型中,選取協調式 Replicat 。
-
在程序名稱中輸入名稱,例如
RIL。 -
選取下一步。
-
-
在「Replicat 選項」頁面上:
-
在複製追蹤名稱中,輸入任務 2 (
I1) 的追蹤名稱。 -
在目標中,選取 Snowflake。
-
在目標證明資料中,選取 Snowflake 連線的網域和別名。
-
對於可用的別名,請從下拉式清單中選取別名,例如 Snowflake。
-
選取串流。
-
選取下一步。
-
-
在「參數檔」頁面上,新增下列對應:
INSERTALLRECORDS MAP src_ociggll.src_city, TARGET SRCMIRROR_OCIGGLL.SRC_CITY; MAP src_ociggll.src_region, TARGET SRCMIRROR_OCIGGLL.SRC_REGION; MAP src_ociggll.src_customer, TARGET SRCMIRROR_OCIGGLL.SRC_CUSTOMER; MAP src_ociggll.src_orders, TARGET SRCMIRROR_OCIGGLL.SRC_ORDERS; MAP src_ociggll.src_order_lines, TARGET SRCMIRROR_OCIGGLL.SRC_ORDER_LINES; MAP src_ociggll.src_product, TARGET SRCMIRROR_OCIGGLL.SRC_PRODUCT; -
在「特性」頁面上複查特性,然後新增
jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true。 -
選取建立並執行。
-
您可以返回「複本」頁面,複查 Replicat 詳細資訊。
-
-
若要驗證「初始載入」,請連線至 Snowflake 資料庫並執行下列查詢:
select * from SRCMIRROR_OCIGGLL.SRC_CITY; select * from SRCMIRROR_OCIGGLL.SRC_CUSTOMER;輸出應傳回因為「起始載入」而載入至目標資料庫表格的資料。
作業 6:建立變更資料擷取的分配路徑
-
在來源 PostgreSQL 建置主控台中,選取分配服務。
-
選取新增分配路徑。
-
完成「新增路徑」表單,如下所示:
-
在「路徑資訊 (Path Information)」頁面上:
-
在路徑名稱中,輸入名稱。
-
選取下一步。
-
-
在「來源選項 (Source Options)」頁面上:
-
對於來源擷取,請選取「變更資料擷取擷取擷取」(
ECDC)。 -
針對歷程檔名稱,選取「變更資料擷取」歷程檔 (
C1)。 -
選取下一步。
-
-
在「目標選項 (Target Options)」頁面上:
-
在目標中,選取 wss 。
-
在目標主機中,輸入目標建置主控台 URL (您可以在建置詳細資訊頁面上找到此 URL,而不需要 https:// 或任何尾端斜線)。
-
在連接埠號碼中,輸入
443。 -
在歷程檔名稱中,輸入
C1。 -
在目標認證方法中,選取 UserID 別名。
-
針對網域,輸入網域的名稱。
-
在別名輸入別名。
-
-
選取建立路徑並執行。
-
作業 7:新增變更資料擷取的 Replicat
執行來源 PostgreSQL 資料庫更新,以驗證對 Snowflake 的複寫。
-
新增 Replicat。
-
在目標 Big Data 部署主控台中,選取管理服務,然後從導覽功能表中選取複製。
-
在複製頁面上,選取新增 Replicat (加號圖示),然後完成「新增 Replicat」表單,如下所示:
- 在 Replicat 資訊頁面上:
-
對於複製類型,請選取傳統或協調。
-
在程序名稱中輸入名稱,例如
RCDC。 -
選取下一步。
-
- 在「Replicat 選項」頁面上:
-
在複製追蹤名稱中,輸入任務 3 (
C1) 的追蹤名稱。 -
在目標中,選取 Snowflake。
-
在目標證明資料中,選取 Snowflake 連線的「網域」和「別名」。
-
選取串流。
-
-
在「參數檔」頁面上,新增下列對應,然後選取下一步:
INSERTALLRECORDS MAP src_ociggll.src_city, TARGET SRCMIRROR_OCIGGLL.SRC_CITY; MAP src_ociggll.src_region, TARGET SRCMIRROR_OCIGGLL.SRC_REGION; MAP src_ociggll.src_customer, TARGET SRCMIRROR_OCIGGLL.SRC_CUSTOMER; MAP src_ociggll.src_orders, TARGET SRCMIRROR_OCIGGLL.SRC_ORDERS; MAP src_ociggll.src_order_lines, TARGET SRCMIRROR_OCIGGLL.SRC_ORDER_LINES; MAP src_ociggll.src_product, TARGET SRCMIRROR_OCIGGLL.SRC_PRODUCT; -
在「特性」頁面上,複查特性、新增下列對應,然後選取建立並執行:
jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true
- 在 Replicat 資訊頁面上:
您可以返回「複本」頁面,複查 Replicat 詳細資訊。
-
-
驗證資料交換資料:
-
執行來源 PostgreSQL 資料庫更新,以驗證對 Snowflake 的複寫。執行下列命令檔以執行 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 建置主控台中,選取
RCDC,然後選取統計資料。確認src_ociggll.src_city有 10 個插入。注意:如果 Extract 未擷取任何插入,請重新啟動
ECDCExtract。 -
在目標 Big Data 部署主控台中,選取
RCDC,複查其詳細資訊和統計資料來驗證插入數目。
-