天天看點

5分鐘搞定 PostgreSQL 到 Doris 資料遷移和同步

簡述

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
5分鐘搞定 PostgreSQL 到 Doris 資料遷移和同步
  • 建立一條 PG -> DORIS 鍊路作為增量資料來源

任務建立

  • 任務管理-> 任務建立
  • 測試連結并選擇 源 和 目标 資料庫
  • 點選下一步
5分鐘搞定 PostgreSQL 到 Doris 資料遷移和同步
  • 選擇 資料同步,并勾選 全量資料初始化,其他選項預設
5分鐘搞定 PostgreSQL 到 Doris 資料遷移和同步
  • 選擇需要遷移同步的表和列
5分鐘搞定 PostgreSQL 到 Doris 資料遷移和同步
5分鐘搞定 PostgreSQL 到 Doris 資料遷移和同步
  • 确認建立任務
5分鐘搞定 PostgreSQL 到 Doris 資料遷移和同步
  • 任務自動做結構遷移、全量遷移、增量同步
5分鐘搞定 PostgreSQL 到 Doris 資料遷移和同步

校驗資料

  • 我們使用程式對源端制造了一些資料
5分鐘搞定 PostgreSQL 到 Doris 資料遷移和同步
  • 任務正常運作一段時間後,停止造資料
  • 點選 PG -> DORIS 任務詳情,功能清單 -> 建立相似任務,在建立任務的第二步選擇資料校驗
5分鐘搞定 PostgreSQL 到 Doris 資料遷移和同步
  • 資料校驗 OK

常見問題

支援什麼版本的 PG 和 DOIRS ?

總結

繼續閱讀