在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

分庫分表后復雜查詢的應對之道:基于DTS實時性ES寬表構建技術實踐

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

1 問題域

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

2 ES寬表構建解決方案域

2.1 同步雙寫

應用在接收到寫請求后,同步寫DB成功,然后再同步寫ES。

wKgaomZ46VSARYbuAAEsDHV9EYQ944.png

2.2 異步雙寫

應用在接收到寫請求后,同步寫DB成功,異步發送MQ,消費MQ異步寫ES。

wKgZomZ46VaATINWAAGJPtL6buw874.png

2.3 基于Binlog的實時同步

2.3.1 Binlog作為消息

將Binlog作為消息,或者驅動的Event,接收到消息后,RPC調取下游的業務系統,獲取業務數據進行數組的組裝,寫入ES。

wKgaomZ46VaAQNPMAAHeWov5JMY706.png

2.3.2 Binlog作為數據

解析Binlog中的數據,獲取庫表,字段變更前后的內容,INSERT, UPDATE, DELETE事件,基于Binlog中的數據去構建寬表,寫入ES。

wKgZomZ46ViActtsAAHxEFS-Njs358.png

3 解決方案優缺點對比

wKgaomZ46VmAa9nyAAKcmKZN5bQ547.png

4 我們的實踐

4.1 Binlog作為數據構建ES寬表

wKgZomZ46VmAEqc5AAIIYQ1agrA414.png

4.1.1 順序性的保證

上游DTS監聽的binlog是有序的;發送消息時,業務方可以配置業務主鍵例如uep_order_no,DTS可以根據業務主鍵進行hash,將該條消息發送到對應的隊列保證局部有序性;消費者消費時,同一個訂單號uep_order_no映射到同一個分區,保證順序消費;

4.1.2 冪等性的保證

DTS可以保證消息不丟失,但不保證消息不重復,可能發送重復的消息需要業務方保證冪等性,

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

INSERT操作在進行操作前需要先判斷下數據是否存在,不存在則插入,存在則更新

4.1.3 數據一致性的保證

由于數據存儲在Mysql和ES兩種存儲媒介,可以采用定時任務對賬機制保證數據的一致性,如果數據不一致采用補償任務進行補償操作

4.1.4 存量數據遷移

采用定時任務分頁將數據從Mysql遷移到ES

4.2 ES復雜檢索

4.2.1 檢索的分類

多條件的復雜查詢,采用Bool查詢;

wKgaomZ46VqAa9paAAL8ySW6B98056.png

4.2.2 查詢條件構建

wKgaomZ46VuAcslwAAJpT5UGYrY310.png



審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ES
    ES
    +關注

    關注

    0

    文章

    11

    瀏覽量

    20114
  • DTS
    DTS
    +關注

    關注

    1

    文章

    50

    瀏覽量

    16307
  • 數據庫
    +關注

    關注

    7

    文章

    3875

    瀏覽量

    65431
收藏 人收藏

    評論

    相關推薦

    邊緣計算網關的實時監控與預測維護都有哪些方面?適合哪些行業使用?

    邊緣計算網關的實時監控與預測維護都有哪些方面?適合哪些行業使用? 有實施過得案例的介紹嗎? 深控技術的不需要點的邊緣計算網關如何?
    發表于 04-01 09:44

    Marvell展示2納米芯片3D堆疊技術應對設計復雜性挑戰!

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

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

    作者:張俊杰 概述 這篇文章沒什么太多的干貨,純純是一篇討論和思考帖。 從業數據庫領域三年有余了,從分庫中間件到數據庫團隊內核學到了很多東西。也接觸了很多項目,包括TiDB、Vitess
    的頭像 發表于 02-21 09:51 ?165次閱讀

    一種輕量方案-MyBatis攔截器實踐

    文章,將分享如何使用MyBatis攔截器低成本的提升數據庫穩定性。 業界常見方案 針對冷數據多的大,常用的策略有以2種: 刪除/歸檔舊數據。 。 歸檔/刪除舊數據 定期將冷數據移動到歸檔
    的頭像 發表于 01-23 17:38 ?294次閱讀

    芯片的失效分析與應對方法

    在汽車、數據中心和人工智能等關鍵領域,半導體芯片的可靠成為系統穩定運行的核心要素。隨著技術發展,芯片面臨著更為復雜的使用環境與性能需求,其失效問題愈發凸顯。本文將深入探討芯片失效的根源,剖析芯片
    的頭像 發表于 12-20 10:02 ?1946次閱讀
    芯片的失效<b class='flag-5'>性</b>分析與<b class='flag-5'>應對</b>方法

    深控技術 “不需要點的工業網關” 在沖壓機上的應用

    這款工業網關具有強大的功能,無需進行復雜的點配置,就能自動識別沖壓機的通信協議和數據格式。它能夠實時采集沖壓機的各種運行數據,包括壓力、行程、速度、溫度等關鍵參數。通過先進的傳感器技術
    的頭像 發表于 10-24 10:34 ?334次閱讀

    一文弄懂實時動態載波相位差技術和偽距差技術的區別

    在全球導航衛星系統(GNSS)中,實時動態載波相位差和偽距差是常見的兩種差定位技術。這兩種技術
    的頭像 發表于 09-13 11:14 ?1505次閱讀
    一文弄懂<b class='flag-5'>實時</b>動態載波相位差<b class='flag-5'>分</b><b class='flag-5'>技術</b>和偽距差<b class='flag-5'>分</b><b class='flag-5'>技術</b>的區別

    安科瑞導軌DDS/DTS/DTZ的都有哪些功能?

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

    軟件系統數據庫的分庫設計

    的分布式集群,實現分庫表功能,解決數據庫中海量數據存儲和查詢性能的問題。MyCat 還是一個數據庫的集群中間件,主要實現 RDBMS 數據庫集群的故障轉移、負載均衡、讀寫分離等功能。 MyCat 的關鍵
    的頭像 發表于 08-22 11:39 ?458次閱讀
    軟件系統數據庫的<b class='flag-5'>分庫</b><b class='flag-5'>分</b><b class='flag-5'>表</b>設計

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

    一個正弦波信號,整流濾波,用示波器觀察,電壓慢慢上升到平穩,用萬用看卻看到的是亂碼?不應該看到直流電壓嗎?試了直接電阻壓測到的電壓值是對的。請問如何用萬用看濾波
    發表于 08-19 07:06

    聚合物鋰電池型號及容量查詢

    聚合物鋰電池型號及容量查詢
    發表于 06-22 10:55 ?0次下載

    GPRS抄技術是什么?

    1.GPRS抄技術概述GPRS(GeneralPacketRadioService)抄是一種基于移動通信網絡的遠程抄技術,它利用GPR
    的頭像 發表于 06-17 16:11 ?631次閱讀
    GPRS抄<b class='flag-5'>表</b><b class='flag-5'>技術</b>是什么?

    電能軟件是什么?

    1.電能軟件簡述電能軟件是當代電力系統中不可或缺的一部,它通過大數據技術性完成了遠
    的頭像 發表于 05-16 14:51 ?554次閱讀
    電能<b class='flag-5'>表</b>抄<b class='flag-5'>表</b>軟件是什么?

    雙22輸入AND OR反相門數據

    電子發燒友網站提供《雙22輸入AND OR反相門數據.pdf》資料免費下載
    發表于 05-15 10:01 ?0次下載
    雙2<b class='flag-5'>寬</b>2輸入AND OR反相門數據<b class='flag-5'>表</b>

    MySQL聯查詢優化

    使用顯示連接left join(right join,inner join),盡量避免隱式連接(where逗號連接 .... and .... and ...)這類寫法,假設三張每張有一千
    的頭像 發表于 04-24 12:33 ?742次閱讀
    MySQL聯<b class='flag-5'>表</b><b class='flag-5'>查詢</b>優化
    主站蜘蛛池模板: 日本不卡免费高清一级视频 | 国语自产免费精品视频一区二区 | 精品国产自在在线在线观看 | 一级做a爰片久久免费 | 高清一级片 | 天堂在线观看中文字幕 | 国模精品 | 欧美日本俄罗斯一级毛片 | 奇米欧美 | 国产片一级aaa毛片视频 | 亚洲第一视频在线播放 | 欧美一区二区三区性 | bt种子在线www天堂官网 | 亚洲一区二区三区麻豆 | 欧美男女交性过程视频 | 久久国产成人精品国产成人亚洲 | 夜夜夜爽 | 成人免费看片视频色多多 | 午夜久久久久久 | 老色皮 | 中文字幕有码视频 | 高清成年美女黄网站色大 | 午夜免费一级片 | 午夜视频一区 | 甘婷婷一级毛片免费看 | 日韩一级黄色录像 | 种子 在线播放 | 欧美天天干 | 最近国语剧情视频在线观看 | 婷婷五月小说 | 夜夜操网站 | 色播在线永久免费视频网站 | 欧美日韩性猛交xxxxx免费看 | 国产日日干 | 成年人在线网站 | 久久精品国产精品亚洲红杏 | 性欧美大战久久久久久久野外 | 69xx女xo69| 久久久久久久网站 | 国产成年女一区二区三区 | 成人性欧美丨区二区三区 |