注意:
- 此教學課程需要存取 Oracle Cloud。若要註冊免費帳戶,請參閱開始使用 Oracle Cloud Infrastructure Free Tier 。
- 它會使用 Oracle Cloud Infrastructure 證明資料、租用戶及區間的範例值。完成實驗室時,請將這些值替代為您雲端環境特定的值。
以不同目標使用 Oracle GoldenGate 和 Oracle GoldenGate for Big Data 來串流資料
簡介
Oracle GoldenGate 是一個完全託管的服務,可協助資料工程師大規模地將資料從一或多個資料管理系統搬移至 Oracle Cloud 資料庫。在單一介面中設計、執行、協調及監控資料複寫作業,無須配置或管理任何運算環境。
Oracle GoldenGate for Big Data 會即時將交易資料傳輸至大數據和雲端系統,而不會影響來源系統的效能。它可以將即時資料傳遞變得更有效率到最受歡迎的大數據解決方案,包括 Apache Hadoop、Apache HBase、Apache Hive、Confluent Kafka、NoSQL 資料庫、Elasticsearch、JDBC、Oracle Cloud、Amazon Web Services、Microsoft Azure Cloud、Google Cloud 平台及資料倉儲,以協助改善洞察力並及時採取行動。
Oracle Cloud Infrastructure (OCI) Streaming 服務提供完全託管、可擴展且持久的解決方案,可即時擷取及使用大量資料串流。在發布 / 訂閱訊息傳遞模型中以持續且循序方式產生及處理資料的任何使用案例都使用 OCI Streaming。
在本教學課程中,您將瞭解如何將 Oracle Autonomous Database 的資料串流至兩個不同的目標,也就是 Oracle Autonomous Database 和 Oracle Streams 主題。
目標
-
設定兩個 Oracle Autonomous Databases
-
在此範例案例中,sourceDB 有兩個表格銀行和作業,其中資料必須複製到兩個不同的目標
-
表格銀行將複製到名為 targetDB 的目標 Oracle Autonomous Database
-
表格作業將以近乎即時的串流複製到 OCI Streaming (kafka) 主題
-
-
設定 Oracle GoldenGate 以將資料從來源複寫至目標資料庫
-
將表格 DML 從來源資料庫發布到 Oracle Cloud Infrastructure (OCI) Streaming (Kafka 相容) 目標主題
架構
重要事項:此範例架構僅供學習之用,而且為了保持簡單,我們使用 PUBLIC 子網路,這表示此不應用於生產環境或實際資料處理。
對於生產環境,您必須使用 PRIVATE 子網路,並套用以下所描述的所有安全最佳做法:Oracle 安全最佳做法 )
必要條件
- Oracle Cloud 帳戶 - 開始使用 Oracle Cloud Infrastructure Free Tier
- 具有兩個子網路 (公用和專用) 的基本 VCN (虛擬雲端網路)
您可以依照此教學課程建立新的 VCN QuickStart 網路 - Oracle Database 的基本概念
- Kafka 串流的基本概念
作業 1:建立新的區間
-
登入您的 Oracle Cloud 帳戶,按一下左上角的導覽功能表,選取身分識別與安全性,然後按一下區間。
作業 2:建立新的 Oracle Autonomous Database,名為 sourceDB
-
按一下左上方的導覽功能表,選取 Oracle Database ,然後按一下 Autonomous Database 。
-
選取先前步驟中建立的串流區間,然後按一下建立 Autonomous Database 。
-
依照下列影像所示填入資訊。
注意:記下您建立的 ADMIN 密碼。
作業 3:建立新的 Oracle Autonomous Database,名為 targetDB
-
按一下左上方的導覽功能表,選取 Oracle Database ,然後按一下 Autonomous Database 。
-
選取先前步驟串流中建立的區間,然後按一下建立 Autonomous Database 。
-
依照下列影像所示填入資訊。
注意:記下您建立的 ADMIN 密碼。
作業 4:為 sourceDB 建立新的綱要與設定值
-
前往 sourceDB 首頁並按一下資料庫動作,在資料庫上執行 SQL 命令並載入資料。
-
下載 findata_schema.sql 檔案並將內容複製到 SQL 執行視窗,並以 SCRIPT 方式執行。
注意:請確定您已設定 FINDATA 使用者的密碼,並記下本教學課程的後續步驟。
-
下載 enable_gg.sql 檔案並將內容複製到 SQL 執行視窗,並以 SCRIPT 方式執行。
注意:請確定已設定 GGADMIN 使用者的密碼,並注意本教學課程的後續步驟。
作業 5:將 banks_export.sql
檔案中的資料載入 sourceDB
-
前往 sourceDB 首頁並按一下資料庫動作,在資料庫上執行 SQL 命令並載入資料。
-
下載 banks_export.sql 檔案並將內容複製到 SQL 執行視窗,並以 SCRIPT 方式執行。
-
在表格上執行簡單的 COUNT,並檢查插入的資料列數目。
作業 6:為 targetDB 建立新的綱要並載入資料
-
"targetDB" 的重複任務 4 和任務 5。
-
建立 FINDATA 表格、啟用 GG,以及將 BANKS 表格的資料載入目標資料庫,就像您在 sourceDB 上執行,但現在連線到 targetDB 一樣。
作業 7:在 sourceDB 上建立名為 OPERACOES 的交易表格
-
只在 sourceDB 中建立名為
FINDATA.OPERACOES
的新表格。此表格是 Oracle GoldenGate for Big Data 在 OCI Streaming 主題上擷取及張貼的來源資料。 -
前往 sourceDB 首頁並按一下資料庫動作,在資料庫上執行 SQL 命令並載入資料。
-
下載 operacoes_table.sql 檔案並將內容複製到 SQL 執行視窗,並以 SCRIPT 方式執行。
這是一個空白表格,會收到在 Oracle GoldenGate 上啟動事件的隨機資料。
作業 8:建立 OCI 串流集區
-
按一下左上方的導覽功能表,選取分析與 AI ,按一下串流,然後選取串流集區。
-
按一下建立串流集區並填入下列資訊。
-
按一下建立。
-
按一下 Kafka 連線設定值,並記下連線字串的相關資訊。
作業 9:產生 AUTH TOKEN 以存取 OCI 串流集區
您可以透過與 Oracle Cloud Infrastructure Identity and Access Management (OCI IAM) 上使用者關聯的認證權杖,存取 Oracle Cloud 中的 OCI Streaming (Kafka API) 和其他資源。在 Kafka 連線設定值中,SASL 連線字串有一個名為密碼的參數和 AUTH_TOKEN 值,如上一個作業所述。若要啟用 OCI Streaming 存取,請前往 OCI 主控台並建立 AUTH TOKEN。
-
按一下左上方的導覽功能表,選取識別與安全,選取識別、網域、預設網域、使用者。
-
選取您用來建立更早資源 (例如 Oracle Autonomous Database 和 OCI Stream Pool) 的相同使用者。
注意:請注意 AUTH TOKEN,您需要下一個步驟。
作業 10:建立 Oracle GoldenGate 連線
為了連線至來源和目標資料庫,Oracle GoldenGate 需要設定正確的連線。
-
按一下左上角的導覽功能表,選取 Oracle Database ,然後按一下 GoldenGate 。
-
從左側功能表中選取連線選項,然後按一下建立連線。
-
建立 sourceDB 連線。
-
重複此程序並建立 targetDB 的連線。
-
為您的 OCI Streaming 集區 DefaultPool 建立連線。
此時,您應該具有下列連線:
作業 11:建立 Oracle GoldenGate 部署 - 類型:ORACLE
-
按一下左上角的導覽功能表,選取 Oracle Database ,然後按一下 GoldenGate 。
-
從左側功能表選取部署選項,然後按一下建立部署。
注意:請務必儲存您的 oggadmin 密碼。
作業 12:建立 Oracle GoldenGate 部署 - 類型:BIGDATA
-
按一下左上角的導覽功能表,選取 Oracle Database ,然後按一下 GoldenGate 。
-
從左側功能表選取部署選項,然後按一下建立部署。
-
建立部署並啟用之後,繼續進行下一個步驟。
作業 13:建立 Oracle GoldenGate 部署之間的連線
為了讓 Oracle GoldenGate 與 Oracle GoldenGate for Big Data 通訊,我們需要建立連線。
-
按一下左上角的導覽功能表,選取 Oracle Database ,然後按一下 GoldenGate 。
-
從左側功能表中選取連線選項,然後按一下建立連線。
您的連線可能如下:
作業 14:新增 Oracle GoldenGate 部署連線 - GGForOracle
-
選取左側功能表中的 GGForOracle 部署,按一下指派的連線,然後按一下指派連線。
-
新增 sourceDB 連線。
-
新增 targetDB 連線。
-
新增 GGOracletoGGBigData 的連線。
您應該在 GGForOracle 部署上有下列連線:
作業 15:新增 Oracle GoldenGate 部署連線 - GGforBigData
-
選取左側功能表中的 GGforBigData 部署,按一下指派的連線,然後按一下指派連線。
您應該在 GGforBigData 部署上有下列連線:
作業 16:設定 Oracle GoldenGate for GGforOracle
-
選取您的 GGForOracle 部署,然後按一下啟動主控台。
-
輸入證明資料 oggadmin/yourpassword (您在建立部署期間建立的密碼)。
-
按一下導覽功能表,然後選取組態,再按一下 + 以新增證明資料。
-
新增 GGforBigData 部署的證明資料。
注意:使用您在部署建立期間設定的 oggadmin 。
-
按一下以連線 sourceDB ,然後按一下 TRANDATA 上的 + ,即可新增複製所需的表格。
-
新增
FINDATA.BANKS
表格的記錄,然後按一下提交。 -
新增
FINDATA.OPERACOES
表格的記錄,然後按一下提交。 -
若要檢查表格是否已新增,請按一下 FINDATA.* 的篩選。
-
按一下以連線 targetDB ,然後按一下 CHECKPOINT 上的 + 。
-
輸入 FINDATA.CHECKTABLE ,然後按一下提交。
-
現在按一下左側功能表的概要選項,以包含新的擷取。
-
包含下列參數:
EXTRACT EXT USERIDALIAS sourceDB DOMAIN OracleGoldenGate EXTTRAIL E1 table FINDATA.operacoes; table FINDATA.banks;
-
-
按一下動作、開始以開始擷取。
-
現在,建立新的 replicat 以將複製套用至 targetDB 。
-
包含下列參數:
REPLICAT REP USERIDALIAS targetDB DOMAIN OracleGoldenGate MAP FINDATA.BANKS, TARGET FINDATA.BANKS;
注意:此處只複製
FINDATA.BANKS
表格。這是因為我們正在將它複製到 targetDB 。其他表格FINDATA.OPERACOES
將會在本教學課程之後複製到 OCI Streaming 主題。 -
-
按一下動作、開始以啟動複製。
-
檢查複製是否適用於
FINDATA.BANKS
表格:前往 sourceDB 的資料庫動作頁面並插入新記錄。INSERT INTO FINDATA.BANKS VALUES (999, 999, 'XXXXXX','TEST GOLDENGATE','TESTGG'); COMMIT;
-
開啟您的 targetDB 資料庫動作頁面,然後執行下方查詢以檢查記錄是否已建立。
select * from FINDATA.BANKS WHERE ID_SEQ = 999;
-
按一下分送服務 (Distribution Service) 頁籤,然後新增路徑以傳送資料至 GGforBigData 。
-
按一下動作、開始以開始服務分配。
作業 17:設定 Oracle GoldenGate for Big Data - GGforBigData
-
選取您的 GGforBigData 部署,然後按一下啟動主控台。
-
輸入證明資料 oggadmin/yourpassword (您在建立部署期間建立的密碼)。
-
按一下接收端服務頁籤,檢查它是否已經運作。這應該如下所示,因為我們已經對這兩個 Oracle GoldenGate 部署之間的連線執行所有必要的設定值。
-
現在,我們需要設定 REPLICAT ,才能在 OCI Streaming 主題上發布資料。
-
按一下管理服務頁籤。
-
包含下列參數:
REPLICAT STRM TARGETDB LIBFILE libggjava.so SET property=/u02/Deployment/etc/conf/ogg/STRM.properties MAP FINDATA.operacoes, TARGET FINDATA.operacoes , THREADRANGE(1-5);
-
只要在此行新增 ${tableName} ,即可使用所有提供的預設值。
-
-
按一下動作、開始以啟動複製。
-
檢查狀態是否為綠色:
-
作業 18:驗證複寫至 OCI Streaming 主題
-
移至您的 sourceDB 資料庫動作頁面,然後在
FINDATA.OPERACOES
表格中插入一些資料列。-
您可以使用 load_random_data.sql 程序檔,將隨機資料插入
FINDATA.OPERACOES
表格。 -
此命令檔會在
FINDATA.OPERACOES
上新增 1.000 個資料列,而且足以檢查複製是否如預期般運作。
-
-
執行下列 SQL 命令,檢查
FINDATA.OPERACOES
中是否有任何記錄。SELECT COUNT(*) FROM FINDATA.OPERACOES;
-
按一下左上方的導覽功能表,選取分析與 AI ,按一下串流,然後從左側功能表中選取串流。
-
檢查 Oracle GoldenGate for Big Data 是否自動建立新的 TOPIC。
-
按一下載入訊息,嘗試使用部分訊息並檢查主題中是否有這些訊息。
重要注意事項:載入訊息只適用於最後一個 MINUTE 中使用的訊息,這表示如果您花的時間超過執行 LOAD_RANDOM_DATA.SQL 程序檔的時間,您將不會看到任何結果。
若要查看結果,請移至資料庫並再次執行 LOAD_RANDOM_DATA.SQL 程序檔,然後返回載入訊息,您將會看到訊息。
確認
- 作者 - Joao Tarla (Oracle LAD A-Team 解決方案工程師)
其他學習資源
探索 docs.oracle.com/learn 的其他實驗室,或者存取更多 Oracle Learning YouTube 頻道上的免費學習內容。此外,請瀏覽 education.oracle.com/learning-explorer 以成為 Oracle Learning 檔案總管。
如需產品文件,請造訪 Oracle Help Center 。
Stream data using Oracle GoldenGate and Oracle GoldenGate for Big Data with different targets
F80321-01
April 2023
Copyright © 2023, Oracle and/or its affiliates.