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

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

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

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

MySQL數(shù)據(jù)如何同步Elasticsearch

數(shù)據(jù)分析與開發(fā) ? 來源:三分惡 ? 2023-03-24 13:44 ? 次閱讀

今天給大家分享一個(gè)電商中常見的場(chǎng)景——MySQL數(shù)據(jù)如何同步Elasticsearch。

商品檢索

大家應(yīng)該都在各種電商網(wǎng)站檢索過商品,檢索商品一般都是通過什么實(shí)現(xiàn)呢?搜索引擎Elasticsearch。

那么問題來了,商品上架,數(shù)據(jù)一般寫入到MySQL的數(shù)據(jù)庫中,那么用于檢索的數(shù)據(jù)又是怎么同步到Elasticsearch的呢?

dbbbef2c-c9fc-11ed-bfe3-dac502259ad0.png

MySQL同步ES

1.同步雙寫

這是能想到的最直接的方式,在寫入MySQL,直接也同步往ES里寫一份數(shù)據(jù)。

dbcee3fc-c9fc-11ed-bfe3-dac502259ad0.png

同步雙寫

對(duì)于這種方式:

優(yōu)點(diǎn):實(shí)現(xiàn)簡(jiǎn)單

缺點(diǎn):

業(yè)務(wù)耦合,商品的管理中耦合大量數(shù)據(jù)同步代碼

影響性能,寫入兩個(gè)存儲(chǔ),響應(yīng)時(shí)間變長(zhǎng)

不便擴(kuò)展:搜索可能有一些個(gè)性化需求,需要對(duì)數(shù)據(jù)進(jìn)行聚合,這種方式不便實(shí)現(xiàn)

2.異步雙寫

我們也很容易想到異步雙寫的辦法,上架商品的時(shí)候,先把商品數(shù)據(jù)丟進(jìn)MQ,為了解耦合,我們一般會(huì)拆分一個(gè)搜索服務(wù),由搜索服務(wù)去訂閱商品變動(dòng)的消息,來完成同步。

dbe1035c-c9fc-11ed-bfe3-dac502259ad0.png

異步雙寫

前面說的,一些數(shù)據(jù)需要聚合處理成類似寬表的結(jié)構(gòu)怎么辦呢?例如商品庫的商品品類、spu、sku表是分開的,但是查詢是跨維度的,在ES里再聚合一次效率就低一些,最好就是把商品的數(shù)據(jù)給聚合起來,在ES里以類似大寬表的形式存儲(chǔ),這樣一來查詢效率就高一些。

dbf10a4a-c9fc-11ed-bfe3-dac502259ad0.png

多維度多條件查詢

這種其實(shí)沒什么好辦法,基本上還是得搜索服務(wù)直接查庫,或者遠(yuǎn)程調(diào)用,再查詢一遍商品的數(shù)據(jù)庫,就是所謂的回查。

dc294ea0-c9fc-11ed-bfe3-dac502259ad0.png

回查完成聚合

這種方式:

優(yōu)點(diǎn):

解耦合,商品服務(wù)無需關(guān)注數(shù)據(jù)同步

實(shí)時(shí)性較好,使用MQ,正常情況下,同步完成在秒級(jí)

缺點(diǎn):

引入了新的組件和服務(wù),增加了復(fù)雜度

3.定時(shí)任務(wù)

假如我們要快速搞搞,數(shù)據(jù)量有沒那么大,怎么辦呢?定時(shí)任務(wù)也可以。

dc3c8eb6-c9fc-11ed-bfe3-dac502259ad0.png

定時(shí)任務(wù)

定時(shí)任務(wù),最麻煩的一點(diǎn)是頻率不好選,頻率高的話,會(huì)非自然地形成業(yè)務(wù)的波峰,導(dǎo)致存儲(chǔ)的CPU、內(nèi)存占用波峰式上升,頻率低的話實(shí)時(shí)性比較差,而且也有波峰的情況。

這種方式:

優(yōu)點(diǎn):實(shí)現(xiàn)比較簡(jiǎn)單

缺點(diǎn):

實(shí)時(shí)性難以保證

對(duì)存儲(chǔ)壓力較大

4.數(shù)據(jù)訂閱

還有一種方式,就是最時(shí)興的數(shù)據(jù)訂閱。

MySQL通過binlog訂閱實(shí)現(xiàn)主從同步,各路數(shù)據(jù)訂閱框架比如canal就依據(jù)這個(gè)原理,將client組件偽裝成從庫,來實(shí)現(xiàn)數(shù)據(jù)訂閱。

dc4cad78-c9fc-11ed-bfe3-dac502259ad0.png

MySQL主從同步

我們以應(yīng)用最廣泛的canal為例,canal通過canal-adapter,支持多種適配器,其中就有ES適配器,通過一些配置,啟動(dòng)之后,就可以直接把MySQL數(shù)據(jù)同步到ES,這個(gè)過程是零代碼的。

dc61bd1c-c9fc-11ed-bfe3-dac502259ad0.png

canal同步數(shù)據(jù)

但是,和老板了解過,使用canal看起來很美好,幫我們把同步的事情都干了,但其實(shí),還是要寫代碼。為什么呢?

前面提到的多張表數(shù)據(jù)聚合,canal的支持沒那么好,所以還是得回查。這時(shí)候用canal-adapter就不合適了,需要自己實(shí)現(xiàn)canal-client,監(jiān)聽和聚合數(shù)據(jù),寫入ES:

dc75472e-c9fc-11ed-bfe3-dac502259ad0.png

數(shù)據(jù)訂閱+回查

這種看起來和異步雙寫比較像,但是第一降低了商品服務(wù)的耦合,第二數(shù)據(jù)的實(shí)時(shí)性更好。

所以使用數(shù)據(jù)訂閱:

優(yōu)點(diǎn):

業(yè)務(wù)入侵較少

實(shí)時(shí)性較好

至于數(shù)據(jù)訂閱框架的選型,主流的大體上是這些:

Cancal Maxwell Python-Mysql-Rplication
開源方 阿里巴巴 Zendesk 社區(qū)
開發(fā)語言 Java Java Python
活躍度 活躍 活躍 活躍
高可用 支持 支持 不支持
客戶端 Java/Go/PHP/Python/Rust Python
消息落地 Kafka/RocketMQ 等 Kafka/RabbitNQ/Redis 等 自定義
消息格式 自定義 JSON 自定義
文檔詳略 詳細(xì) 詳細(xì) 詳細(xì)
Boostrap 不支持 支持 不支持

除了MySQL同步ES,MySQL同步到其它的數(shù)據(jù)存儲(chǔ),例如HBase,其實(shí)大體上都是類似的幾種方法。






審核編輯:劉清

聲明:本文內(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)投訴
  • 適配器
    +關(guān)注

    關(guān)注

    8

    文章

    1972

    瀏覽量

    68261
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    829

    瀏覽量

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

    關(guān)注

    0

    文章

    96

    瀏覽量

    9453

原文標(biāo)題:MySQL數(shù)據(jù)同步ES的4種解決方案!

文章出處:【微信號(hào):DBDevs,微信公眾號(hào):數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    從Delphi、C++ Builder和Lazarus連接到MySQL數(shù)據(jù)

    ? 從 Delphi、C++ Builder 和 Lazarus 連接到 MySQL 數(shù)據(jù)MySQL 數(shù)據(jù)訪問組件(MyDAC)是一個(gè)組件庫,提供從 Delphi 和 C++ Bu
    的頭像 發(fā)表于 01-20 13:47 ?121次閱讀
    從Delphi、C++ Builder和Lazarus連接到<b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)</b>庫

    使用插件將Excel連接到MySQL/MariaDB

    ,可以快速地將數(shù)據(jù)MySQL 或 MariaDB 加載到 Excel,立即從數(shù)據(jù)庫刷新 Excel 工作簿中的數(shù)據(jù),編輯這些數(shù)據(jù),并將它
    的頭像 發(fā)表于 01-20 12:38 ?120次閱讀
    使用插件將Excel連接到<b class='flag-5'>MySQL</b>/MariaDB

    適用于MySQL和MariaDB的Python連接器:可靠的MySQL數(shù)據(jù)連接器和數(shù)據(jù)

    和 Linux 的 wheel 包分發(fā)。 直接連接 該解決方案使您能夠通過 TCP/IP 建立與 MySQL 或者 MariaDB 數(shù)據(jù)庫服務(wù)器的直接連接,而無需數(shù)據(jù)庫客戶端庫。另外直接連接可以提高 Python 應(yīng)用程
    的頭像 發(fā)表于 01-17 12:18 ?122次閱讀
    適用于<b class='flag-5'>MySQL</b>和MariaDB的Python連接器:可靠的<b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)</b>連接器和<b class='flag-5'>數(shù)據(jù)</b>庫

    如何在Linux環(huán)境下高效安裝部署和配置Elasticsearch

    /CentOS-7-x86_64-DVD-2009.iso elasticsearch-7.10.0-linux-x86_64.tar.gz https://www.elastic.co/cn/downloads/past-releases
    的頭像 發(fā)表于 01-16 11:49 ?258次閱讀

    MySQL數(shù)據(jù)庫的安裝

    MySQL數(shù)據(jù)庫的安裝 【一】各種數(shù)據(jù)庫的端口 MySQL :3306 Redis :6379 MongoDB :27017 Django :8000 flask :5000 【二】
    的頭像 發(fā)表于 01-14 11:25 ?131次閱讀
    <b class='flag-5'>MySQL</b><b class='flag-5'>數(shù)據(jù)</b>庫的安裝

    在華為云上通過 Docker 容器部署 Elasticsearch 并進(jìn)行性能評(píng)測(cè)

    運(yùn)行 Elasticsearch 查詢?cè)u(píng)測(cè) ? 5.2 查看評(píng)測(cè)結(jié)果 ? 5.3 調(diào)整并發(fā)請(qǐng)求和請(qǐng)求數(shù) ? 6. 總結(jié) ? 前言 隨著數(shù)據(jù)量的
    的頭像 發(fā)表于 01-13 13:36 ?110次閱讀
    在華為云上通過 Docker 容器部署 <b class='flag-5'>Elasticsearch</b> 并進(jìn)行性能評(píng)測(cè)

    構(gòu)建數(shù)據(jù)庫解決方案,基于華為云 Flexus X 實(shí)例容器化 MySQL 主從同步架構(gòu)

    前言**** 華為云 Flexus X 實(shí)例,融合柔性算力與智能調(diào)度,為數(shù)據(jù)庫解決方案帶來全新突破。采用容器化 MySQL 主從同步架構(gòu),實(shí)現(xiàn)數(shù)據(jù)高效備份與讀寫分離,保障業(yè)務(wù)連續(xù)性與
    的頭像 發(fā)表于 01-07 17:22 ?200次閱讀
    構(gòu)建<b class='flag-5'>數(shù)據(jù)</b>庫解決方案,基于華為云 Flexus X 實(shí)例容器化 <b class='flag-5'>MySQL</b> 主從<b class='flag-5'>同步</b>架構(gòu)

    數(shù)據(jù)數(shù)據(jù)恢復(fù)—Mysql數(shù)據(jù)庫表記錄丟失的數(shù)據(jù)恢復(fù)流程

    Mysql數(shù)據(jù)庫故障: Mysql數(shù)據(jù)庫表記錄丟失。 Mysql數(shù)據(jù)庫故障表現(xiàn): 1、
    的頭像 發(fā)表于 12-16 11:05 ?223次閱讀
    <b class='flag-5'>數(shù)據(jù)</b>庫<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)—<b class='flag-5'>Mysql</b><b class='flag-5'>數(shù)據(jù)</b>庫表記錄丟失的<b class='flag-5'>數(shù)據(jù)</b>恢復(fù)流程

    數(shù)據(jù)數(shù)據(jù)恢復(fù)—MYSQL數(shù)據(jù)庫ibdata1文件損壞的數(shù)據(jù)恢復(fù)案例

    mysql數(shù)據(jù)庫故障: mysql數(shù)據(jù)庫文件ibdata1、MYI、MYD損壞。 故障表現(xiàn):1、數(shù)據(jù)庫無法進(jìn)行查詢等操作;2、使用my
    的頭像 發(fā)表于 12-09 11:05 ?222次閱讀

    MySQL還能跟上PostgreSQL的步伐嗎

    Can MySQL Catch Up with PostgreSQL’s Momentum?[2] 譯者:馮若航[3],Vonng,Pigsty[4]?作者,PostgreSQL 大法師,數(shù)據(jù)庫老司機(jī),云計(jì)算泥石流。 MySQL
    的頭像 發(fā)表于 11-18 10:16 ?272次閱讀
    <b class='flag-5'>MySQL</b>還能跟上PostgreSQL的步伐嗎

    香港云服務(wù)器怎么部署MySQL數(shù)據(jù)庫?

    在香港云服務(wù)器上部署MySQL數(shù)據(jù)庫的步驟如下: 步驟 1: 更新軟件包列表 首先,確保軟件包列表是最新的。在終端中執(zhí)行以下命令: sudo apt update 步驟 2: 安裝 MySQL
    的頭像 發(fā)表于 11-14 16:15 ?229次閱讀

    Elasticsearch 再次開源

    Elasticsearch 和 Kibana 又可以被稱為開源了。很難表達(dá)這句話讓我有多高興。我激動(dòng)得簡(jiǎn)直要跳起來了。我們 Elastic 的所有人都是如此。開源是我的 DNA。這也是Elastic的DNA。能夠再次將 Elasticsearch 稱為開源,我感到非常高興
    的頭像 發(fā)表于 11-13 12:14 ?182次閱讀
    <b class='flag-5'>Elasticsearch</b> 再次開源

    適用于MySQL的dbForge架構(gòu)比較

    dbForge Schema Compare for MySQL 是一種工具,用于輕松有效地比較和部署 MySQL 數(shù)據(jù)庫結(jié)構(gòu)和腳本文件夾差異。該工具提供了 MySQL
    的頭像 發(fā)表于 10-28 09:41 ?258次閱讀
    適用于<b class='flag-5'>MySQL</b>的dbForge架構(gòu)比較

    全量+增量秒級(jí)更新!NineData輕松完成MySQL同步到StarRocks #數(shù)據(jù)庫#MySQL

    MYSQL數(shù)據(jù)
    數(shù)據(jù)庫小組
    發(fā)布于 :2024年08月09日 14:58:43

    MySQL的整體邏輯架構(gòu)

    支持多種存儲(chǔ)引擎是眾所周知的MySQL特性,也是MySQL架構(gòu)的關(guān)鍵優(yōu)勢(shì)之一。如果能夠理解MySQL Server與存儲(chǔ)引擎之間是怎樣通過API交互的,將大大有利于理解MySQL的核心
    的頭像 發(fā)表于 04-30 11:14 ?495次閱讀
    <b class='flag-5'>MySQL</b>的整體邏輯架構(gòu)
    主站蜘蛛池模板: 天天操中文字幕 | 久久黄色毛片 | 手机亚洲第1页 | 免费国产成人午夜私人影视 | 清纯漂亮小美女准备啪啪 | 精品免费视在线视频观看 | 国产伦精品一区二区三区女 | 关晓彤被调教出奶水的视频 | 黄色一级视频欧美 | 国产日本特黄特色大片免费视频 | 国模视频一区二区 | 亚洲女同一区二区 | 婷婷毛片 | 艹逼视频软件 | 国产欧美乱码在线看 | 国产伦精品一区二区三区网站 | 欧美午夜性刺激在线观看免费 | 四虎影视免费观看 | 亚洲 欧美 日韩 丝袜 另类 | 日本成人免费在线视频 | 激情五月深爱五月 | 色在线免费 | 九九九精品 | 亚洲黄网免费 | 国产精品久久久久久久免费 | 免费观看黄视频网站 | 性欧美护士18xxxxhd视频 | 婷婷开心激情网 | 赛罗奥特曼银河帝国普通话免费版 | 美女网站一区二区三区 | 婷婷色六月 | 久久久黄色大片 | 国模视频在线 | 日韩欧美成人乱码一在线 | 中国一级特黄aa毛片大片 | 午夜影院免费在线观看 | 关晓彤被调教出奶水的视频 | 国产伦一区二区三区免费 | 国产在线一卡二卡 | 天天插天天插天天插 | 国产精品主播在线 |