背景
之前介紹了彩虹橋的mysql冗餘功能,以及快取同步功能,最近老顧又把es同步進行了上線,大家可以升級1。2。0版本即可。
下面我們就簡單介紹一下
Es同步,主要功能就是把mysql的資料同步到es中;只需要簡單的配置即可
ES目標源
型別
:指定為es
伺服器地址
:連結es伺服器的地址
連結配置
:代表連結es的配置,配置格式(k1=v1;k2=v2);沒有使用者名稱和密碼時,可不需要配置username=elastic;password=elastic;案例如下:
connectTimeOut=3000;socketTimeOut=3000;connectionRequestTimeOut=3000;maxConnectCount=100;maxConnectPerRoute=10;keepAliveMinutes=10
es版本
:連結es伺服器的es版本,目的只是說明而已,可以不填寫
Es任務規則
如下新增es任務規則
父子文件配置
索引格式:
資料同步哪一個index索引中,支援freemarker
id格式:
index文件的唯一id,支援freemarker
同步模式:
0:索引更新sql模式(執行sql語句,獲得es屬性)),1:索引更新canal模式(直接從binlog屬性中獲取)
sql模式針對負責需求,需要關聯其他表時用到
欄位對映:
canal模式時有效,json格式,對映es和db的屬性欄位,格式{k1:v1, k2:v2} k1=v1(es屬性=db列)
sql語句:
sql模式時有效,sql格式,有事件時執行sql,變數用?代替
sql欄位:
sql模式時有效,sql格式中?對應的值,(以#@#隔開)
sqlNull欄位:
sql模式時有效,如果sql執行結果為空是,需要清理的esFiled(逗號隔開)
欄位型別:
欄位的型別(k1=v1 以#@#隔開)(表示:es欄位名=欄位型別)\n型別有 int、date、string、array、json、decimal\n如:\nF1=array; 陣列格式 array+值分隔符(1個字元)+值型別(int,decimal,string;預設不寫為string), 配合 group_concat 字元; 代表值以;隔開\nF1=json json物件
忽略欄位:
跳過忽略此欄位(es屬性),不需要把此es屬性更新進去(F1,F2以逗號隔開)
文件型別:
0:普通文件,1:父文件,2:子文件
父子關聯名:
父子文件時有效,父子關聯健名(父子文件有效),如:join_field
文件關聯名:
父子文件時有效,文件關聯名(父子文件有效),如:父:question,子:answer
子文件路由:
子文件的route格式(父子文件有效)支援freemarker
子文件的父Id:
子文件的parent格式(父子文件有效)支援freemarker
刪除策略:
0:根據index和id模板刪除索引,1:sql模式有效,執行sql模板,更新索引
開源專案地址:
https://gitee。com/gujiachun/bridge
https://github。com/gujiachun/bridge。git