elasticsearch同步mysql

esc_ai esc_ai     2022-07-30     373

关键词:

ElasticSearch同步Mysql的插件选择了elasticsearch-jdbc,理由是活跃度高,持续更新,最新版本兼容elasticsearch-2.3.3.

一、下载


下载地址:https://github.com/jprante/elasticsearch-jdbc
下载后解压,里面有bin、lib2个目录.
这里写图片描述

二、mysql配置


确保mysql能用,在mysql中新建一个test数据库

mysql>create database test;

新建一张user表

mysql> create table user(id int(10) Not null,name char(10));

插入几条数据.

mysql> insert into test values("1","zhangsan");
mysql> insert into user values("2","LiSi");
mysql> insert into user values("3","WangWu");
mysql> insert into user values("4","MaLiu");

查看所有数据:

mysql> select * from user;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangsan |
|  2 | LiSi     |
|  3 | WangWu   |
|  4 | MaLiu    |
+----+----------+
4 rows in set (0.00 sec)

这样mysql中的数据就准备好了.

三、导入数据


新建一个odbc_es文件夹,新建mysql_import_es.sh脚本,脚本内容:

bin=/Users/yaopan/Documents/bropen/elasticsearch-jdbc-2.3.2.0/bin
lib=/Users/yaopan/Documents/bropen/elasticsearch-jdbc-2.3.2.0/lib
echo '{
    "type" : "jdbc",
    "jdbc" : {
        "elasticsearch.autodiscover":true,
        "elasticsearch.cluster":"bropen",
        "url" : "jdbc:mysql://localhost:3306/test",
        "user" : "root",
        "useSSL":"true",
        "password" : "123456",
        "sql" : "select *, id as _id from user",
        "elasticsearch" : {
             "host" : "127.0.0.1",
             "port" : 9300
        },
        "index" : "test", 
        "type" : "user"
    }
}' | java \
       -cp "${lib}/*" \
       -Dlog4j.configurationFile=${bin}/log4j2.xml \
       org.xbib.tools.Runner \
       org.xbib.tools.JDBCImporter

其中bin和lib用了绝对路径.
添加可执行权限:

chmod a+x mysql_import_es.sh 

执行脚本:

 ./mysql_import_es.sh

这里写图片描述
报了一个SSL连接的警告,没有错误.如果出现Error: Could not find or load main class org.xbib.tools.Runner之类的错误,很有可能是bin和lib路径出现问题.

查看导入结果:

http://localhost:9200/test/user/_search?pretty

head插件中查看:
这里写图片描述

参考文章

ElasticSearch同步Mysql
elasticsearch-jdbc实现MySQL同步到ElasticSearch深入详解

使用go-mysql-elasticsearch同步mysql数据库信息到elasticsearch(代码片段)

本文介绍如何使用go-mysql-elasticsearch同步mysql数据库信息到ElasticSearch。1.go-mysql-elasticsearch简介go-mysql-elasticsearch是一个将MySQL数据自动同步到Elasticsearch的服务。它首先使用mysqldump获取原始数据,然后用binlog增量地同步数据。github地... 查看详情

mysql数据同步到elasticsearch(代码片段)

〝古人学问遗无力,少壮功夫老始成〞要通过elasticsearch实现数据检索,首先要将mysql中的数据导入elasticsearch,并实现数据源与elasticsearch数据同步,这里使用的数据源是Mysql数据库,目前mysql与elasticsearch常用的... 查看详情

mysql数据同步到elasticsearch(代码片段)

〝古人学问遗无力,少壮功夫老始成〞要通过elasticsearch实现数据检索,首先要将mysql中的数据导入elasticsearch,并实现数据源与elasticsearch数据同步,这里使用的数据源是Mysql数据库,目前mysql与elasticsearch常用的... 查看详情

elasticsearch推荐一个同步mysql数据到elasticsearch的工具

1.概述转载:https://elasticsearch.cn/article/756 查看详情

elasticsearch-jdbc实现mysql同步到elasticsearch深入详解(代码片段)

Elasticsearch最少必要知识实战教程直播回放1.如何实现mysql与elasticsearch的数据同步?逐条转换为json显然不合适,需要借助第三方工具或者自己实现。核心功能点:同步增、删、改、查同步。2、mysql与elasticsearch同步的方... 查看详情

20.elasticsearch-jdbc实现mysql同步到elasticsearch(es与关系型数据库同步)

1.如何实现mysql与elasticsearch的数据同步?逐条转换为json显然不合适,需要借助第三方工具或者自己实现。核心功能点:同步增、删、改、查同步。2、mysql与elasticsearch同步的方法有哪些?优缺点对比?目前该领... 查看详情

elasticsearch学习笔记-p8(实现elasticsearch与mysql的数据同步)(代码片段)

文章目录MQ实现elasticsearch与mysql的数据同步1.思路分析1.1同步调用1.2异步通知1.3监听binlog1.4选择2.MQ实现数据同步2.1思路2.2声明交换机、队列(1)引入依赖(2)声明队列交换机名称(3)声明队列交换机2.4发... 查看详情

elasticsearch与mysql数据同步多个表(logstash)

参考技术Aproducts索引字段展示categorys索引字段展示配置文件内容展示(同时同步products和categorys)attribute索引字段展示products索引字段展示需要给两个txt文件相应的权限,详见单表操作同步后的products索引数据 查看详情

logstash同步mysql数据到elasticsearch(代码片段)

目录1MySql数据到Elasticsearch1.1下载logstash1.2解压logstash1.3在logstash目录创建mysql文件夹1.4将mysql驱动文件和数据库查询文件放进mysql中1.5在config目录下创建mysqltoes.conf文件1.6mysqltoes.conf配置1.7启动logstash2配置语法讲解3启动方式4filebeat基... 查看详情

elasticsearch-jdbc批量同步mysql数据失败

...直接从ES中去查询想要的结果。通过一番查找,决定使用elasticsearch-jdbc进行数据的同步,五六张表的连接结果,在数据量小的开发与测试环境运行正常,但在数据量比较大的性能测试环境做数据同步的话就会出现问题 查看详情

mysql准实时同步数据到elasticsearch(代码片段)

...出是ES,so相应的插件应该是logstash-input-jdbc和logstash-output-elasticsearch。安装插件的命令分别是(在Logs 查看详情

elasticsearch与mysql数据同步(代码片段)

...送MQ消息4.1事务配置类4.2service代码5.接收MQ消息数据同步elasticsearch中的酒店数据来自于mysql数据库,因此mysql数据发生改变时,elasticsearch也必须跟着改变,这个就是elasticsearch与mysql之间的数据同步。一.思路分析常见的... 查看详情

mysql数据同步至elasticsearch的相关实现方法

Python: MySQL数据同步到ES集群(MySQL数据库与ElasticSearch全文检索的同步)通过logstash将mysql数据同步至es中Springboot+ElasticSearch构建博客检索系统-学习笔记01Springboot+ElasticSearch构建博客检索系统-学习笔记02P43 43.新闻案例-数据... 查看详情

通过logstash全量和增量同步mysql一对多关系到elasticsearch(代码片段)

...asticearch前言在实际开发项目过程当中,难免会使用到Elasticsearch做搜索。文章描述从Mysql通过Logstash实时同步到Elasticsearch,下面就开始来进行实现吧!具体的Elasticsearch+Logstash+kibana搭建, 查看详情

canal:mysql数据同步elasticsearch,以高德地图为例

源代码与介绍:https://gitee.com/davidyem/spring-boot-data-syn 查看详情

mysql到elasticsearch实时数据同步实操分享

...TapdataCloud,可以非常方便地完成MySQL数据实时同步到Elasticsearch,跟大家分享一下,希望对你有帮助。本次MySQL数据实时同步到Elasticsearch大概只花了几分钟就完成。使用的工具是TapdataCloud,这个工具是永久免费的。M... 查看详情

mysql到elasticsearch实时数据同步实操分享

...TapdataCloud,可以非常方便地完成MySQL数据实时同步到Elasticsearch,跟大家分享一下,希望对你有帮助。本次MySQL数据实时同步到Elasticsearch大概只花了几分钟就完成。使用的工具是TapdataCloud,这个工具是永久免费的。M... 查看详情

elasticsearch实战(四十八)-debeizum实现mysql数据实时同步方案

    前文我们通过Canal来实时同步数据,Debeizum是一种比Canal更好的实时同步方案,它底层是基于Kafka-connect为核心构建的,可以完美对接Kafka家族生态,上游支持接入 MongoDB、MySQL、PostgreSQL、SQLServer、Oracle、Db2、Ca... 查看详情