5分鐘搞定 MySQL 到 ElasticSearch 遷移同步-CloudCanal實戰
簡述
本文介紹如何通過 CloudCanal,五分鐘內建立一條長期穩定執行的 MySQL -> ElasticSearch (以下簡稱 ES) 實時資料遷移同步鏈路 。
技術內幕
限流
MySQL 到 ES 資料遷移同步過程中,往往會面臨源端寫入對端 RPS 較大問題,導致 ES 負載較大,影響業務對 ES 的正常讀寫。CloudCanal 為了應對這個情況,提供限流能力。同步任務建立完畢後,可在 任務詳情 -> 引數設定 對源端流量進行限流。
時區處理
CloudCanal 允許使用者在建立資料遷移同步任務時指定時區。寫入ES 時,源端時間型別資料將會格式化並帶上時區資訊 , 支援使用者在跨國、跨地域場景下使用。
自動建立索引和 Mapping 結構
CloudCanal 遷移同步任務支援自動將源端資料庫表結構對映成 ES 索引,該過程中允許使用者在 列(column/field) 級別上,個性化設定自己需要的索引和 Mapping 結構。這些設定包括:
- 每個列可以指定是否需要索引
- 可以對 text 型別的 field 設定 ES mapping 中的分詞器(標準分詞器)
- 索引分片數、副本數自定義設定
對映已建索引
使用者可能已經在 ES 中提前建好了索引,這種情況下 CloudCanal 會自動探測,並允許使用者配置對映,一張表可對映對端一個索引。
內建 _id 生成和 routing field 指定
寫入 ES 時候 _id 用於唯一標識一個 doc。CloudCanal 資料同步預設遵循以下原則:
- routing 使用 _id 值
- 單主鍵表,會預設使用源端關係表的主鍵列的列值作為 _id 的值
- 多主鍵表,會通過分隔符$連線多個主鍵列的值,組成唯一的 _id 值
- 無主鍵表,會將所有列的值通過$連線,生成唯一的 _id 值
舉個"栗子"
準備 CloudCanal
- 如沒有安裝 CloudCanal,請參考《CloudCanal安裝教程》安裝。下面例子介紹如何建立一個 MySQL->ElasticSearch 的遷移同步任務。
新增資料來源
建立任務
資料來源設定
功能配置
表&ACTION過濾
-
此處可以進行的操作主要是:
- 勾選需要訂閱的表
- 選擇需要對映的索引(支援對映已經存在的索引)
- 勾選 IUD 過濾
- 批量設定分片數
tips: CloudCanal的結構遷移支援自動幫使用者按照源端表結構建立索引
資料處理
建立確認
檢視任務狀態
總結
本文簡單介紹瞭如何使用 CloudCanal 快速構建 MySQL->ElasticSearch 資料遷移同步鏈路,更多的源端和目標端陸續開放。各位小夥伴,如果覺得還不錯,請點贊、評論加轉發吧。
更多精彩
- 5分鐘搞定-mysql-到-mysql-異構-線上資料遷移同步
- mysql-到-elasticsearch-實時同步構建資料檢索服務的選型與思考
- 構建基於kafka中轉的混合雲線上資料生態-cloudcanal實戰
- mysql到clickhouse實時同步-cloudcanal實戰
社群快訊
- 我們建立 CloudCanal 微信粉絲群啦,在裡面,你可以得到最新版本釋出資訊和資源連結,你能看到其他使用者一手評測、使用情況,你更能得到熱情的問題解答,當然你還可以給我們提需求和問題。快快加入吧。
CloudCanal-免費好用的企業級資料同步工具,歡迎品鑑。
瞭解更多產品可以檢視官方網站: http://www.clougence.com
CloudCanal社群:https://www.askcug.com/