卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

mysql兩個(gè)庫(kù)之間表數(shù)據(jù)同步 將SQLServer數(shù)據(jù)同步到MySQL用什么方法?

在至于ES,我還沒(méi)有 沒(méi)有在實(shí)際項(xiàng)目中應(yīng)用過(guò)(我自己學(xué)過(guò),沒(méi)有 t沒(méi)經(jīng)過(guò)實(shí)戰(zhàn));我們的項(xiàng)目使用MongoDB;由于項(xiàng)目的特殊性,我們研究了很多關(guān)于A-gtB的數(shù)據(jù)同步方案,包括DB2/Mysql到Mo

至于ES,我還沒(méi)有 沒(méi)有在實(shí)際項(xiàng)目中應(yīng)用過(guò)(我自己學(xué)過(guò),沒(méi)有 t沒(méi)經(jīng)過(guò)實(shí)戰(zhàn));我們的項(xiàng)目使用MongoDB;由于項(xiàng)目的特殊性,我們研究了很多關(guān)于A-gtB的數(shù)據(jù)同步方案,包括DB2/Mysql到MongoDB,MongoDB到MongoDB等等。

將MySQL數(shù)據(jù)同步到es的方案將MySQL數(shù)據(jù)實(shí)時(shí)同步到ES,可以實(shí)現(xiàn)ES中的低延遲檢索。有的公司為自己的項(xiàng)目做了子庫(kù),可以設(shè)置一套es來(lái)放所有的數(shù)據(jù)(或者所有數(shù)據(jù)的某些字段,達(dá)到全檢索的效果)。常用的數(shù)據(jù)同步方案如下:

MySQL Binlog:MySQL Binlog日志可以用于數(shù)據(jù)庫(kù)的主從復(fù)制和數(shù)據(jù)恢復(fù),也可以將MySQL數(shù)據(jù)同步到ES;這里需要注意的是,Binlog的日志模式只能使用行模式(另外兩種模式是語(yǔ)句和混合);解析Binlog日志的內(nèi)容,執(zhí)行ES文檔API,這樣數(shù)據(jù)就可以同步到ES中;

MySQL dump:如果是新建項(xiàng)目,使用Binlog進(jìn)行數(shù)據(jù)同步是沒(méi)有問(wèn)題的。但是如果MySQL已經(jīng)運(yùn)行了一段時(shí)間,項(xiàng)目架構(gòu)中加入了ES,那么歷史數(shù)據(jù)的遷移就需要額外的處理,因?yàn)锽inlog可能已經(jīng)被覆蓋了。此時(shí)可以通過(guò)mysqldump導(dǎo)出已有數(shù)據(jù),然后使用Binlog來(lái)同步歷史數(shù)據(jù)。

開(kāi)源工具:前兩種方法都是數(shù)據(jù)庫(kù)日志級(jí)別的,我們也可以使用一些開(kāi)源工具,比如Go-Go-MySQL-elastic search;;它可以幫助我們完成第一次完全數(shù)據(jù)同步和后續(xù)的增量數(shù)據(jù)同步(底層也是解析Binlog日志);或者mypipe,支持解析Binlog日志的內(nèi)容并推送到Kafka。如果要把它們寫(xiě)入ES,就需要額外編寫(xiě)代碼,從Kafka消費(fèi)數(shù)據(jù),寫(xiě)入ES。

如上所述,我們項(xiàng)目中的實(shí)現(xiàn)方案是將關(guān)系數(shù)據(jù)庫(kù)DB2/Mysql中的數(shù)據(jù)同步到MongoDB,Mysql仍然可以使用Binlog日志。很難實(shí)現(xiàn)DB2想要實(shí)時(shí)通知發(fā)生變化的數(shù)據(jù)(向DB2服務(wù)器寫(xiě)程序時(shí),需要關(guān)聯(lián)數(shù)據(jù)庫(kù),當(dāng)數(shù)據(jù)發(fā)生變化時(shí),程序會(huì)向外圍系統(tǒng)發(fā)送MQ通知),不考慮性能是否能得到保證,也就是說(shuō), "編寫(xiě)一個(gè)通知程序,并將其部署到數(shù)據(jù)庫(kù)所在的服務(wù)器上(侵入式)",這至少在我們公司是不可能的。

我們采用一種很低級(jí)的來(lái)解決這個(gè)問(wèn)題,即Java程序掃描DB2表中的時(shí)間戳,讀取最近發(fā)生變化的數(shù)據(jù),處理到MongoDB中;

雖然實(shí)現(xiàn)方案比較低,但是效果還不錯(cuò),因?yàn)樵陉P(guān)系型數(shù)據(jù)到MongoDB的數(shù)據(jù)同步過(guò)程中,我們可以自己做數(shù)據(jù)處理;相當(dāng)于按照某個(gè)數(shù)據(jù)維度,比如客戶(hù)維度,關(guān)聯(lián)了幾十個(gè)表,處理后在MongoDB中保存一個(gè)文檔;對(duì)外提供服務(wù)時(shí),查詢(xún)效率明顯提高,因?yàn)樘崆巴瓿闪吮黻P(guān)聯(lián)(接口響應(yīng)多為毫秒級(jí),即使超過(guò)50ms也會(huì)很慢)。

缺點(diǎn)也很明顯。數(shù)據(jù)從關(guān)系數(shù)據(jù)庫(kù)到MongoDB的延遲非常高,我們的項(xiàng)目經(jīng)過(guò)幾次優(yōu)化后需要20分鐘左右。所以一定要結(jié)合業(yè)務(wù)場(chǎng)景考慮是否使用這個(gè)方案。

我會(huì)繼續(xù)分享我對(duì)Java開(kāi)發(fā)、架構(gòu)設(shè)計(jì)、程序員職業(yè)發(fā)展等方面的看法,希望得到大家的關(guān)注。