精华内容
下载资源
问答
  • mysql 数据导入 elasticsearch
    万次阅读
    2016-12-26 15:13:06

    mysql 数据导入 elasticsearch


    我们此次用的导入方法是使用JDBC工具进行导入

    全部为真实环境操作,数据也是真实的。

    首先你要先安装了elasticsearch

    安装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里查一下数据。看有 没有成功导入




    更多相关内容
  • mysqlelasticsearchmysql导入数据elasticsearch 这个项目使用Spring Boot和Spring jdbc和elasticsearch框架将数据mysql导入elasticsearch中 如何使用 您需要扩展AbstractDataCollector类,然后重写...
  • 支持定时任务导入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:42
    1,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:10
    Springboot Mysql数据导入elasticsearch。 一个数据库的所有数据当然传单个的可以在代码上修改即可 DomeApplicationRun.java package org.bw; import java.sql.Connection; import java.sql.DriverManager; import ...

    Springboot Mysql数据导入elasticsearch。
    一个数据库的所有数据当然传单个的可以在代码上修改即可
    DomeApplicationRun.java

    package 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>
    
    展开全文
  • window 安装ElasticSearch ==================================================================== 这里提供下载一些安装包 链接:https://pan.baidu.com/s/1a3LHo-X5UPnUo8B76h7zAA 提取码...
  • canal_mysql_elasticsearch_sync 支持请star:sparkles: 基于 canal 的 MysqlElasticsearch 实时同步的 javaweb 服务。 canal是阿里巴巴mysql数据库binlog的增量订阅&消费组件。 工作原理 全量 暴露Http接口...
  • 今天小编就为大家分享一篇用python简单实现mysql数据同步到ElasticSearch的教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 安装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导数的最后,...
  • mysql数据导入es查询数据 2.1导入mybatis、数据源yml配置、fastJson依赖略 2.2Mybatis xml文件 注:数据库中spec为string类型,要转换成Map对象类型传给es,这里涉及的操作要注意 DOCTYPE mapper PUBLIC "-//mybatis....
  • 使用python多线程,运行时自定义线程数,自动计算每个线程处理的数据量,连接mysql读取数据,处理成需要的字段入到elasticsearch。运行效果图:10个线程 运行会在这里实时刷新,方便查看每个线程处理到的id数:[root...
  • 省略了,注意Logstash要跟ES版本一样 主要是配置文件 input { jdbc { # 设置 MySql/MariaDB 数据库url以及数据库名称 jdbc_connection_string => "jdbc:mysql://ip:prot/database?useUnicode=true&...
  • 安装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:50
    import org.elasticsearch.action.bulk.BackoffPolicy; import org.elasticsearch.action.bulk.BulkProcessor; import org.elasticsearch.action.bulk.BulkRequest; import org.elasticsearch.action.bulk....
  • 实现功能:批量导入mysql数据Elastic Search 软件版本:mysql5.8,Elastic Search7.4,python3.6 代码: # -*- coding: utf-8 -*- import pymysql def get_local_mysql(): try: mysql_conn = pymysql....
  • 文章目录前言一、首先有个接收数据库的实体类二、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:27
    1、logstash简介 Logstash 是开源的服务器端数据处理管道,能够...本文主要介绍mysql数据导入ElasticSearch 2、下载并安装logstash 官网下载地址:https://www.elastic.co/downloads/past-releases# 将文件下载...
  • 在今天的这篇文章中,我们来讲述一下如何把一个MySQL的数据库导入Elasticsearch中并对数据进行分析。 安装 在今天的这个练习中,我们需要使用到MySQL数据。在做这个练习之前,我假设我们已经安装好自己的...
  • 笔者这里没有使用工具,直接通过查询MySQL然后将数据导入Elasticsearch中。因为目前MySQL中数据不多,大概一千多行记录。 实体类 //题目id @Id private String problemId; private String knowledgePoint; //...
  • Mysql数据导入Elasticsearch最佳实践

    千次阅读 2019-03-26 15:22:11
    ElasticsearchES)可用于全文检索、日志分析、指标分析、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:02
    1、mysql数据库格式2、es的安装,可以看我以前的步骤3、下载Dataxwget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz4、由于Datax默认没有elasticsearchwriter,所以需要自己打jar包(注意:...
  • 2、拉取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....
  • 1.ElasticSearch安装: ElasticSearch 的下载地址:https://www.elastic.co/downloads/elasticsearch; 下载好之后将其解压到你想要安装的目录:比如我的 D:\chengxu\ElasticSearch\elasticsearch-6.3.0 以上,...
  • 文章目录配置jdbc.conf文件sql.sql文件...sudo ./logstash -f mysql/jdbc.conf 配置 在bin文件夹下创建mysql文件夹 新建jdbc.conf 和 sql.sql文件 jdbc.conf文件 input { stdin { } jdbc { # mysql数据库连接 j

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,896
精华内容 5,158
关键字:

mysql数据导入elasticsearch

mysql 订阅