0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分庫分表后復(fù)雜查詢的應(yīng)對(duì)之道:基于DTS實(shí)時(shí)性ES寬表構(gòu)建技術(shù)實(shí)踐

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2024-06-25 18:30 ? 次閱讀

1 問題域

業(yè)務(wù)發(fā)展的初期,我們的數(shù)據(jù)庫架構(gòu)往往是單庫單表,外加讀寫分離來快速的支撐業(yè)務(wù),隨著用戶量和訂單量的增加,數(shù)據(jù)庫的計(jì)算和存儲(chǔ)往往會(huì)成為我們系統(tǒng)的瓶頸,業(yè)界的實(shí)踐多數(shù)采用分而治之的思想:分庫分表,通過分庫分表應(yīng)對(duì)存系統(tǒng)讀寫性能瓶頸和存儲(chǔ)瓶頸;分庫分表幫我們解決問題的同時(shí),也帶來了復(fù)雜性;比如多條件的分頁查詢,多條件的聯(lián)表查詢變得復(fù)雜起來,通過調(diào)研我們發(fā)現(xiàn)針對(duì)這些分頁,聯(lián)表的復(fù)雜查詢,業(yè)界常用的解決方案有以下兩種:1 構(gòu)建ES寬表2 構(gòu)建查詢條件到表主鍵Mapping映射表;本表文章介紹我們的實(shí)踐:基于公司的中間件DTS構(gòu)建實(shí)時(shí)性的ES寬表。所謂的寬表是通過主鍵將多張表關(guān)聯(lián)成一張表,比如訂單維度的寬表字段包含:訂單主表,訂單明細(xì)表,商品表,用戶表等表字段。

2 ES寬表構(gòu)建解決方案域

2.1 同步雙寫

應(yīng)用在接收到寫請(qǐng)求后,同步寫DB成功,然后再同步寫ES。

wKgaomZ46VSARYbuAAEsDHV9EYQ944.png

2.2 異步雙寫

應(yīng)用在接收到寫請(qǐng)求后,同步寫DB成功,異步發(fā)送MQ,消費(fèi)MQ異步寫ES。

wKgZomZ46VaATINWAAGJPtL6buw874.png

2.3 基于Binlog的實(shí)時(shí)同步

2.3.1 Binlog作為消息

將Binlog作為消息,或者驅(qū)動(dòng)的Event,接收到消息后,RPC調(diào)取下游的業(yè)務(wù)系統(tǒng),獲取業(yè)務(wù)數(shù)據(jù)進(jìn)行數(shù)組的組裝,寫入ES。

wKgaomZ46VaAQNPMAAHeWov5JMY706.png

2.3.2 Binlog作為數(shù)據(jù)

解析Binlog中的數(shù)據(jù),獲取庫表,字段變更前后的內(nèi)容,INSERT, UPDATE, DELETE事件,基于Binlog中的數(shù)據(jù)去構(gòu)建寬表,寫入ES。

wKgZomZ46ViActtsAAHxEFS-Njs358.png

3 解決方案優(yōu)缺點(diǎn)對(duì)比

wKgaomZ46VmAa9nyAAKcmKZN5bQ547.png

4 我們的實(shí)踐

4.1 Binlog作為數(shù)據(jù)構(gòu)建ES寬表

wKgZomZ46VmAEqc5AAIIYQ1agrA414.png

4.1.1 順序性的保證

上游DTS監(jiān)聽的binlog是有序的;發(fā)送消息時(shí),業(yè)務(wù)方可以配置業(yè)務(wù)主鍵例如uep_order_no,DTS可以根據(jù)業(yè)務(wù)主鍵進(jìn)行hash,將該條消息發(fā)送到對(duì)應(yīng)的隊(duì)列保證局部有序性;消費(fèi)者消費(fèi)時(shí),同一個(gè)訂單號(hào)uep_order_no映射到同一個(gè)分區(qū),保證順序消費(fèi);

4.1.2 冪等性的保證

DTS可以保證消息不丟失,但不保證消息不重復(fù),可能發(fā)送重復(fù)的消息需要業(yè)務(wù)方保證冪等性,

UPDATE/DELETE操作天然具有冪等性

INSERT操作在進(jìn)行操作前需要先判斷下數(shù)據(jù)是否存在,不存在則插入,存在則更新

4.1.3 數(shù)據(jù)一致性的保證

由于數(shù)據(jù)存儲(chǔ)在Mysql和ES兩種存儲(chǔ)媒介,可以采用定時(shí)任務(wù)對(duì)賬機(jī)制保證數(shù)據(jù)的一致性,如果數(shù)據(jù)不一致采用補(bǔ)償任務(wù)進(jìn)行補(bǔ)償操作

4.1.4 存量數(shù)據(jù)遷移

采用定時(shí)任務(wù)分頁將數(shù)據(jù)從Mysql遷移到ES

4.2 ES復(fù)雜檢索

4.2.1 檢索的分類

多條件的復(fù)雜查詢,采用Bool查詢;

wKgaomZ46VqAa9paAAL8ySW6B98056.png

4.2.2 查詢條件構(gòu)建

wKgaomZ46VuAcslwAAJpT5UGYrY310.png



審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • ES
    ES
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    20153
  • DTS
    DTS
    +關(guān)注

    關(guān)注

    1

    文章

    50

    瀏覽量

    16404
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3904

    瀏覽量

    65828
收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    便攜式經(jīng)濟(jì)型萬用常見疑問匯總

    上,與 SYN5684 系列相近,能夠?yàn)橛脩籼峁┚珳?zhǔn)的測(cè)量結(jié)果。而且,其智能算法還能對(duì)測(cè)量數(shù)據(jù)進(jìn)行實(shí)時(shí)校準(zhǔn)和優(yōu)化,進(jìn)一步提升測(cè)量的可靠。? (二)測(cè)量功能豐富嗎?? 這兩款萬用的測(cè)量功能十
    發(fā)表于 06-12 16:37

    智能觸屏萬用的科技優(yōu)勢(shì)在哪

    的設(shè)置與實(shí)時(shí)測(cè)量結(jié)果,大大提高了操作的便利和效率。 2.強(qiáng)大的數(shù)據(jù)處理能力:全自動(dòng)萬用內(nèi)置了高性能的處理器,具備強(qiáng)大的數(shù)據(jù)處理能力,能夠快速準(zhǔn)確地完成各種測(cè)量任務(wù),并對(duì)測(cè)量數(shù)據(jù)進(jìn)行實(shí)時(shí)
    發(fā)表于 06-12 16:34

    邊緣計(jì)算網(wǎng)關(guān)的實(shí)時(shí)監(jiān)控與預(yù)測(cè)維護(hù)都有哪些方面?適合哪些行業(yè)使用?

    邊緣計(jì)算網(wǎng)關(guān)的實(shí)時(shí)監(jiān)控與預(yù)測(cè)維護(hù)都有哪些方面?適合哪些行業(yè)使用? 有實(shí)施過得案例的介紹嗎? 深控技術(shù)的不需要點(diǎn)的邊緣計(jì)算網(wǎng)關(guān)如何?
    發(fā)表于 04-01 09:44

    Marvell展示2納米芯片3D堆疊技術(shù),應(yīng)對(duì)設(shè)計(jì)復(fù)雜性挑戰(zhàn)!

    隨著現(xiàn)代科技的迅猛發(fā)展,芯片設(shè)計(jì)面臨著前所未有的挑戰(zhàn)。特別是在集成電路(IC)領(lǐng)域,隨著設(shè)計(jì)復(fù)雜性的增加,傳統(tǒng)的光罩尺寸已經(jīng)成為制約芯片性能和功能擴(kuò)展的瓶頸。為了解決這一問題,3D堆疊技術(shù)應(yīng)運(yùn)而生
    的頭像 發(fā)表于 03-07 11:11 ?450次閱讀
    Marvell展示2納米芯片3D堆疊<b class='flag-5'>技術(shù)</b>,<b class='flag-5'>應(yīng)對(duì)</b>設(shè)計(jì)<b class='flag-5'>復(fù)雜性</b>挑戰(zhàn)!

    或許我們都被分庫約束了思維

    作者:張俊杰 概述 這篇文章沒什么太多的干貨,純純是一篇討論和思考帖。 從業(yè)數(shù)據(jù)庫領(lǐng)域三年有余了,從分庫中間件到數(shù)據(jù)庫團(tuán)隊(duì)內(nèi)核學(xué)到了很多東西。也接觸了很多項(xiàng)目,包括TiDB、Vitess
    的頭像 發(fā)表于 02-21 09:51 ?223次閱讀

    一種輕量方案-MyBatis攔截器實(shí)踐

    文章,將分享如何使用MyBatis攔截器低成本的提升數(shù)據(jù)庫穩(wěn)定性。 業(yè)界常見方案 針對(duì)冷數(shù)據(jù)多的大,常用的策略有以2種: 刪除/歸檔舊數(shù)據(jù)。 。 歸檔/刪除舊數(shù)據(jù) 定期將冷數(shù)據(jù)移動(dòng)到歸檔
    的頭像 發(fā)表于 01-23 17:38 ?376次閱讀

    芯片的失效分析與應(yīng)對(duì)方法

    在汽車、數(shù)據(jù)中心和人工智能等關(guān)鍵領(lǐng)域,半導(dǎo)體芯片的可靠成為系統(tǒng)穩(wěn)定運(yùn)行的核心要素。隨著技術(shù)發(fā)展,芯片面臨著更為復(fù)雜的使用環(huán)境與性能需求,其失效問題愈發(fā)凸顯。本文將深入探討芯片失效的根源,剖析芯片
    的頭像 發(fā)表于 12-20 10:02 ?2202次閱讀
    芯片的失效<b class='flag-5'>性</b>分析與<b class='flag-5'>應(yīng)對(duì)</b>方法

    深控技術(shù) “不需要點(diǎn)的工業(yè)網(wǎng)關(guān)” 在沖壓機(jī)上的應(yīng)用

    這款工業(yè)網(wǎng)關(guān)具有強(qiáng)大的功能,無需進(jìn)行復(fù)雜的點(diǎn)配置,就能自動(dòng)識(shí)別沖壓機(jī)的通信協(xié)議和數(shù)據(jù)格式。它能夠實(shí)時(shí)采集沖壓機(jī)的各種運(yùn)行數(shù)據(jù),包括壓力、行程、速度、溫度等關(guān)鍵參數(shù)。通過先進(jìn)的傳感器技術(shù)
    的頭像 發(fā)表于 10-24 10:34 ?408次閱讀

    一文弄懂實(shí)時(shí)動(dòng)態(tài)載波相位差技術(shù)和偽距差技術(shù)的區(qū)別

    在全球?qū)Ш叫l(wèi)星系統(tǒng)(GNSS)中,實(shí)時(shí)動(dòng)態(tài)載波相位差和偽距差是常見的兩種差定位技術(shù)。這兩種技術(shù)
    的頭像 發(fā)表于 09-13 11:14 ?1741次閱讀
    一文弄懂<b class='flag-5'>實(shí)時(shí)</b>動(dòng)態(tài)載波相位差<b class='flag-5'>分</b><b class='flag-5'>技術(shù)</b>和偽距差<b class='flag-5'>分</b><b class='flag-5'>技術(shù)</b>的區(qū)別

    如何利用IP查詢技術(shù)保護(hù)網(wǎng)絡(luò)安全?

    在數(shù)字化時(shí)代,企業(yè)網(wǎng)絡(luò)面臨著復(fù)雜多變的威脅與挑戰(zhàn)。因此,構(gòu)建一個(gè)穩(wěn)固的網(wǎng)絡(luò)安全體系至關(guān)重要。而IP查詢技術(shù),作為網(wǎng)絡(luò)安全防御體系中的一把利劍,正日益成為企業(yè)防范網(wǎng)絡(luò)風(fēng)險(xiǎn)的重要工具。 什
    的頭像 發(fā)表于 09-09 10:10 ?721次閱讀

    安科瑞導(dǎo)軌DDS/DTS/DTZ的都有哪些功能?

    ?安科瑞導(dǎo)軌DDS/DTS/DTZ具有多種功能,主要包括計(jì)量功能、顯示功能、參數(shù)設(shè)置功能、通訊功能以及電能脈沖輸出功能。?
    的頭像 發(fā)表于 09-07 10:40 ?571次閱讀
    安科瑞導(dǎo)軌<b class='flag-5'>表</b>DDS/<b class='flag-5'>DTS</b>/DTZ的都有哪些功能?

    軟件系統(tǒng)數(shù)據(jù)庫的分庫設(shè)計(jì)

    的分布式集群,實(shí)現(xiàn)分庫表功能,解決數(shù)據(jù)庫中海量數(shù)據(jù)存儲(chǔ)和查詢性能的問題。MyCat 還是一個(gè)數(shù)據(jù)庫的集群中間件,主要實(shí)現(xiàn) RDBMS 數(shù)據(jù)庫集群的故障轉(zhuǎn)移、負(fù)載均衡、讀寫分離等功能。 MyCat 的關(guān)鍵
    的頭像 發(fā)表于 08-22 11:39 ?549次閱讀
    軟件系統(tǒng)數(shù)據(jù)庫的<b class='flag-5'>分庫</b><b class='flag-5'>分</b><b class='flag-5'>表</b>設(shè)計(jì)

    正弦波信號(hào)整流濾波,用萬用看到的是亂碼,為什么?

    一個(gè)正弦波信號(hào),整流濾波,用示波器觀察,電壓慢慢上升到平穩(wěn),用萬用看卻看到的是亂碼?不應(yīng)該看到直流電壓?jiǎn)??試了直接電?b class='flag-5'>分壓測(cè)到的電壓值是對(duì)的。請(qǐng)問如何用萬用看濾波
    發(fā)表于 08-19 07:06

    聚合物鋰電池型號(hào)及容量查詢

    聚合物鋰電池型號(hào)及容量查詢
    發(fā)表于 06-22 10:55 ?0次下載

    GPRS抄技術(shù)是什么?

    1.GPRS抄技術(shù)概述GPRS(GeneralPacketRadioService)抄是一種基于移動(dòng)通信網(wǎng)絡(luò)的遠(yuǎn)程抄技術(shù),它利用GPR
    的頭像 發(fā)表于 06-17 16:11 ?764次閱讀
    GPRS抄<b class='flag-5'>表</b><b class='flag-5'>技術(shù)</b>是什么?

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品