logstash全量导入es
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相关推荐
- Sqoop(四)增量导入、全量导入、减量导入
本文转自:https://www.cnblogs.com/yfb918/p/10858355.html 增量导入 一.说明 当在生产环境中,我们可能会定期从与业务相关的关系型数据库向Hadoop导入数 ...
- hadoop项目实战--ETL--(三)实现mysql表到HIVE表的全量导入与增量导入
一 在HIVE中创建ETL数据库 ->create database etl; 二 在工程目录下新建MysqlToHive.py 和conf文件夹 在conf文件夹下新建如下文件,最后的工程目录 ...
- Windows下Solr的安装与配置,附DIH全量导入MySQL数据、IK分词器配置详解——不用集成Tomcat
Solr是Apache开源的比较稳定的一款全文搜索引擎,也是市面上相对比较流行的一款全文搜索引擎,好不好用你用过之后自有判断.今天给大家分享一下它的安装与配置,我用的是7.7.2版本.废话不多说,开搞 ...
- solr mysql增量导入_Solr全量与增量导入
Solr Full Import全量导入 所谓全量索引一般指的是每次从数据库中读取需要导入的全部数据,然后提交到Solr Server,最后删除指定core的所有索引数据进行重建.全量导入一般在数据首 ...
- solr mysql增量导入_10.Solr4.10.3数据导入(DIH全量增量同步Mysql数据)
1.创建MySQL数据 create databasesolr;usesolr;DROP TABLE IF EXISTSstudent;CREATE TABLEstudent ( idchar(10) ...
- Elasticsearch和MySQL数据同步(logstash-input-jdbc)全量增量方式同步近千万数据
同步方案: 同步读写:最为简单的方式在将数据写到mysql时,同时将数据写到ES,实现数据的双写. 异步双写(MQ方式):MQ的性能基本比mysql高出一个数量级,所以性能可以得到显著的提高. 定时器 ...
- SSIS工具的ETL过程,全量ETL和增量ETL过程教程
测试环境:SQL SERVER 2012 Microsoft Visual Studio 2012版本 本教程为记录本人的学习关键部分,故如果看不懂可以联系博主,只讲关键ETL操作部分 1.全量ETL ...
- 关于数据仓库中变化历史数据处理方式:全量表、快照表、拉链表
关于数据仓库中变化历史数据处理方式:全量表.快照表.拉链表 一.全量表 二.快照表 三.拉链表 对于数据仓库中变化的历史数据存储,一般有三种方式:全量表.快照表.拉链表 一.全量表 直接全量导入,覆盖 ...
- 数据采集中的 全量采集,增量采集,差异采集
内容与下方一样 全量备份: 一般是mysql表的数据做每日快照然后全量导入hive中 增量备份: 获取每天更新的数据和hive中原有的数据进行合并 差异备份:暂时没有遇到,后期遇到就加入说明
- MySQL数据同步到另一台MySQL(全量及增量同步)
import datetime from time import time import pymysqldef get_connection(host, user, passwd, dbname, p ...
最新文章
- TableStore:单行操作
- 漫谈:Java和Python现在都挺火,我应该怎么选?Java和Python优缺点比较。
- 【iOS开发每日小笔记(一)】UIPickerView 自动选择某个component的某个row
- 厦门大学2016年c语言程序设计,厦门大学c语言程序设计2016模拟题讲评及课程复习.pptx...
- python循环嵌套的外循环必须完全包含内循环_Python:循环与嵌套循环实现规律数列...
- 机器学习基础-朴素贝叶斯分类
- 是驴是骡,遛一遛就知道了
- 如何向linux贡献代码,第一次为开源社区贡献代码
- 关于下载Keil5无法打开keil4文件的问题解决方案
- 简单适用的抽奖小程序
- OL3+中链家地图找房功能实现
- Steam VR目录结构
- Questasim覆盖率数据分析
- 神棍节前夕,沃商店迎来1岁生日
- cad编辑节点快捷键是什么_cad删除快捷键(cad删除节点快捷键)
- html5文本框获取焦点,CSS3实现文本输入框获取焦点高亮显示
- 1.background、color、渐变
- MATLAB学习笔记2:MATLAB基础知识(下)
- 机器人NAO:为自闭症儿童散去阴霾
- moment常用用法详解
热门文章
- mysql repaire_mysql 修复表
- W10虚拟机一开机电脑蓝屏重启
- 计算机公式sin,三角函数换算(新版中文三角函数计算器)
- Learning Modality-Specific Representation with Self-Supervised Mulit-Task Learning for MSA
- Java考试奥迪车代码_奥迪工程师车型代码
- 获得代理ippython_Python3.x:免费代理ip的批量获取并入库
- 微信wxp协议 服务器设置,微信支付
- 单片机开发怎么把杜邦线弄整齐?
- 一个单位球体积理清二三重积分计算与体积的求解方法(含旋转体体积)
- 终端不需要主机的服务器,要实现云桌面需要哪些硬件?云终端必不可少