簡述
Apache Doris 是一個現代化的 MPP 分析型資料庫產品,僅需 亞秒級 回應時間即可獲得查詢結果,能有效地支持實時資料分析,
本文主要介紹如何使用 CloudCanal 快速構建一條穩定高效運行的 PostgreSQL 到 Doris 資料同步鏈路,
技術點
基于 StreamLoad 的匯入方式
Doris 提供了多種匯入方式,CloudCanal 采用了 StreamLoad 的方式進行匯入,源端的訊息會轉成位元組流,最后會以 Batch 的形式通過 HTTP 協議發往 Doris,
相比直接通過 SQL 寫入的方式,StreamLoad 方式會有更好的性能,寫入的資料直接經 FE 轉發給 BE 處理,如果直接采用 SQL 寫入,在 FE 側,會有額外的 SQL 決議開銷,
CloudCanal 默認采用 json 格式來進行StreamLoad匯入,如果用戶內容特殊字符較較少,也可以開啟 csv 格式匯入,分隔符可以通過引數 columnSeparator 和 lineSeparator 設定,
基于 StreamLoad 的寫入方式,實際寫入對端的操作均為 INSERT,CloudCanal 同步時會自動將 UPDATE / DELETE 轉成 INSERT 陳述句,并修改 __op 值,
PG -> Doris 的資料型別支持
CloudCanal 從 2020 年開始支持 PG 同步后就不斷的豐富 PG 的對端資料源,支持 PG 到 DORIS 是一個非常重要的資料源擴充
Doris 可以滿足多種資料分析需求,例如固定歷史報表,實時資料分析,互動式資料分析等,可以讓資料分析作業更加簡單高效!
PG 到 DORIS 全量和增量同步,不僅覆寫主流使用的資料型別,對地理資訊相關型別也有很好的支持,關于CloudCanal對于地理資訊的支持可以參考文章如何利用現代化資料堆疊高效處理地理資訊資料 ,
Doris 關鍵技術
Doris 內部自行管理資料的多副本和自動修復,保證資料的高可用、高可靠,在服務器宕機的情況下,服務依然可用,資料也不會丟失,
MySQL 兼容性好,兼容 MySQL 的網路協議,兼容 MySQL 語法,
支持 MMP 一條 SQL 如果包含了合并、聚合計算、排序等多種操作;在執行計劃的時候,MPP 會將其拆分成多份,分布到每臺機器執行,最后再將結果匯總,大大提升了效率,
操作示例
前置條件
- 登陸 CloudCanal SaaS版 ,使用參見快速上手檔案
- 準備一個 PG 資料庫,和 DORIS 實體(本例分別使用自建 PG 12.4 和 Doris 1.0)
- 登錄 CloudCanal 平臺 ,添加 PG 和 DORIS

- 創建一條 PG -> DORIS 鏈路作為增量資料來源
任務創建
- 任務管理-> 任務創建
- 測驗鏈接并選擇 源 和 目標 資料庫
- 點擊下一步

- 選擇 資料同步,并勾選 全量資料初始化,其他選項默認

- 選擇需要遷移同步的表和列


- 確認創建任務

- 任務自動做結構遷移、全量遷移、增量同步

校驗資料
- 我們使用程式對源端制造了一些資料

- 任務正常運行一段時間后,停止造資料
- 點擊 PG -> DORIS 任務詳情,功能串列 -> 創建相似任務,在創建任務的第二步選擇資料校驗

- 資料校驗 OK

常見問題
支持什么版本的 PG 和 DOIRS ?
目前源端 PG 12.x, 13.x, 14.x 皆可使用 CloudCanal 進行遷移同步,對端 DORIS 支持 1.x 版本,后序將不斷擴展源端 PG 的資料型別,
總結
本文簡單介紹了如何使用 CloudCanal 進行 PG -> DORIS 資料遷移同步,各位讀者朋友,如果你覺得還不錯,請點贊、評論加轉發吧,
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/527906.html
標籤:其它
