成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

分庫分表后復(fù)雜查詢:基于DTS實(shí)時(shí)性ES寬表構(gòu)建技術(shù)實(shí)踐

數(shù)據(jù)庫 其他數(shù)據(jù)庫
基于公司的中間件DTS構(gòu)建實(shí)時(shí)性的ES寬表。所謂的寬表是通過主鍵將多張表關(guān)聯(lián)成一張表,比如訂單維度的寬表字段包含:訂單主表,訂單明細(xì)表,商品表,用戶表等表字段。

1 問題域

業(yè)務(wù)發(fā)展的初期,我們的數(shù)據(jù)庫架構(gòu)往往是單庫單表,外加讀寫分離來快速的支撐業(yè)務(wù),隨著用戶量和訂單量的增加,數(shù)據(jù)庫的計(jì)算和存儲(chǔ)往往會(huì)成為我們系統(tǒng)的瓶頸,業(yè)界的實(shí)踐多數(shù)采用分而治之的思想:分庫分表,通過分庫分表應(yīng)對存系統(tǒng)讀寫性能瓶頸和存儲(chǔ)瓶頸;分庫分表幫我們解決問題的同時(shí),也帶來了復(fù)雜性;比如多條件的分頁查詢,多條件的聯(lián)表查詢變得復(fù)雜起來,通過調(diào)研我們發(fā)現(xiàn)針對這些分頁,聯(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)用在接收到寫請求后,同步寫DB成功,然后再同步寫ES。

2.2 異步雙寫

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

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。

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

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

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

4 我們的實(shí)踐

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

4.1.1 順序性的保證

上游DTS監(jiān)聽的binlog是有序的;發(fā)送消息時(shí),業(yè)務(wù)方可以配置業(yè)務(wù)主鍵例如uep_order_no,DTS可以根據(jù)業(yè)務(wù)主鍵進(jìn)行hash,將該條消息發(fā)送到對應(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ù)對賬機(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查詢;

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


責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2019-11-12 09:54:20

分庫分表數(shù)據(jù)

2024-07-26 00:16:11

2022-09-26 08:28:22

分庫分表數(shù)據(jù)

2024-01-03 08:14:33

GreatSQLMyCat庫名字

2025-04-03 09:39:14

2024-11-22 15:32:19

2020-07-30 17:59:34

分庫分表SQL數(shù)據(jù)庫

2021-05-08 18:50:57

分庫分表中間件

2020-11-18 09:39:02

MySQL數(shù)據(jù)庫SQL

2021-08-31 20:21:11

VitessMySQL分庫

2019-01-29 15:25:11

阿里巴巴數(shù)據(jù)庫分庫分表

2023-08-11 08:59:49

分庫分表數(shù)據(jù)數(shù)據(jù)庫

2020-07-28 09:04:09

NewSQL分庫分表

2021-01-26 05:37:08

分庫分表內(nèi)存

2022-07-11 08:16:47

NewSQL關(guān)系數(shù)據(jù)庫系統(tǒng)

2025-04-01 08:45:00

2022-10-11 17:51:49

分庫分表數(shù)據(jù)庫

2020-05-25 09:39:10

Elasticsear查詢分庫分表

2020-12-29 09:23:40

分庫分表訂單

2024-01-17 14:42:24

分庫分表數(shù)據(jù)庫數(shù)據(jù)分片
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美国产日韩一区二区三区 | 亚洲欧洲精品在线 | 国产午夜精品久久久久免费视高清 | 日韩在线大片 | 日韩在线精品视频 | 国产精品成人在线播放 | 黄色国产在线视频 | 欧美精品久久久 | 免费黄色的视频 | 久久国产精品一区二区三区 | 免费黄色成人 | 国产精品久久久久无码av | 国产91在线 | 亚洲 | 免费久| 国产成人精品在线播放 | 久久三级av | 91欧美精品成人综合在线观看 | 欧美日韩不卡在线 | 超碰成人在线观看 | 日本成人福利视频 | 欧美日韩精品在线一区 | 日韩中文字幕 | 91福利影院 | av片在线观看网站 | 九九精品在线 | 精品日韩一区二区 | 激情国产在线 | 日本不卡免费新一二三区 | 欧美精品在线一区 | 久久久久久久久久久久久9999 | 国际精品鲁一鲁一区二区小说 | 黄色一级免费看 | www.男人天堂.com | 婷婷亚洲综合 | 亚洲瑟瑟 | 欧美一区二区三区在线看 | 国产a一区二区 | 精品国产伦一区二区三区观看体验 | 日韩免费一二三区 | 在线看日韩 | 成人av在线播放 |