精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

    瀏覽量

    20034
  • DTS
    DTS
    +關注

    關注

    1

    文章

    50

    瀏覽量

    16080
  • 數據庫
    +關注

    關注

    7

    文章

    3766

    瀏覽量

    64277
收藏 人收藏

    評論

    相關推薦

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

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

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

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

    如何利用IP查詢技術保護網絡安全?

    在數字化時代,企業網絡面臨著復雜多變的威脅與挑戰。因此,構建一個穩固的網絡安全體系至關重要。而IP查詢技術,作為網絡安全防御體系中的一把利劍,正日益成為企業防范網絡風險的重要工具。 什
    的頭像 發表于 09-09 10:10 ?242次閱讀

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

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

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

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

    電能軟件是什么?

    1.電能軟件簡述電能軟件是當代電力系統中不可或缺的一部,它通過大數據技術性完成了遠
    的頭像 發表于 05-16 14:51 ?327次閱讀
    電能<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 ?546次閱讀
    MySQL聯<b class='flag-5'>表</b><b class='flag-5'>查詢</b>優化

    采用Impedance Track? 技術量程電量監測計BQ34Z100數據

    電子發燒友網站提供《采用Impedance Track? 技術量程電量監測計BQ34Z100數據.pdf》資料免費下載
    發表于 03-21 09:35 ?0次下載
    采用Impedance Track? <b class='flag-5'>技術</b>的<b class='flag-5'>寬</b>量程電量監測計BQ34Z100數據<b class='flag-5'>表</b>

    靜電ESD整改實踐:從基礎到高級的應對策略?

    靜電ESD整改實踐:從基礎到高級的應對策略?|深圳比創達電子EMC
    的頭像 發表于 02-19 14:41 ?751次閱讀
    靜電ESD整改<b class='flag-5'>實踐</b>:從基礎到高級的<b class='flag-5'>應對</b>策略?

    什么是DTS?簡單認識DTS技術

    今天我們來聊一聊車規模塊中的一種芯片表面互連技術--Die Top System, DTS
    的頭像 發表于 01-02 09:51 ?5956次閱讀
    什么是<b class='flag-5'>DTS</b>?簡單認識<b class='flag-5'>DTS</b><b class='flag-5'>技術</b>

    SQL改寫消除相關子查詢實踐

    GaussDB (DWS) 根據子查詢在 SQL 語句中的位置把子查詢分成了子查詢、子鏈接兩種形式。
    的頭像 發表于 12-27 09:51 ?473次閱讀