簡(jiǎn)述
本文介紹如何通過(guò) CloudCanal,五分鐘內(nèi)創(chuàng)建一條長(zhǎng)期穩(wěn)定運(yùn)行的 MySQL -> ElasticSearch (以下簡(jiǎn)稱(chēng) ES) 實(shí)時(shí)數(shù)據(jù)遷移同步鏈路 勺择。
技術(shù)內(nèi)幕
限流
MySQL 到 ES 數(shù)據(jù)遷移同步過(guò)程中产雹,往往會(huì)面臨源端寫(xiě)入對(duì)端 RPS 較大問(wèn)題毡咏,導(dǎo)致 ES 負(fù)載較大剃允,影響業(yè)務(wù)對(duì) ES 的正常讀寫(xiě)教翩。CloudCanal 為了應(yīng)對(duì)這個(gè)情況杆勇,提供限流能力。同步任務(wù)創(chuàng)建完畢后饱亿,可在 任務(wù)詳情 -> 參數(shù)設(shè)置 對(duì)源端流量進(jìn)行限流蚜退。
時(shí)區(qū)處理
CloudCanal 允許用戶(hù)在創(chuàng)建數(shù)據(jù)遷移同步任務(wù)時(shí)指定時(shí)區(qū)闰靴。寫(xiě)入ES 時(shí),源端時(shí)間類(lèi)型數(shù)據(jù)將會(huì)格式化并帶上時(shí)區(qū)信息 , 支持用戶(hù)在跨國(guó)钻注、跨地域場(chǎng)景下使用蚂且。
自動(dòng)創(chuàng)建索引和 Mapping 結(jié)構(gòu)
CloudCanal 遷移同步任務(wù)支持自動(dòng)將源端數(shù)據(jù)庫(kù)表結(jié)構(gòu)映射成 ES 索引,該過(guò)程中允許用戶(hù)在 列(column/field) 級(jí)別上幅恋,個(gè)性化設(shè)置自己需要的索引和 Mapping 結(jié)構(gòu)杏死。這些設(shè)置包括:
- 每個(gè)列可以指定是否需要索引
- 可以對(duì) text 類(lèi)型的 field 設(shè)置 ES mapping 中的分詞器(標(biāo)準(zhǔn)分詞器)
- 索引分片數(shù)、副本數(shù)自定義設(shè)置
映射已建索引
用戶(hù)可能已經(jīng)在 ES 中提前建好了索引捆交,這種情況下 CloudCanal 會(huì)自動(dòng)探測(cè)淑翼,并允許用戶(hù)配置映射,一張表可映射對(duì)端一個(gè)索引品追。
內(nèi)置 _id 生成和 routing field 指定
寫(xiě)入 ES 時(shí)候 _id 用于唯一標(biāo)識(shí)一個(gè) doc玄括。CloudCanal 數(shù)據(jù)同步默認(rèn)遵循以下原則:
- routing 使用 _id 值
- 單主鍵表,會(huì)默認(rèn)使用源端關(guān)系表的主鍵列的列值作為 _id 的值
- 多主鍵表肉瓦,會(huì)通過(guò)分隔符$連接多個(gè)主鍵列的值遭京,組成唯一的 _id 值
- 無(wú)主鍵表,會(huì)將所有列的值通過(guò)$連接风宁,生成唯一的 _id 值
舉個(gè)"栗子"
準(zhǔn)備 CloudCanal
- 如沒(méi)有安裝 CloudCanal,請(qǐng)參考《CloudCanal安裝教程》安裝蛹疯。下面例子介紹如何創(chuàng)建一個(gè) MySQL->ElasticSearch 的遷移同步任務(wù)戒财。
添加數(shù)據(jù)源
- CloudCanal 支持 6.8 及以上版本 ES,我們點(diǎn)擊 數(shù)據(jù)源管理->新增數(shù)據(jù)源 添加 ES 數(shù)據(jù)源
1048936c-46bb-4495-b33f-6bbdece681ba-image.png - 填寫(xiě)必要 host 信息后點(diǎn)擊 新增數(shù)據(jù)源
2c28c66a-6392-4994-a98d-e4dd3a672c98-image.png
創(chuàng)建任務(wù)
- 點(diǎn)擊任務(wù)管理捺弦,選擇創(chuàng)建任務(wù)
8637011b-9477-45d1-b9c5-f2e166bed7d0-image.png
數(shù)據(jù)源設(shè)置
- 勾選源端和目標(biāo)端數(shù)據(jù)庫(kù)饮寞,并且選擇相應(yīng)的數(shù)據(jù)庫(kù)
deb89653-e04d-430a-b6c6-1a27d0d785df-image.png
功能配置
- 選擇數(shù)據(jù)同步,并勾選數(shù)據(jù)初始化(帶全量遷移)
450e225c-db1b-477f-8a81-bd5c5e8ea87e-image.png
表&ACTION過(guò)濾
-
此處可以進(jìn)行的操作主要是:
- 勾選需要訂閱的表
- 選擇需要映射的索引(支持映射已經(jīng)存在的索引)
- 勾選 IUD 過(guò)濾
- 批量設(shè)置分片數(shù)
tips: CloudCanal的結(jié)構(gòu)遷移支持自動(dòng)幫用戶(hù)按照源端表結(jié)構(gòu)創(chuàng)建索引
數(shù)據(jù)處理
-
本頁(yè)面提供的主要能力有:
- 列裁剪設(shè)置(包括批量篩選和設(shè)置)
- 設(shè)置源端where過(guò)濾條件
- 索引設(shè)置
- 分詞器設(shè)置
- 列映射(如果同步的是已經(jīng)存在的索引列吼,支持列映射)
創(chuàng)建確認(rèn)
- 最后一步幽崩,確認(rèn)創(chuàng)建內(nèi)容無(wú)誤后點(diǎn)擊確認(rèn)創(chuàng)建。
e308cb9d-0016-41d1-982a-84f742b4a12f-image.png
查看任務(wù)狀態(tài)
- 回到 CloudCanal 控制臺(tái)寞钥,刷新并查看任務(wù)實(shí)時(shí)狀態(tài)慌申,從結(jié)構(gòu)遷移、數(shù)據(jù)初始化理郑,到數(shù)據(jù)同步蹄溉。
253e90e4-6d8e-41c4-b421-eb95a0f73d9f-image.png - 登錄 ES Kibana 控制臺(tái),查看遷移同步過(guò)去的結(jié)構(gòu)和數(shù)據(jù)您炉。
9ddba516-afa8-4d9b-aeec-f64a1485f3ef-image.png
總結(jié)
本文簡(jiǎn)單介紹了如何使用 CloudCanal 快速構(gòu)建 MySQL->ElasticSearch 數(shù)據(jù)遷移同步鏈路柒爵,更多的源端和目標(biāo)端陸續(xù)開(kāi)放。各位小伙伴赚爵,如果覺(jué)得還不錯(cuò)棉胀,請(qǐng)點(diǎn)贊法瑟、評(píng)論加轉(zhuǎn)發(fā)吧。
更多精彩
- 5分鐘搞定-mysql-到-mysql-異構(gòu)-在線(xiàn)數(shù)據(jù)遷移同步
- mysql-到-elasticsearch-實(shí)時(shí)同步構(gòu)建數(shù)據(jù)檢索服務(wù)的選型與思考
- 構(gòu)建基于kafka中轉(zhuǎn)的混合云在線(xiàn)數(shù)據(jù)生態(tài)-cloudcanal實(shí)戰(zhàn)
- mysql到clickhouse實(shí)時(shí)同步-cloudcanal實(shí)戰(zhàn)
社區(qū)快訊
- 我們創(chuàng)建 CloudCanal 微信粉絲群啦唁奢,在里面霎挟,你可以得到最新版本發(fā)布信息和資源鏈接,你能看到其他用戶(hù)一手評(píng)測(cè)驮瞧、使用情況氓扛,你更能得到熱情的問(wèn)題解答,當(dāng)然你還可以給我們提需求和問(wèn)題论笔〔衫桑快快加入吧。
CloudCanal-免費(fèi)好用的企業(yè)級(jí)數(shù)據(jù)同步工具狂魔,歡迎品鑒蒜埋。
了解更多產(chǎn)品可以查看官方網(wǎng)站: http://www.clougence.com
CloudCanal社區(qū):https://www.askcug.com/