-
2016-12-26 15:13:06
mysql 数据导入 elasticsearch
我们此次用的导入方法是使用JDBC工具进行导入
全部为真实环境操作,数据也是真实的。
首先你要先安装了elasticsearch
这个是2.4.3的版本的安装方法,之前用的是5.0.0版本的,但是JDBC支持不到5.0.0,然后我就将es降版本。就成功的导入了数据
首先要先进入你下载的下载目录,然后将工具下载下来
cd /var/zk wget http://xbib.org/repository/org/xbib/elasticsearch/importer/elasticsearch-jdbc/2.3.4.1/elasticsearch-jdbc-2.3.4.1-dist.zip
此次用的JDBC版本为2.3.4.1,如果你想用其他版本,就要到github上找到和es的对应关系,看能不能支持。然后解压zip包
unzip elasticsearch-jdbc-2.3.4.1-dist.zip
将解压出来的工具放到你平时放第三方工具的地方mv elasticsearch-jdbc-2.3.4.1 /usr/
进入JDBC的bin目录下,然后创建一个.sh的文件
然后将下面的内容粘贴进去,进行修改,就可以了cd /usr/elasticsearch-2.3.4.1/bin vi import.sh
#!/bin/sh JDBC_IMPORTER_HOME=/usr/elasticsearch-jdbc-2.3.4.1 bin=$JDBC_IMPORTER_HOME/bin lib=$JDBC_IMPORTER_HOME/lib echo '{ "type" : "jdbc", "jdbc": { "elasticsearch.autodiscover":true, "url":"jdbc:mysql://10.1.3.11:3306/mysql数据库名", #10.1.3.11:3306是mysql所在的服务器地址以及mysql的端口号。 "user":"root", # mysql用户名 "password":"xxxxxxxx", # mysql密码 "sql":"select * from mysql表名", "elasticsearch" : { "cluster" : "esjiqun",# es的集群名字 "host" : "127.0.0.1",# 绑定的ip地址 "port" : 9300 # 交换数据用的端口号,es默认为9300 }, "index" : "index",#你想放进哪个索引里,就写哪个 "type" : "user" #你要放进哪个type,es里没有这个type的话,自动创建,不可不填 } }'| java \ -cp "${lib}/*" \ -Dlog4j.configurationFile=${bin}/log4j2.xml \ org.xbib.tools.Runner \ org.xbib.tools.JDBCImporter
写完之后,保存退出。然后执行
sh ./import.sh
然后等程序执行完之后,就可以到es里查一下数据。看有 没有成功导入
更多相关内容 -
mysql-to-elasticsearch:从mysql导入数据到elasticsearch
2021-05-22 18:17:03mysql到elasticsearch 从mysql导入数据到elasticsearch 这个项目使用Spring Boot和Spring jdbc和elasticsearch框架将数据从mysql表导入到elasticsearch中 如何使用 您需要扩展AbstractDataCollector类,然后重写... -
mysql数据导入elasticsearch并支持SQL查询
2017-03-02 10:58:30支持定时任务导入mysql数据到elasticsearch 支持SQL语句查询elasticsearch,提供dubbo服务接口 定时任务支持quartz与lts方式 -
如何将MySql数据导入Elasticsearch中
2022-02-19 17:54:16最近工作中有一个将MySql数据导入ES的需求,于是网上搜索了一下,发现不尽如人意。看了好几篇文章,还是不知道怎么做,于是我准备记录一下自己成功的经验,为自己也为同行… 方案 采用Logstash从MySql中抽取数据,...[版权申明] 非商业目的注明出处可自由转载
出自:shusheng007概述
最近工作中有一个将MySql数据导入ES的需求,于是网上搜索了一下,发现不尽如人意。看了好几篇文章,还是不知道怎么做,在此记录一下自己成功的经验,没啥技术含量,但对于需要的人来说贼香…
方案
采用Logstash从MySql中抽取数据,然后导入ES中。原理如下图所示
环境准备
如果已经安装了mysql以及ES,可直接跳过以下部分。
安装Mysql/MariaDb
已经安装则跳过,此处采用docker安装。
- 创建本地卷
我通过下面的操作创建了一个目录:
~/software/mariadb/data
cd ~ mkdir -p software/mariadb/data
- 创建docker-compose文件
mariadb-dc.yaml
version: '3' services: mariadb: image: mariadb:10.6.5 ports: - 3306:3306 volumes: - ~/software/mariadb/data:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_USER=ss007 - MYSQL_PASSWORD=ss007 - MYSQL_DATABASE=ss007_bd
其中有几点需要说明:
- MYSQL_USER=ss007 - MYSQL_PASSWORD=ss007
创建了一个叫ss007的用户
- 执行
在
mariadb-dc.yaml
目录下执行docker-compose -f mariadb-dc.yaml up -d
- 准备数据
数据库已经安装好,使用数据库管理工具,例如Navicat连接数据库并建表导入数据。
当然如果你习惯命令行,进入docker使用mysql命令行客户端操作也是可以的
-- ---------------------------- -- Table structure for student -- ---------------------------- DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `stu_name` varchar(32) NOT NULL DEFAULT '' COMMENT '姓名', `age` int(11) NOT NULL DEFAULT 18 COMMENT '年龄', `create_time` datetime DEFAULT current_timestamp() ON UPDATE current_timestamp() COMMENT '创建时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COMMENT='学生表'; -- ---------------------------- -- Records of student -- ---------------------------- INSERT INTO `student` VALUES (1, '王二狗', 30, '2022-02-19 10:57:16'); INSERT INTO `student` VALUES (2, '牛翠华', 25, '2022-02-19 10:57:16'); INSERT INTO `student` VALUES (3, '上官无雪', 18, '2022-02-19 10:57:16'); INSERT INTO `student` VALUES (4, '王婆', 50, '2022-02-19 10:57:16');
安装Elasticsearch与Kibana(可选)
已经安装则跳过,没安装请参考docker之如何使用docker来安装ELK(elasticsearch,logstash,kibana)
安装Logstash
下面将进入本文的关键部分。从官网下载了Logstash7.17.0的压缩包,解压即可。
写logstash配置文件
我们在config文件里新建一个名为
my-demo-logstash.conf
的文件,内容如下input { jdbc { jdbc_driver_library => "./mysql-connector-java-5.1.49.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_connection_string => "jdbc:mysql://localhost:3306/ss007_db?characterEncoding=UTF-8&useSSL=false" jdbc_user => root jdbc_password => root # jdbc_paging_enabled => "true" #是否进行分页 # jdbc_page_size => "50000" tracking_column => "create_time" use_column_value => true # statement_filepath => "sql文件路径,与下面的执行语句二选1" statement => "SELECT id,stu_name AS name,age,create_time FROM ss007_db.student WHERE create_time > :sql_last_value;" # 设置监听间隔 各字段含义(由左至右)秒、分、时、天、月、年,全部为*默认含义为每分钟都更新 schedule => " 10 * * * * *" } } output { elasticsearch { document_id => "%{id}" # document_type => "" index => "ss007_index" hosts => ["localhost:9200"] } stdout{ codec => rubydebug } }
文件分为input 和output两部分,其实还可以有个filter。input 部分从mysql读取数据,output部分向ES插入数据,关键字段解释如下
input:
- jdbc_driver_library:mysql-connector-java.jar 的路径,mysql-connector-java.jar 需要我们去官网下载,用来连接mysql数据库的。我放到了与bin文件同一级别,所以使用
./
作为路径,你要根据你相对bin文件夹放置的位置来修改这个路径。 - tracking_column: mysql中的某一列,logstash用它来跟踪数据的变化。此处我用的是create_time列,那么当新增加一条记录,或者修改一下这个时间的话,logstash就会知道,从而更新数据。
- use_column_value :是否使用
tracking_column
的值作为:sql_last_value
的值。设置为true时,:sql_last_value = tracking_column
。设置为false,:sql_last_value= 上次查询时间
。 - statement:sql查询语句,其中
:sql_last_value
已经在上面介绍过了 - schedule:执行计划,可以通过它设置查询的执行计划,我这里设置每隔10秒执行一次
output:
如果ES中没有index,会自动创建
- document_id => “%{id}” : ES中document的唯一id,这里使用student的主键。
- index => “ss007_index” : ES 的索引
7.0以后不用设置document_type,默认doc
运行
导航到logstash路径下运行以下命令,注意7.x不能进入bin文件执行
sudo bin/logstash -f config/my-demo-logstash.conf
输出如下类似结果说明成功了
... [2022-02-20T16:22:10,869][INFO ][logstash.inputs.jdbc ][main][4a56def37a98a3ccef919df855d4d915c4fa56a1212a5e6c99a82aa2a6e70df9] (0.009233s) SELECT id,stu_name AS name,age,create_time FROM ss007_db.student WHERE create_time > 0; { "name" => "王婆", "@timestamp" => 2022-02-20T08:22:10.938Z, "create_time" => 2022-02-19T02:57:16.000Z, "id" => 4, "@version" => "1", "age" => 50 } { "name" => "王二狗", "@timestamp" => 2022-02-20T08:22:10.927Z, "create_time" => 2022-02-19T02:57:16.000Z, "id" => 1, "@version" => "1", "age" => 30 } ...
查看结果
从Kibana上查看ss007_index是否创建并导入了数据
更新数据
因为我们设置了每隔10秒执行一次,所以当我们插入新数据,或者更新数据导致
create_time
列的日期增大,logstash就会感知到,随即更新ES中的数据- 插入一条新数据时的输出
{ "name" => "张妈", "@timestamp" => 2022-02-20T08:27:10.160Z, "create_time" => 2022-02-19T21:57:16.000Z, "id" => 5, "@version" => "1", "age" => 50 }
- 修改已有数据时的输出
{ "name" => "牛翠华", "@timestamp" => 2022-02-20T08:22:10.937Z, "create_time" => 2022-02-19T02:57:16.000Z, "id" => 2, "@version" => "1", "age" => 25 }
总结
搞这个我也是花了一天时间的,理论都知道,一动手就各种问题,如果它对你有帮助就点个赞再走…
参考文章:https://dzone.com/articles/migrating-mysql-data-to-elasticsearch-using-logsta
-
mysql数据导入es
2021-01-19 01:11:421,py-mysql-elasticsearch-sync《github 工具》简介:python版本的mysql导入es的插件通过配置config.yaml文件,该插件可以将mysql的数据导入到es中。使用:es-sync config.xml程序流程:思路为:1分析mysqldump导出...1,py-mysql-elasticsearch-sync《github 工具》
简介:
python版本的mysql导入es的插件
通过配置config.yaml文件,该插件可以将mysql的数据导入到es中。
使用:
es-sync config.xml
程序流程:
思路为:1分析mysqldump导出数据 - > 2分析binlog
该插件,首先会执行mysqldump指令,将mysql中的数据和数据表定义提取出来。然后使用xml解析出需要使用的部分。对比自定义的mapping规则,选择id和字段。最终批量上传给es服务器。
完成上一步操作后,程序会读取mysql的binlog,并从binlog第一行开始读取,直到binlog最后一行,同时将程序执行的binlog位置记录到binlog.info中,用于下次从此开始导入数据。
另外,若已经存在binlog.info。该插件不会执行第一步的操作,而是直接从binlog.info记录的位置开始导入数据。
以下操作说明:
如下操作是将数据库清空后,打开了数据库binlog,然后往数据库插入数据。数据插入完毕后,开始向es导数据。
因此遇到了409版本错误。 (因为mysqldump导出的数据就是binlog中对应的数据操作记录)
安装:
pip install py-mysql-elasticsearch-sync
注意可能会出现依赖包版本冲突 --- pip install --ignore-installed xxxx
添加开启binlog的mysql配置
在mysql配置为恩建中添加以下配置
[mysqld_safe]
log-bin=mysql-bin
binlog_format=mixed
max_binlog_size=500M
binlog-do-db=testdata_big
binlog-ignore-db=mysql
server-id=1
查看mysql的binlog记录位置
mysql> show variables like '%log_bin%';
+---------------------------------+-------------------------------------------------------+
| Variable_name | Value |
+---------------------------------+-------------------------------------------------------+
| log_bin | ON |
| log_bin_basename | /opt/lovelsl/MessageSoft/Mysql/data/mysql-bin |
| log_bin_index | /opt/lovelsl/MessageSoft/Mysql/data/mysql-bin.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON |
+---------------------------------+-------------------------------------------------------+
6 rows in set (0.00 sec)
mysql的binlog处理
重置所有的binlog
reset master
删除某个binlog文件之前的所有binlog文件
purge binary logs to 'bin-log.000021';
查看日志
show binary logs;
在导入数据到es之前,先完成es索引的创建,以及es索引中mapping的定义
导入文件,自动生成索引,一般被禁用。
创建索引:
一般为了安全性,禁止提交数据时自动创建索引。
curl -XPUT -H "Content-Type: application/json" "localhost:9200/testdata"
创建索引的mapping:
curl -XPUT -H "Content-Type: application/json" "127.0.0.1:9200/testdata/_mapping/nodes" -d '
{
"properties": {
"id": {
"type": "integer"
},
"node_flag": {
"type": "integer"
},
"owner_uid": {
"type": "keyword"
},
"parent_uid": {
"type": "keyword"
},
"node_name": {
"type": "keyword"
},
"group_name": {
"type": "keyword"
},
"interface": {
"type": "keyword"
},
"custum_name": {
"type": "keyword"
},
"osname": {
"type": "keyword"
},
"osversion": {
"type": "keyword"
},
"update_time": {
"type": "keyword"
},
"last_active_time": {
"type": "keyword"
},
"last_login_time": {
"type": "keyword"
},
"mac": {
"type": "keyword"
},
"last_local_ip": {
"type": "keyword"
},
"last_local_ip6": {
"type": "keyword"
},
"create_time": {
"type": "keyword"
},
"create_ip": {
"type": "keyword"
},
"long_ip": {
"type": "integer"
}
}
}'
修改es 的mapping:一般而言,mapping一旦创建,只能增加字段,而不能修改已经存在的mapping字段,但是允许增加一个字段。但一般多采用重建索引的方式。
这里由于long_ip的type为integer不能存储ip地址对应的大整数,将修改为long
删除索引:
[root@jiangmin /]# curl -XDELETE "localhost:9200/testdata"
注意,不要带上type
重建索引:
curl -XPUT -H "Content-Type: application/json" "localhost:9200/testdata"
重建索引的mapping
同上,不做重复操作了
-
Springboot Mysql数据导入elasticsearch
2018-11-06 19:11:10Springboot Mysql数据导入elasticsearch。 一个数据库的所有数据当然传单个的可以在代码上修改即可 DomeApplicationRun.java package org.bw; import java.sql.Connection; import java.sql.DriverManager; import ...Springboot Mysql数据导入elasticsearch。
一个数据库的所有数据当然传单个的可以在代码上修改即可
DomeApplicationRun.javapackage org.bw; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import org.frameworkset.elasticsearch.client.DataStream; import org.frameworkset.elasticsearch.client.ImportBuilder; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @SpringBootApplication @RestController public class DomeApplicationRun { public static void main(String[] args) { SpringApplication.run(DomeApplicationRun.class, args); } /** * mysql传输到elasticsearch * @param str */ public void testSimpleLogImportBuilderFromExternalDBConfig(String str){ ImportBuilder importBuilder = ImportBuilder.newInstance(); //数据源相关配置,可选项,可以在外部启动数据源 importBuilder.setDbName("test") .setDbDriver("com.mysql.jdbc.Driver") //数据库驱动程序,必须导入相关数据库的驱动jar包 .setDbUrl("jdbc:mysql://localhost:3306/me?useCursorFetch=true")//通过useCursorFetch=true启用mysql的游标fetch机制,否则会有严重的性能隐患,useCursorFetch必须和jdbcFetchSize参数配合使用,否则不会生效 .setDbUser("root") .setDbPassword("root") .setValidateSQL("select 1") .setUsePool(false);//是否使用连接池 //指定导入数据的sql语句,必填项,可以设置自己的提取逻辑 importBuilder.setSql("select * from "+str); /** * es相关配置 */ importBuilder .setIndex(str) //必填项 .setIndexType(str) //必填项 .setRefreshOption(null)//可选项,null表示不实时刷新,importBuilder.setRefreshOption("refresh");表示实时刷新 .setUseJavaName(true) //可选项,将数据库字段名称转换为java驼峰规范的名称,例如:doc_id -> docId .setBatchSize(5000) //可选项,批量导入es的记录数,默认为-1,逐条处理,> 0时批量处理 .setJdbcFetchSize(10000);//设置数据库的查询fetchsize,同时在mysql url上设置useCursorFetch=true启用mysql的游标fetch机制,否则会有严重的性能隐患,jdbcFetchSize必须和useCursorFetch参数配合使用,否则不会生效 /** * 一次、作业创建一个内置的线程池,实现多线程并行数据导入elasticsearch功能,作业完毕后关闭线程池 */ importBuilder.setParallel(true);//设置为多线程并行批量导入 importBuilder.setQueue(100);//设置批量导入线程池等待队列长度 importBuilder.setThreadCount(200);//设置批量导入线程池工作线程数量 importBuilder.setContinueOnError(true);//任务出现异常,是否继续执行作业:true(默认值)继续执行 false 中断作业执行 importBuilder.setAsyn(false);//true 异步方式执行,不等待所有导入作业任务结束,方法快速返回;false(默认值) 同步方式执行,等待所有导入作业任务结束,所有作业结束后方法才返回 importBuilder.setRefreshOption("refresh"); // 为了实时验证数据导入的效果,强制刷新数据,生产环境请设置为null或者不指定 /** * 执行数据库表数据导入es操作 */ DataStream dataStream = importBuilder.builder(); dataStream.db2es(); } /** * 查询数据的表名 */ @RequestMapping(name="/selects") public void showTables(){ try { Class.forName("com.mysql.jdbc.Driver"); Connection conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/me?user=root&password=root"); PreparedStatement stmt = conn.prepareStatement("show tables"); ResultSet rs = stmt.executeQuery("show tables; "); while (rs.next()) { String string = rs.getString(1); testSimpleLogImportBuilderFromExternalDBConfig(string); } rs.close(); stmt.close(); conn.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
application.properties
spring.data.elasticsearch.cluster-name=elasticsearch //集群名字 spring.data.elasticsearch.cluster-nodes=192.168.171.132:9403 //transport.tcp.port: elasticsearch.rest.hostNames=192.168.171.132:9200 //http.port: server.port=81 端口号
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>ix.wm</groupId> <artifactId>wemall-indexs</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.0.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.bbossgroups.plugins</groupId> <artifactId>bboss-elasticsearch-rest-jdbc</artifactId> <version>5.1.8</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.40</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
-
MySQL 数据导入 ElasticSearch
2019-12-18 19:53:47window 安装ElasticSearch ==================================================================== 这里提供下载一些安装包 链接:https://pan.baidu.com/s/1a3LHo-X5UPnUo8B76h7zAA 提取码... -
canal-mysql-elasticsearch:通用的数据导入功能,实现canal导入mysql数据至es,提供查询的分布式性能
2021-05-09 19:25:54canal_mysql_elasticsearch_sync 支持请star:sparkles: 基于 canal 的 Mysql 与 Elasticsearch 实时同步的 javaweb 服务。 canal是阿里巴巴mysql数据库binlog的增量订阅&消费组件。 工作原理 全量 暴露Http接口... -
用python简单实现mysql数据同步到ElasticSearch的教程
2020-09-09 09:31:37今天小编就为大家分享一篇用python简单实现mysql数据同步到ElasticSearch的教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
MySQL数据库导入Elasticsearch
2021-02-08 10:53:25安装ES及交互插件https://my.oschina.net/frylan/blog/639980将已有的数据库导入ES下载工具包从以下地址下载elasticsearch-jdbc工具包(注意版本需要和ES版本对应)https://github.com/jprante/elasticsearch-jdbc配置... -
Mysql大批量数据导入ElasticSearch
2019-03-29 23:51:06场景:通过Logstash插件批量导数据,个人感觉出现各种奇怪的问题,例如ES 内存暴满,mysql 所在服务器内存暴,最主要的是在一次导数时不能所导的数据量不能太大。经过一次次试探Logstash与优化Logstash导数的最后,... -
ElasticSearch04--批量操作bulk--mysql数据导入ES
2021-08-23 22:56:12mysql数据导入es查询数据 2.1导入mybatis、数据源yml配置、fastJson依赖略 2.2Mybatis xml文件 注:数据库中spec为string类型,要转换成Map对象类型传给es,这里涉及的操作要注意 DOCTYPE mapper PUBLIC "-//mybatis.... -
python使用多线程快速把大量mysql数据导入elasticsearch
2020-12-05 10:54:17使用python多线程,运行时自定义线程数,自动计算每个线程处理的数据量,连接mysql读取数据,处理成需要的字段入到elasticsearch。运行效果图:10个线程 运行会在这里实时刷新,方便查看每个线程处理到的id数:[root... -
用Logstash把MySQL数据导入ElasticSearch
2020-12-07 16:17:44省略了,注意Logstash要跟ES版本一样 主要是配置文件 input { jdbc { # 设置 MySql/MariaDB 数据库url以及数据库名称 jdbc_connection_string => "jdbc:mysql://ip:prot/database?useUnicode=true&... -
mysql数据导入Elasticsearch
2018-11-26 21:54:49安装Elasticsearch 参考:https://blog.csdn.net/guo20082200/article/details/84554354 安装logstash 下载,解压,修改配置文件,配置文件修改如下: jdbc.config 这里我的数据库是mysql8.0,驱动类为:... -
(转)Mysql数据导入ES(全量+增量)
2019-04-02 13:59:14下载安装包时注意下载到指定文件夹 这里我放在OPT...wget -c https://artifacts.elastic.co/downloads/logstash/logstash-6.4.0.zip 加上-c支持断点续传 二:解压logstash unzip logstash-6.4.0.zip 三:进入到logst... -
java实现把mysql中数据导入elasticsearch
2019-04-18 17:19:50import org.elasticsearch.action.bulk.BackoffPolicy; import org.elasticsearch.action.bulk.BulkProcessor; import org.elasticsearch.action.bulk.BulkRequest; import org.elasticsearch.action.bulk.... -
python 批量导入mysql数据到Elastic Search
2020-10-26 10:31:10实现功能:批量导入mysql数据到Elastic Search 软件版本:mysql5.8,Elastic Search7.4,python3.6 代码: # -*- coding: utf-8 -*- import pymysql def get_local_mysql(): try: mysql_conn = pymysql.... -
从Mysql 批量导入数据到 elasticSearch
2021-02-27 13:49:32文章目录前言一、首先有个接收数据库的实体类二、Dao层三、Mapper四、application.yml 连接数据库的相关配置五、用脚本创建下 索引库(注意:这里的Object 只支持对象与Map)六、从Mysql批量导入elasticSearch总结 ... -
把MySql中的数据导入elasticSearch中
2022-04-06 10:44:03首先elasticsearch是面向文档(Document)存储的,可以是数据库中的一条商品数据,一个订单信息。文档数据会被序列化为json格式后存储在elasticsearch中: 而Json文档中往往包含很多的字段(Field),类似于数据库... -
logstash将mysql数据导入es
2019-03-07 11:40:271、logstash简介 Logstash 是开源的服务器端数据处理管道,能够...本文主要介绍mysql数据导入ElasticSearch 2、下载并安装logstash 官网下载地址:https://www.elastic.co/downloads/past-releases# 将文件下载... -
Logstash:把 MySQL 数据导入到 Elasticsearch 中
2019-09-29 14:40:55在今天的这篇文章中,我们来讲述一下如何把一个MySQL的数据库导入到 Elasticsearch中并对数据进行分析。 安装 在今天的这个练习中,我们需要使用到MySQL数据。在做这个练习之前,我假设我们已经安装好自己的... -
Elasticsearch-MySQL数据导入到Elasticsearch中
2019-05-06 10:41:32笔者这里没有使用工具,直接通过查询MySQL然后将数据导入Elasticsearch中。因为目前MySQL中数据不多,大概一千多行记录。 实体类 //题目id @Id private String problemId; private String knowledgePoint; //... -
Mysql数据导入Elasticsearch最佳实践
2019-03-26 15:22:11Elasticsearch(ES)可用于全文检索、日志分析、指标分析、APM等众多场景,而且搭建部署容易,后期弹性扩容、故障处理简单。ES在一定程度上实现了一套系统支持多个场景的希望,大幅度降低使用多套专用系统的运维... -
MySQL数据库数据导入ES中
2020-06-11 14:10:04需要安装 mysql数据导入ES中,用到的有logstash,ES,mysql的连接包。链接:https://pan.baidu.com/s/1xopMMUtPir12zrQfYcwBZg 提取码:me8g。这里的logstash和ES我用的版本是6.4.3的,还有mysql连接包,ik分词器... -
Datax 将Mysql数据导入ES
2020-12-20 14:46:021、mysql数据库格式2、es的安装,可以看我以前的步骤3、下载Dataxwget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz4、由于Datax默认没有elasticsearchwriter,所以需要自己打jar包(注意:... -
Docker部署Elasticsearch&Logstash将mysql数据导入Elasticsearch
2020-05-18 17:32:532、拉取elasticsearch(以7.1.0为例) sudo docker pull elasticsearch:7.1.0 3、查看镜像 sudo docker images 4、运行elasticsearch容器 sudo docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.... -
logstash把mysql数据导入elasticsearch中并设置分词器
2019-03-28 13:06:511.ElasticSearch安装: ElasticSearch 的下载地址:https://www.elastic.co/downloads/elasticsearch; 下载好之后将其解压到你想要安装的目录:比如我的 D:\chengxu\ElasticSearch\elasticsearch-6.3.0 以上,... -
Elasticsearch导入mysql数据
2022-04-02 11:42:07文章目录配置jdbc.conf文件sql.sql文件...sudo ./logstash -f mysql/jdbc.conf 配置 在bin文件夹下创建mysql文件夹 新建jdbc.conf 和 sql.sql文件 jdbc.conf文件 input { stdin { } jdbc { # mysql数据库连接 j