精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MySQL 同步 ES 實戰,肝到爆!

數據庫 其他數據庫
基本是手把手教你如何將 MySQL 同步到 ES,不僅是增量同步,還包括全量同步,如果你的項目也需要用到該場景,基本可以直接照搬。

大家好呀,我是樓仔。

技術是什么?就是拿來玩的,邊玩邊學,才能成長得更快。

之前已經給大家講解了 MySQL 同步 ES 的幾種方案,下面就教大家如何通過 Canal,將 MySQL 同步到 ES,文章內容絕對妥妥干貨!

本文會先講解需要用到的基礎知識,然后再是軟件安裝,最后就是實戰部分。

不 BB,上文章目錄:

圖片

01 基礎知識

1.1 主從復制原理

MySQL 的主從復制是依賴于 binlog,也就是記錄 MySQL 上的所有變化并以二進制形式保存在磁盤上二進制日志文件。

主從復制就是將 binlog 中的數據從主庫傳輸到從庫上,一般這個過程是異步的,即主庫上的操作不會等待 binlog 同步地完成。

圖片

詳細流程如下:

  1. 主庫寫 binlog:主庫的更新 SQL(update、insert、delete) 被寫到 binlog;
  2. 主庫發送 binlog:主庫創建一個 log dump 線程來發送 binlog 給從庫;
  3. 從庫寫 relay log:從庫在連接到主節點時會創建一個 IO 線程,以請求主庫更新的 binlog,并且把接收到的 binlog 信息寫入一個叫做 relay log 的日志文件;
  4. 從庫回放:從庫還會創建一個 SQL 線程讀取 relay log 中的內容,并且在從庫中做回放,最終實現主從的一致性。

1.2 Cannel 基礎

Canel 是一款常用的數據同步工具,其原理是基于 Binlog 訂閱的方式實現,模擬一個 MySQL Slave 訂閱 Binlog 日志,從而實現 CDC(Change Data Capture),將已提交的更改發送到下游。

主要流程如下:

  1. Canal 服務端向 MySQL 的 master 節點傳輸 dump 協議;
  2. MySQL 的 master 節點接收到 dump 請求后推送 Binlog 日志給 Canal 服務端,解析 Binlog 對象(原始為 byte 流)轉成 Json 格式;
  3. Canal 客戶端通過 TCP 協議或 MQ 形式監聽 Canal 服務端,同步數據到 ES。

圖片

下面是 Cannel 執行的核心流程,其中 Binlog Parser 主要負責 Binlog 的提取、解析和推送,EventSink 負責數據的過濾 、路由和加工,僅作了解即可。

圖片

02 軟件下載安裝

我的電腦是 Macos-x64,所以后面的軟件安裝,都是基于這個。

2.1 Java JDK

  • 官網:https://www.oracle.com/java/technologies/downloads/
  • JDK 版本:11.0.19

由于 Canal 和 ES 的安裝,都強依賴 JDK,所以這里有必要先說明。

圖片

前方高能,這里有坑!!!

如果你選的版本不對,ES 安裝可能會失敗,然后 Canal 同步數據到 ES 時,也會出現很多詭異的問題。

2.2 MySQL

MySQL 大家應該都安裝了,這里需要打開 MySQL 的 BinLog。

我是 Mac,主要新建一個 my.cnf 文件,然后再重啟 MySQL。

圖片

圖片

這里重啟 MySQL,我搞了半天,BinLog 開啟后,會看到 BinLog 日志。

圖片

然后需要創建一個賬號,賬號和密碼都是 Cannal,給后面 Canal 使用。

GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'localhost' IDENTIFIED BY 'canal' ;

2.3 Canal

  • 官網:https://github.com/alibaba/canal/releases
  • 版本:v1.1.6

圖片

下載 canal.adapter 和 canal.deployer 兩個就可以:

  • canal.deployer:相當于 canal 的服務端,啟動它才可以在客戶端接收數據庫變更信息。
  • canal.adapter:增加客戶端數據落地的適配及啟動功能(當 deployer 接收到消息后,會根據不同的目標源做適配,比如是 es 目標源適配和 hbase 適配等等)。

備注:canal.admin 為 canal提供整體配置管理、節點運維等面向運維的功能,提供相對友好的 WebUI 操作界面,方便更多用戶快速和安全的操作,我這邊使用的是單機的,因此就沒有下載安裝,大家也可以拉 source code 源碼去研究下。

2.4 ES

  • ES 官網:https://www.elastic.co/cn/downloads/elasticsearch
  • ES 版本:7.17.4

Mac 安裝 ES 非常簡單:

brew install elasticsearch

安裝細節不贅述,安裝成功后,輸入以下網址:

http://localhost:9200/?pretty

圖片

2.5 Kibana

  • 下載網址:https://www.elastic.co/cn/downloads/past-releases#kibana
  • 版本:7.14.0

圖片

它是 ES 的界面化操作工具,安裝細節不贅述,安裝成功后,輸入以下網址:

http://localhost:5601/app/dev_tools#/console

圖片

2.6 IK 分詞器

  • 下載網址:https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.17.2
  • 版本:v7.17.2

它是 ES 的分詞器,安裝細節不贅述,安裝成功后,可以驗證一下分詞效果。

圖片

2.7 小節

MySQL 開啟 BinLog,這個不難,主要觀察是否有 BinLog 日志。

Canal 的安裝是最復雜的,涉及到很多配置修改,后面會講解。

最后是 ES + Kibana + IK 分詞器,這個其實也不難,主要關注 ES 綁定的 JDK 版本,三款軟件的安裝可以參考這篇:https://blog.csdn.net/weixin_46049028/article/details/129956485

03 Canal 配置

3.1 canal.deployer 配置

修改 conf—>example 文件夾的 instance.properties 監聽的數據庫配置。

圖片

這里主要修改的監聽 MySQL 的 URL、用戶名和密碼。

圖片

這里默認的賬號密碼就是 canal,前面已經教大家如何創建了。

3.2 canal.deployer 啟動

在 canal.deployer 中的 bin 文件下去啟動命令 startup.sh

圖片

圖片

這樣就代表已經啟動了,我們可以去看下啟動日志。

圖片

圖片

上面 start successful 代表已經啟動成功,并且已經監聽我的 MySQL 數據庫。

3.3 canal.adapte 配置

Step1: 先把 adapter 下面的 bootstrap.yml,全部注釋掉,否則會提示你 XX 表不存在,這里坑了我好慘。

圖片

圖片

Step2: 再修改 adapter 的 application.yml 配置文件。

圖片

這里的坑,一般就是 mysql 的賬號密碼不對,或者給的 es 鏈接,沒有"http://"前綴,這些都是我過踩的坑。

Step3: 修改我們在 application.yml 中配置的目標數據源 es7 文件夾內容。

圖片

由于我們這里是對表 article 進行去監聽,因此我們在  es7 文件夾中去創建 article.yml 文件。

圖片

由于我們需要把技術派項目中的文章查詢功能,改造成 ES 的查詢方式,所以我們就把技術派的文章表 article,同步到 ES 中。

yml文件配置如下:

圖片

dataSourceKey: defaultDS # 源數據源的key, 對應上面配置的srcDataSources中的值
destination: example  # canal的instance或者MQ的topic
groupId: g1 # 對應MQ模式下的groupId, 只會同步對應groupId的數據
esMapping:
  _index: article # es 的索引名稱
  _id: _id  # es 的_id, 如果不配置該項必須配置下面的pk項_id則會由es自動分配
  sql: "SELECT t.id AS _id,t.id,t.user_id,t.article_type,t.title,t.short_title,t.picture,
        t.summary,t.category_id,t.source,t.source_url,t.offical_stat,t.topping_stat,
        t.cream_stat,t.`status`,t.deleted,t.create_time,t.update_time
        FROM article t"        # sql映射
  commitBatch: 1   # 提交批大小

Step4: 在 Kibana 中創建 ES 的 article 索引

代碼如下:

PUT /article
{
    "mappings" : {
      "properties" : {
        "id" : {
          "type" : "integer"
        },
        "user_id" : {
          "type" : "integer"
        },
        "article_type" : {
          "type" : "integer"
        },
        "title" : {
          "type" : "text",
          "analyzer": "ik_max_word"
        },
        "short_title" : {
          "type" : "text",
          "analyzer": "ik_max_word"
        },
        "picture" : {
          "type" : "text",
          "analyzer": "ik_max_word"
        },
        "summary" : {
          "type" : "text",
          "analyzer": "ik_max_word"
        },
        "category_id" : {
          "type" : "integer"
        },
        "source" : {
          "type" : "integer"
        },
        "source_url" : {
          "type" : "text",
          "analyzer": "ik_max_word"
        },
        "offical_stat" : {
          "type" : "integer"
        },
        "topping_stat" : {
          "type" : "integer"
        },
        "cream_stat" : {
          "type" : "integer"
        },
        "status" : {
          "type" : "integer"
        },
        "deleted" : {
          "type" : "integer"
        },
        "create_time" : {
          "type" : "date"
        },
        "update_time" : {
          "type" : "date"
        }
      }
    }
 }

3.4 canal.adapte 啟動

圖片

我們看下啟動日志:

圖片

上面沒有任何報錯,并且已經啟動了 8081 端口,說明已經啟動成功,此時我們就可以操作了。

04 數據同步實戰

4.1 全量同步

在開始 adapter 之后,我們應該先來一把全量數據同步,在源碼中提供了一個接口進行全量同步,命令如下:

curl http://127.0.0.1:8081/etl/es7/article.yml -X POST

圖片

上面就是執行同步成功后,提示已經導入 10 條。

圖片

4.2 增量同步

增量數據就是當我在 MySQL 中 update、delete 和 insert 時,那么 ES 中數據也會對應發生變化,我下面演示下修改:

圖片

日志打印如下:

圖片

ES查詢結果如下:

圖片

上面結果中說明 ES 已經更改成功。

05 總結

我們再回顧一下整體執行流程:

圖片

寫到這里,就結束了,是不是滿滿的干貨呢?基本是手把手教你如何將 MySQL 同步到 ES,不僅是增量同步,還包括全量同步,如果你的項目也需要用到該場景,基本可以直接照搬。

責任編輯:武曉燕 來源: 樓仔
相關推薦

2023-08-31 08:32:52

2022-09-21 08:39:52

堆外內存泄露內存分布

2023-01-09 09:02:26

2023-02-02 09:46:24

2021-01-19 05:49:44

DNS協議

2025-07-18 16:35:17

OpenAI辭人工智能Meta

2025-09-16 00:00:25

2023-08-21 20:21:52

軟件ZBrush行業

2023-05-30 08:38:25

MySQL數據庫日志

2025-05-06 00:00:05

MySQLES協同

2023-11-06 10:41:46

ChatGPT馬斯克

2020-11-10 09:43:32

NginxLinux服務器

2022-06-22 09:06:54

CSS垂直居中代碼

2025-04-15 08:30:00

2025-05-23 09:30:57

2021-05-27 15:43:29

鴻蒙安卓和iOS

2009-04-13 13:55:26

MySQL數據庫主機同步

2024-08-05 09:31:00

MySQLDTS數據

2021-01-06 10:36:55

MySQL數據庫Hive
點贊
收藏

51CTO技術棧公眾號

亚洲天堂导航| 精品亚洲综合| 99精品国产在热久久下载| 国产丝袜高跟一区| 不卡av免费在线| 日韩精品黄色| 成人午夜又粗又硬又大| 欧美在线视频免费播放| 激情五月激情综合| 高清日韩欧美| 欧美日韩一区二区三区高清| 成人在线免费观看网址| 日韩a在线观看| 国产精品一区二区免费不卡| 国产激情综合五月久久| 久久久一二三区| 欧美肉体xxxx裸体137大胆| 91精品国产综合久久精品图片 | 污视频网站免费在线观看| 2020国产精品自拍| 999视频在线免费观看| 性色av免费观看| 欧美激情精品久久久六区热门| 亚洲欧美在线免费| 性色av蜜臀av浪潮av老女人| 欧美午夜三级| 色婷婷一区二区| 久激情内射婷内射蜜桃| 伊人手机在线| 国产精品区一区二区三区| 蜜桃av噜噜一区二区三区| 亚洲成人77777| 麻豆成人综合网| 日韩69视频在线观看| 国产一级视频在线| 中文字幕一区二区三区在线视频| 一本色道久久综合亚洲精品小说 | 天天爽夜夜爽夜夜爽精品视频 | 国产精品久久久久9999高清| 久热在线中文字幕色999舞| 欧美一区二区三区粗大| 久操精品在线| 日韩精品在线观看一区二区| 又黄又色的网站| 香蕉大人久久国产成人av| 91精品欧美综合在线观看最新| 国产视频一区二区三区在线播放| 黄色漫画在线免费看| 亚洲成人一区二区在线观看| 国产精品啪啪啪视频| 秋霞成人影院| 亚洲视频狠狠干| 三级网在线观看| 黄色精品在线观看| 亚洲男人的天堂网| 91精品国产毛片武则天| av超碰免费在线| 亚洲精品自拍动漫在线| 国产一区一区三区| 日本精品600av| 亚洲成人动漫精品| 欧美日韩亚洲一| 欧美日韩五码| 9191久久久久久久久久久| 亚洲一区二区三区四区精品 | 精品国产一区二区三区麻豆小说| 黄色aaa大片| 91在线播放网址| 欧美日韩在线一区二区三区| 国产中文字幕在线观看| 亚洲国产精品成人综合| 一本—道久久a久久精品蜜桃| 黄色片网站在线| 亚洲综合一区二区| 午夜精品久久久久久久无码| 日本韩国欧美| 日一区二区三区| 热草久综合在线| 真实的国产乱xxxx在线91| 久久99精品国产麻豆不卡| 成人免费激情视频| 狠狠躁夜夜躁av无码中文幕| 久久影音资源网| 在线观看国产一区| 黄色美女视频在线观看| 欧美性猛交xxxx偷拍洗澡| 男人插女人下面免费视频| 99久久久国产| 亚洲黄色av网站| 五月激情四射婷婷| 国内自拍一区| 国产精品第三页| www黄色网址| 久久久精品国产免费观看同学| 一区二区在线不卡| 91豆花视频在线播放| 色94色欧美sute亚洲13| 国产999免费视频| 91精品短视频| 一本色道久久88亚洲综合88| 久久精品国产亚洲av高清色欲 | 狠狠操狠狠干视频| 国内精品偷拍| 色偷偷综合社区| 日本在线视频免费观看| 另类专区欧美蜜桃臀第一页| 高清国产一区| 日本不卡在线| 一本久道久久综合中文字幕| 毛片毛片毛片毛片毛| 妖精视频一区二区三区免费观看| 久久综合免费视频| 久久久久久久久久一级| 成人动漫中文字幕| 在线视频一二三区| 亚洲综合av一区二区三区| 精品福利在线导航| 18岁成人毛片| 蜜臂av日日欢夜夜爽一区| 快播亚洲色图| segui88久久综合9999| 91精品国产福利| 国产精品理论在线| 视频一区二区三区中文字幕| 精品久久久久久综合日本| 在线观看中文| 91精品综合久久久久久| 手机av在线不卡| 天堂资源在线中文精品| 国产自产精品| www.8ⅹ8ⅹ羞羞漫画在线看| 欧美一级艳片视频免费观看| 国产福利在线导航| 日韩av一区二| 欧美18视频| 吞精囗交69激情欧美| 日韩成人中文字幕在线观看| 精品无码人妻一区二区三区| 国产曰批免费观看久久久| 亚洲女人毛片| 久久久免费人体| 中文字幕精品一区久久久久 | 2001个疯子在线观看| 日韩视频中午一区| 欧美日韩在线视频免费| 激情五月激情综合网| 一区二区三区视频在线播放| 成人在线免费| 日韩中文字幕在线看| 国产精华7777777| 国产欧美一区二区精品性色| 色综合av综合无码综合网站| 日韩动漫一区| 日本精品视频在线| 免费在线看v| 欧美色爱综合网| 精品一区二区在线观看视频| 久久66热re国产| 精品国产一区二区三区在线| 亚洲天堂av资源在线观看| 欧美日韩ab片| 无套内谢的新婚少妇国语播放| 图片区小说区区亚洲影院| 国产夫妻性爱视频| 视频一区在线视频| 一本久久a久久精品vr综合| 成人在线精品| 久久久伊人日本| 色资源在线观看| 欧美三级电影精品| 亚洲熟女www一区二区三区| 粉嫩蜜臀av国产精品网站| 阿v天堂2017| 欧美另类69xxxxx| 91在线精品播放| xxx性欧美| 在线播放国产一区二区三区| 国产美女精品视频国产| 午夜a成v人精品| 天天摸日日摸狠狠添| 国产伦精品一区二区三区免费| 400部精品国偷自产在线观看 | 亚洲精品国产品国语在线| 在线免费观看国产精品| 亚洲欧美日韩国产综合在线| 久久性爱视频网站| 日韩精品五月天| 欧美激情精品久久| 黄色片在线播放| 在线观看免费视频综合| 国产又粗又长又硬| 国v精品久久久网| 波多野结衣家庭教师视频| 97在线精品| 成人区精品一区二区| 英国三级经典在线观看| 俺去啦;欧美日韩| 国产综合在线播放| 欧美综合一区二区| 免费在线看黄网址| 国产日韩欧美a| 人妻 丝袜美腿 中文字幕| 久久亚洲综合| 成人在线免费观看视频网站| 国产欧美日韩精品一区二区免费 | 国产一区二区三区高清播放| 婷婷五月综合缴情在线视频| 欧美国产美女| 久久综合精品一区| 日韩中文字幕无砖| 国产精品直播网红| 天堂av中文在线观看| 欧美麻豆久久久久久中文 | 婷婷成人综合| 91丝袜脚交足在线播放| 97人人做人人爽香蕉精品| 668精品在线视频| 丝袜美腿av在线| www.精品av.com| 免费黄网站在线观看| 欧美成人video| 国产永久免费视频| 在线观看国产日韩| 好看的av在线| 精品国产91乱高清在线观看| 青娱乐免费在线视频| 国产精品久久免费看| brazzers精品成人一区| www.久久久久久久久| 在线观看欧美一区二区| 国内精品伊人久久久久影院对白| 九九九在线观看视频| 香蕉久久久久久久av网站| 日本www在线视频| 日韩天天综合| 国产va亚洲va在线va| 欧美激情成人在线| 粉嫩av一区二区三区天美传媒 | 日韩精品在线观看av| 亚洲电影影音先锋| 永久免费精品视频网站| 日韩精品免费| 一区二区视频国产| 午夜精品毛片| 99亚洲精品视频| 婷婷综合伊人| 欧美大片免费播放| 欧美久久99| 日韩a级在线观看| 亚洲精品影视| 丝袜老师办公室里做好紧好爽 | 欧美性受xxx| 欧美大胆a人体大胆做受| 午夜美女久久久久爽久久| av在线视屏| 欧美性一区二区三区| www.精品| 国产精品视频自在线| 欧美美女被草| 亚洲bt欧美bt日本bt| 在线观看视频一区二区三区| 国产精品国色综合久久| 久久男人av| 欧美一区亚洲二区| 久久精品国产99久久| 一区二区国产日产| 欧美成人午夜| a级黄色一级片| 日韩av一级片| 色黄视频免费看| av在线一区二区三区| 男人天堂av电影| 国产精品福利av| 久久伊人成人网| 一本久久综合亚洲鲁鲁五月天| 国产乡下妇女三片| 欧美一级艳片视频免费观看| 日韩中文字幕免费在线观看| 精品香蕉一区二区三区| av在线女优影院| 色与欲影视天天看综合网| 136福利第一导航国产在线| 国产精品99久久久久久人 | 日本午夜大片a在线观看| 国产激情999| 香港久久久电影| 日韩精彩视频| 黄色综合网站| 中文字幕国内自拍| 成人免费av网站| 午夜影院黄色片| 午夜视频在线观看一区二区| 中文字幕日本视频| 亚洲成av人片在线观看香蕉| 不卡在线视频| 国自产精品手机在线观看视频| 99riav视频一区二区| 国产精品乱码视频| 999国产精品| 欧美三级一级片| 国产精品乡下勾搭老头1| 亚洲午夜福利在线观看| 伊人开心综合网| 又色又爽又黄无遮挡的免费视频| 亚洲精品在线免费播放| 黄色av免费在线| 国产91在线视频| 91成人精品在线| 福利网在线观看| 日本va欧美va精品发布| 午夜视频在线观看国产| 最新日韩av在线| 一区二区视频网站| 亚洲人成伊人成综合网久久久| 久久99亚洲网美利坚合众国| 91精品国产综合久久男男| 少妇精品久久久| 国产极品在线视频| 国产精品88888| 小早川怜子一区二区的演员表| 欧美午夜xxx| 深夜福利视频网站| 色综合久久中文字幕综合网小说| 免费成人黄色网| 日本一区视频在线观看| 午夜亚洲性色福利视频| 亚洲少妇中文字幕| 亚洲精品国产无套在线观| 国产精品九九九九| 中文字幕亚洲一区二区三区| 深夜成人影院| 欧美不卡在线一区二区三区| 一区二区三区高清视频在线观看| 高清中文字幕mv的电影| 亚洲影院久久精品| 性一交一乱一透一a级| 欧美成人在线影院| 日韩欧美久久| 久久久天堂国产精品| 国产毛片精品国产一区二区三区| 很污很黄的网站| 3d动漫精品啪啪1区2区免费| 欧美三级理伦电影| 91丝袜美腿美女视频网站| 亚洲xxx拳头交| 四川一级毛毛片| 一区二区三区国产豹纹内裤在线 | 韩日精品一区| 亚洲成人网上| 麻豆久久久久久| www.毛片com| 日韩亚洲欧美中文三级| 精精国产xxxx视频在线中文版| 成人黄动漫网站免费| 一区在线免费| 亚洲做受高潮无遮挡| 日本精品一级二级| 天天综合视频在线观看| 91日本在线视频| 精品成人一区| 在线免费观看成年人视频| 欧日韩精品视频| www视频在线看| 国产精品一 二 三| 香蕉成人久久| 男人晚上看的视频| 欧美变态tickle挠乳网站| 涩涩视频在线免费看| 日韩片电影在线免费观看| 精品一区二区三区的国产在线播放 | 日韩精品免费播放| 国产精品日日摸夜夜摸av| 99热这里只有精品9| 久久久伊人日本| 欧美日韩一二| 伦伦影院午夜理论片| 五月天国产精品| 香蕉视频免费在线播放| 超碰97在线人人| 久久亚洲精品伦理| 国产精品白嫩白嫩大学美女| 日韩不卡在线观看| 日韩国产大片| 日韩国产欧美亚洲| 国产精品传媒视频| 色欲久久久天天天综合网| 国产成人久久久| 欧美久久视频| 无码一区二区三区在线| 日韩视频中午一区| 中韩乱幕日产无线码一区| 成人在线免费高清视频| 久久嫩草精品久久久精品一| 一本色道久久综合亚洲| 国内精品久久久| 日韩欧美一区免费| 一本加勒比波多野结衣| 欧美美女bb生活片| 欧美亚洲韩国| av女优在线播放|