簡述 Apache Doris 是一個現代化的 MPP 分析型資料庫產品,僅需 亞秒級 響應時間即可獲得查詢結果,能有效地支持實時數據分析。 本文主要介紹如何使用 CloudCanal 快速構建一條穩定高效運行的 PostgreSQL 到 Doris 數據同步鏈路。 技術點 基於 StreamLoa ...
簡述
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 數據遷移同步。各位讀者朋友,如果你覺得還不錯,請點贊、評論加轉發吧。