1 简介

本文说明使用logstash来实现全量和增量将mysql数据导入到es中。每一分钟执行一次。有时效性高的要求可以提高频率。

2.logstash同步mysql数据到elasticsearch

logstash-plugin install logstash-output-elasticsearch
logstash-plugin install logstash-input-jdbc

将mysql-connector-java-8.0.11.jar copy到logstash/bin/mysql目录下
2.1 时间维度

1.以一定的时间间隔定时更新mysql数据到es。

2.配置如下

全量构建索引

(1)jdbc.conf

input {
    jdbc {
      jdbc_default_timezone => "Asia/Shanghai"
      # mysql 数据库链接,school-edu为数据库名
      jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/school-edu?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull"
      # 用户名和密码
      jdbc_user => "xxxxx"
      jdbc_password => "xxxxx"
      # 驱动
      jdbc_driver_library => "E:\linux\ELK\6.8.2\logstash\bin\mysql\mysql-connector-java-8.0.18.jar"
      # 驱动类名
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
    # 执行的sql 文件路径+名称
      statement_filepath => "E:\linux\ELK\6.8.2\logstash\config\mysql\jdbc.sql"
      # 设置监听间隔  各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
      schedule => "* * * * *"
    }
}

output {
    elasticsearch {
      # ES的IP地址及端口
        hosts => ["localhost:9200"]
      # 索引名称
        index => "teacher"
        user => "elastic"
        password => "changeme"
        document_type => "_doc"
      # 自增ID 需要关联的数据库中有有一个id字段,对应索引的id号
        document_id => "%{id}"
    }
    stdout {
     # JSON格式输出
        codec => json_lines
    }
}

(2)jdbc.sql

select id, `name`, intro, career, avatar, sort, upd_time
from edu_teacher

增量构建索引

(1)jdbc-update.conf

input {
    jdbc {
      jdbc_default_timezone => "Asia/Shanghai"
      # mysql 数据库链接,school-edu为数据库名
      jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/school-edu?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull"
      # 用户名和密码
      jdbc_user => "xxxxxx"
      jdbc_password => "xxxxx"
      # 驱动
      jdbc_driver_library => "E:\linux\ELK\6.8.2\logstash\bin\mysql\mysql-connector-java-8.0.18.jar"
      # 驱动类名
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
      last_run_metadata_path => "E:\linux\ELK\6.8.2\logstash\config\mysql\last_value_meta.txt"
    # 执行的sql 文件路径+名称
      statement_filepath => "E:\linux\ELK\6.8.2\logstash\config\mysql\jdbc-update.sql"
      # 设置监听间隔  各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
      schedule => "* * * * *"
    }
}

output {
    elasticsearch {
      # ES的IP地址及端口
        hosts => ["localhost:9200"]
      # 索引名称
        index => "teacher"
        user => "elastic"
        password => "changeme"
        document_type => "_doc"
      # 自增ID 需要关联的数据库中有有一个id字段,对应索引的id号
        document_id => "%{id}"
    }
    stdout {
     # JSON格式输出
        codec => json_lines
    }
}

(2)jdbc-update.sql

select id, `name`, intro, career, avatar, sort, upd_time
from edu_teacher
where upd_time >= :sql_last_value

(3)last_value_meta.txt

2020-01-29 00:00:00

全量构建

logstash -f E:\linux\ELK\6.8.2\logstash\config\mysql\jdbc.conf

增量构建

logstash -f E:\linux\ELK\6.8.2\logstash\config\mysql\jdbc-update.conf

logstash全量导入es相关推荐

  1. Sqoop(四)增量导入、全量导入、减量导入

    本文转自:https://www.cnblogs.com/yfb918/p/10858355.html 增量导入 一.说明 当在生产环境中,我们可能会定期从与业务相关的关系型数据库向Hadoop导入数 ...

  2. hadoop项目实战--ETL--(三)实现mysql表到HIVE表的全量导入与增量导入

    一 在HIVE中创建ETL数据库 ->create database etl; 二 在工程目录下新建MysqlToHive.py 和conf文件夹 在conf文件夹下新建如下文件,最后的工程目录 ...

  3. Windows下Solr的安装与配置,附DIH全量导入MySQL数据、IK分词器配置详解——不用集成Tomcat

    Solr是Apache开源的比较稳定的一款全文搜索引擎,也是市面上相对比较流行的一款全文搜索引擎,好不好用你用过之后自有判断.今天给大家分享一下它的安装与配置,我用的是7.7.2版本.废话不多说,开搞 ...

  4. solr mysql增量导入_Solr全量与增量导入

    Solr Full Import全量导入 所谓全量索引一般指的是每次从数据库中读取需要导入的全部数据,然后提交到Solr Server,最后删除指定core的所有索引数据进行重建.全量导入一般在数据首 ...

  5. solr mysql增量导入_10.Solr4.10.3数据导入(DIH全量增量同步Mysql数据)

    1.创建MySQL数据 create databasesolr;usesolr;DROP TABLE IF EXISTSstudent;CREATE TABLEstudent ( idchar(10) ...

  6. Elasticsearch和MySQL数据同步(logstash-input-jdbc)全量增量方式同步近千万数据

    同步方案: 同步读写:最为简单的方式在将数据写到mysql时,同时将数据写到ES,实现数据的双写. 异步双写(MQ方式):MQ的性能基本比mysql高出一个数量级,所以性能可以得到显著的提高. 定时器 ...

  7. SSIS工具的ETL过程,全量ETL和增量ETL过程教程

    测试环境:SQL SERVER 2012 Microsoft Visual Studio 2012版本 本教程为记录本人的学习关键部分,故如果看不懂可以联系博主,只讲关键ETL操作部分 1.全量ETL ...

  8. 关于数据仓库中变化历史数据处理方式:全量表、快照表、拉链表

    关于数据仓库中变化历史数据处理方式:全量表.快照表.拉链表 一.全量表 二.快照表 三.拉链表 对于数据仓库中变化的历史数据存储,一般有三种方式:全量表.快照表.拉链表 一.全量表 直接全量导入,覆盖 ...

  9. 数据采集中的 全量采集,增量采集,差异采集

    内容与下方一样 全量备份: 一般是mysql表的数据做每日快照然后全量导入hive中 增量备份: 获取每天更新的数据和hive中原有的数据进行合并 差异备份:暂时没有遇到,后期遇到就加入说明

  10. MySQL数据同步到另一台MySQL(全量及增量同步)

    import datetime from time import time import pymysqldef get_connection(host, user, passwd, dbname, p ...

最新文章

  1. TableStore:单行操作
  2. 漫谈:Java和Python现在都挺火,我应该怎么选?Java和Python优缺点比较。
  3. 【iOS开发每日小笔记(一)】UIPickerView 自动选择某个component的某个row
  4. 厦门大学2016年c语言程序设计,厦门大学c语言程序设计2016模拟题讲评及课程复习.pptx...
  5. python循环嵌套的外循环必须完全包含内循环_Python:循环与嵌套循环实现规律数列...
  6. 机器学习基础-朴素贝叶斯分类
  7. 是驴是骡,遛一遛就知道了
  8. 如何向linux贡献代码,第一次为开源社区贡献代码
  9. 关于下载Keil5无法打开keil4文件的问题解决方案
  10. 简单适用的抽奖小程序
  11. OL3+中链家地图找房功能实现
  12. Steam VR目录结构
  13. Questasim覆盖率数据分析
  14. 神棍节前夕,沃商店迎来1岁生日
  15. cad编辑节点快捷键是什么_cad删除快捷键(cad删除节点快捷键)
  16. html5文本框获取焦点,CSS3实现文本输入框获取焦点高亮显示
  17. 1.background、color、渐变
  18. MATLAB学习笔记2:MATLAB基础知识(下)
  19. 机器人NAO:为自闭症儿童散去阴霾
  20. moment常用用法详解

热门文章

  1. mysql repaire_mysql 修复表
  2. W10虚拟机一开机电脑蓝屏重启
  3. 计算机公式sin,三角函数换算(新版中文三角函数计算器)
  4. Learning Modality-Specific Representation with Self-Supervised Mulit-Task Learning for MSA
  5. Java考试奥迪车代码_奥迪工程师车型代码
  6. 获得代理ippython_Python3.x:免费代理ip的批量获取并入库
  7. 微信wxp协议 服务器设置,微信支付
  8. 单片机开发怎么把杜邦线弄整齐?
  9. 一个单位球体积理清二三重积分计算与体积的求解方法(含旋转体体积)
  10. 终端不需要主机的服务器,要实现云桌面需要哪些硬件?云终端必不可少