將資料從 HeatWave 複製到 Amazon Kinesis

瞭解如何使用 OCI GoldenGate 將資料從 HeatWave 複製到 Amazon Kinesis

開始之前

若要成功完成此快速輸入,您必須具有:

環境設定:HeatWave

設定此「快速啟動」的環境:
  1. 下載範例資料指令碼,然後在 HeatWave 資料庫上執行指令碼以建立資料庫並載入資料。
  2. 使用下列命令檔建立 ggadmin 使用者。請記得以有效的密碼取代 <ggadmin-password>
    CREATE USER 'ggadmin' IDENTIFIED BY '<ggadmin-password>';
    GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT, CREATE,CREATE VIEW, EVENT, INSERT, UPDATE, DROP,EXECUTE, DELETE ON *.* TO 'ggadmin';
  3. 開啟 port 3306,透過此 OCI GoldenGate 可連線。
    1. 在 Oracle Cloud 主控台中,尋找 HeatWave 資料庫使用的子網路。
    2. 在子網路的安全清單中,建立 port TCP/3306 的傳入規則。

工作 2:建立 Extract

  1. 在「部署」頁面上,選取在「任務 1」中建立的 MySQL 部署。
  2. 在部署詳細資訊頁面上,按一下啟動主控台
  3. 使用您在任務 1 中建立部署時指定的管理員憑證登入來源 MySQL 部署主控台。
  4. 新增具有下列值的 Change Data Capture Extract
    • Extract 類型Change Data Capture Extract
    • 程序名稱ECDC
    • Extract Trail 名稱C1
    • 參數檔:將 MAP *.*, TARGET *.*; 取代為 TABLE SRC_OCIGGLL.*;

作業 3:建立 Distribution Path 以定位大數據部署

  1. 如果使用 IAM 證明資料存放區,請繼續進行步驟 3。如果使用 GoldenGate 證明資料存放區,請建立來源 GoldenGate 用來連線目標 GoldenGate 的使用者。
    1. 在「部署」頁面上,選取目標大數據部署
    2. 在部署詳細資訊頁面上,按一下啟動主控台,然後以管理員使用者身分登入。
    3. 在建置主控台導覽功能表中,按一下「使用者管理」。
    4. 按一下新增使用者 (加號圖示),依下列方式完成欄位,然後按一下送出
      • 若為使用者名稱,請輸入 ggsnet
      • 對於角色,請選取運算子
      • 請輸入密碼兩次以進行驗證。
  2. 來源 MySQL 部署主控台中,為上一個步驟中建立的使用者建立 Path Connection
    1. 開啟導覽功能表,然後按一下 Path Connection
    2. 按一下新增 Path Connection (加號圖示) ,完成下列欄位,然後按一下送出
      • 證明資料別名中,輸入 dpuser
      • 使用者 ID 中,輸入 ggsnet
      • 密碼中,輸入與上一個步驟相同的密碼。
  3. 來源 MySQL 部署主控台中,新增具有下列值的 Distribution Path
    1. 來源選項頁面上:
      • 來源 Extract 中,選取在「任務 2」中建立的 Extract
      • 歷程檔名稱中,輸入兩個字元的名稱,例如 C1
    2. 目標選項頁面上:
      • 若為目標主機,請輸入目標部署的主機網域。
      • 對於連接埠號碼,請輸入 443
      • 歷程檔名稱中,輸入兩個字元的名稱,例如 C1
      • 別名中,輸入在步驟 2 中建立的證明資料別名。
  4. 在目標 OCI GoldenGate Big Data 部署主控台中,複查 Distribution Path 結果建立的 Receiver path
    1. 按一下 Receiver Service
    2. 檢閱 Receiver path 詳細資訊。

作業 4:新增 Amazon Kinesis 的 Replicat

  1. 在大數據部署中,按一下 Administration Service ,然後按一下新增 Replicat (加號圖示)
  2. 新增包含下列值的 Replicat
    • 若為 Replicat 類型,請選取 Classic Replicat
    • 程序名稱中,輸入名稱。
    • 目標歷程檔名稱中,輸入任務 2 的歷程檔名稱。
    • 若為目標,請選取 Amazon Kinesis
    • 若為 Amazon Kinesis 的可用別名,請從下拉式清單中選取您的別名。
    • 在「特性檔」頁面上,編輯標示為 #TODO 的欄位:
      • gg.handler.kinesis.region:提供目標 Kinesis 串流的 Amazon Web Services (AWS) 區域。
      • gg.handler.kinesis.streamMappingTemplate:預設會設為 ${tableName},它會根據來源表格名稱來對應串流。如果您想要對應至現有的資料串流,可以提供靜態串流名稱,或者可以使用樣板關鍵字來動態指派串流名稱。

工作 5:驗證從 HeatWaveAmazon Kinesis 的資料複製

執行來源 HeatWave 資料庫的更新,以驗證對 Amazon Kinesis 的複製。
  1. 在 OCI Bastion 中,使用 MySQL IP 和 port 3306 建立 SSH 連接埠轉送階段作業。新增您的公用 SSH 金鑰。
  2. 使用您的私密金鑰和 port 3306 連線至 Cloud Shell 中的 MySQL。
  3. 順利連線之後,請執行下列命令:
    mysqlsh admin@localhost:3306 --sql
  4. 執行下列命令檔以執行 HeatWave 資料庫的插入:
    use SRC_OCIGGLL;
    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);
    commit;
  5. 在來源 MySQL 部署主控台中,選取 Change Data Capture Extract 名稱 (CDCEXT),然後按一下統計資料。確認 SRC_OCIGGLL.SRC_CITY 有 10 個插入項目。
  6. 在目標 Big Data 部署主控台中,選取 Replicat 名稱,然後按一下統計資料。確認 SRC_OCIGGLL.SRC_CITY 有 10 個插入項目。
  7. Amazon Kinesis 中,您可以檢查目標資料串流 / 資料檢視器中的訊息。