簡述
CloudCanal當前最新版本已經支持源端Oracle、SqlServer等主流傳統資料庫作為源端遷移同步資料到StarRocks來構建實時數倉,本文簡要介紹如何快速構建一條Oracle->StarRocks資料鏈路,
技術要點
基于StreamLoad的匯入方式
CloudCanal 采用了 StreamLoad 的方式進行匯入,源端的訊息會轉成位元組流,最后會以批量發送的形式通過 HTTP 協議發往 StarRocks,
CloudCanal 默認采用 json 格式來進行StreamLoad匯入,如果用戶內容特殊字符較少,也可以開啟 csv 格式匯入,分隔符可以通過引數 columnSeparator 和 lineSeparator 設定,
基于 StreamLoad 的寫入方式,實際寫入對端的操作均為 INSERT,CloudCanal 同步時會自動將 UPDATE / DELETE 轉成 INSERT 陳述句,并修改 __op 值,StarRocks會自動進行資料合并,
支持常用DDL實時同步
Oracle -> StarRocks 支持新增列、洗掉列DDL,DDL實時同步到對端時會自動轉換成StarRocks兼容的語法,資料型別也會根據映射關系進行自動轉換,
編輯訂閱功能
CloudCanal 提供了便利的修改訂閱能力,對于一個已經創建好的正在運行的增量同步任務,如果由于業務需求有新增表需要訂閱,可以在原有任務的基礎上新增需要訂閱的表,生成子任務,自動完成全量、增量遷移同步,在完成后會子任務會自動與原有的任務合并,
資料型別映射
CloudCanal結構遷移和資料遷移同步時會自動進行資料型別映射,型別映射見下表:
| Oracle型別 | StarRocks型別 |
|---|---|
| CHAR | VARCHAR |
| NCHAR | VARCHAR |
| VARCHAR2 | VARCHAR |
| NVARCHAR | VARCHAR |
| NVARCHAR2 | VARCHAR |
| LONG | STRING |
| NUMBER_BIGINT | BIGINT |
| NUMBER_DECIMAL | DECIMAL |
| FLOAT | FLOAT |
| BINARY_FLOAT | DECIMAL |
| BINARY_DOUBLE | DECIMAL |
| CLOB | STRING |
| NCLOB | STRING |
| DATA | DATETIME |
| TIMESTAMP | DATETIME |
| TIMESTAMP_WITH_TIME_ZONE | DATETIME |
| TIMESTAMP_WITH_LOCAL_TIME_ZONE | DATETIME |
| INTERVAL_YEAR_TO_MONTH | DATETIME |
| INTERVAL_DAY_TO_SECOND | DATETIME |
| ROWID | STRING |
| PLSQL_BOOLEAN | BOOLEAN |
| XMLTYPE | STRING |
| HTTPURITYPE | STRING |
操作示例
準備CloudCanal
- 安裝好CloudCanal
- 準備好源端和目標端資料庫及對應資料
Oracle源端前置準備
CloudCanal在做Oracle作為源端的資料遷移同步時,需要做一些前置準備,具體可以參考 ORACLE LogMiner同步準備,
添加資料源
- 登錄CloudCanal平臺
- 資料源管理->添加資料源

- 創建源端資料源:選擇自建資料源,選擇Oracle,并填寫相關資料庫資訊,點擊新增資料源確定創建Oracle資料源,
- logminerUser:ORACLE源端增量任務使用redo決議(logminer)方式時使用的賬號,需要CDB型別用戶
- logminerPasswd:ORACLE源端增量任務使用redo決議(logminer)方式時使用的賬號密碼
- logminerConnectType:ORACLE源端增量任務使用redo決議(logminer)方式時使用的連接方式,目前支持ORACLE_SID或ORACLE_SERVICE模式
- logminerSidOrService:ORACLE源端增量任務使用redo決議(logminer)方式時使用的連接識別符號,和logminerConnectType引數配合使用,ORACLE_SID連接方式,則填寫sid,ORACLE_SERVICE連接方式,則填寫service name

- 創建目的端資料源:選擇自建資料源,選擇StarRocks,并填寫相關資料庫資訊,點擊新增資料源確定創建StarRocks資料源

- Client地址:StarRocks提供的MySQLClient服務埠,CloudCanal主要用其查詢庫表的元資料資訊,對應StarRocks的QueryPort,默認埠為9030
- Http地址:Http地址主要用于接收streamload的http請求,此處可以填寫StarRocks BE節點的埠,默認為8030;如需負載均衡也支持直接填寫FE的地址和埠,StarRocks的FE會自動處理stream load的http請求
- 查看資料源是否創建成功

任務創建
- 任務管理->創建任務

- 選擇集群
- 源端選擇剛添加的Oracle資料源,目標端選擇StarRocks資料源,分別點擊測驗連接按鈕以測驗資料庫連通性和獲取schema級別元資訊,顯示連接成功后,設定資料庫映射關系
- StarRocks的結構遷移支持用戶自定義分桶數等自定義建表資訊
- 點擊下一步

- 選擇增量同步,并且勾選全量初始化
- 點擊下一步

- 選擇訂閱的表
- 點擊下一步

- 配置列映射
- 點擊下一步

- 點擊創建任務

- 任務創建成功并啟動后,會自動執行結構遷移、全量遷移、增量同步

總結
本文簡單介紹了如何使用CloudCanal進行Oracle->StarRocks 資料遷移同步,各位讀者朋友,如果你覺得還不錯,請點贊、評論加轉發吧,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/540661.html
標籤:其他
上一篇:解密小程式云開發資料庫
