logstash增量同步mysql数据到es
本篇本章地址:https://www.cnblogs.com/Thehorse/p/11601013.html
今天我们来讲一下logstash同步mysql数据到es
我认为呢,logstash是众多同步mysql数据到es的插件中,最稳定并且最容易配置的一个。
input {
stdin {
}
jdbc {
type => "xxx"
jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/yinhelaowu"
jdbc_user => "root"
jdbc_password => "root"
jdbc_driver_library => "mysql1/mysql-connector-java-5.1.17-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => true
jdbc_page_size => "500"
record_last_run => true
use_column_value => true
tracking_column => "id"
last_run_metadata_path => "mysql1/jdbc1"
clean_run => "false"
statement_filepath => "mysql1/jdbc.sql"
schedule => "* * * * *"
clean_run => false
}
}
我来讲一下这些属性的作用,像type这个 主要是为了声明这个jdbc{} 这个处理对象的,type可以定义任意值,
jdbc_connection_string ,这个是数据库地址 还有用户名密码
jdbc_driver_library,logstash是需要使用jdbc来连接mysql的,并且使用logstash必须配置java环境,jdk1.8以上
jdbc_driver_class给本次连接起名 statement_filepath 这个是执行的sql语句
schedule 是表示多长时间同步一下数据 如果是******表示一分钟同步一次
last_run_metadata_path这个会记录你最后一次同步数据的一些值,比如你可以记录创建时间,和自增的id,
type索引类型
clean_run 是否清楚执行过的数据
到了下边
#这是输出流
output {
#这个type是上面jdbc的type,有了这个if就可以进行批处理
if [type]=="TInquiryInfo"{
elasticsearch {
#这边的端口一定是9200,java中使用的端口是9300这边不要弄混了
hosts => ["localhost:9200"]
# 索引名称
index => "ca-inquiry"
# type名称
document_type => "TInquiryInfo"
# 文档id,inquiryId为sql文件中查询出的字段名
document_id => "%{inquiryId}"
}
}
}
下面是执行的sql写法
SELECT c.*,CONCAT(CONCAT(c.lat,','),c.lng) AS location,u.`praise`,u.`age`,u.`area_id` FROM zsf_carftsmanship c
LEFT JOIN zsf_user u ON c.user_id = u.`id` WHERE c.id > :sql_last_value
像elasticsearch这种大数据量查询,多表关联查询无疑对性能有很大的冲击,所以这边我直接做了关联查询
这样的话可以大大提高es的查询性能,这个:sql_last_value是last_run_metadata_path中记录的值
logstash增量同步mysql数据到es的更多相关文章
- 使用logstash同步MySQL数据到ES
使用logstash同步MySQL数据到ES 版权声明:[分享也是一种提高]个人转载请在正文开头明显位置注明出处,未经作者同意禁止企业/组织转载,禁止私自更改原文,禁止用于商业目的. https:// ...
- 使用Logstash来实时同步MySQL数据到ES
上篇讲到了ES和Head插件的环境搭建和配置,也简单模拟了数据作测试 本篇我们来实战从MYSQL里直接同步数据 一.首先下载和你的ES对应的logstash版本,本篇我们使用的都是6.1.1 下载后使 ...
- Canal——增量同步MySQL数据到ElasticSearch
1.准备 1.1.组件 JDK:1.8版本及以上: ElasticSearch:6.x版本,目前貌似不支持7.x版本: Kibana:6.x版本: Canal.deployer:1 ...
- Logstash-input-jdbc同步mysql数据到ES - sql_last_value
问题:使用 Logstash-input-jdbc同步mysql到ES, 当中使用了 sql_last_value ,如何重新同步? 答: logstash把上一次同步的最后一条记录id写到 c:\用 ...
- 10.Solr4.10.3数据导入(DIH全量增量同步Mysql数据)
转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.创建MySQL数据 create database solr; use solr; DROP TABLE ...
- docker搭建Elasticsearch、Kibana、Logstash 同步mysql数据到ES
一.前言 在数据量大的企业级实践中,Elasticsearch显得非常常见,特别是数据表超过千万级后,无论怎么优化,还是有点力不从心!使用中,最首先的问题就是怎么把千万级数据同步到Elasticsea ...
- centos7配置Logstash同步Mysql数据到Elasticsearch
Logstash 是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的“存储库”中.个人认为这款插件是比较稳定,容易配置的使用Logstash之前,我们得明确 ...
- 推荐一个同步Mysql数据到Elasticsearch的工具
把Mysql的数据同步到Elasticsearch是个很常见的需求,但在Github里找到的同步工具用起来或多或少都有些别扭. 例如:某记录内容为"aaa|bbb|ccc",将其按 ...
- 实战ELK(6)使用logstash同步mysql数据到ElasticSearch
一.准备 1.mysql 我这里准备了个数据库mysqlEs,表User 结构如下 添加几条记录 2.创建elasticsearch索引 curl -XPUT 'localhost:9200/user ...
- logstash使用template提前设置好maping同步mysql数据到Elasticsearch5.5.2
上篇blog说到采用logstash-input-jdbc将mysql数据同步到ES(http://www.cnblogs.com/jstarseven/p/7704893.html),但是这里有一个 ...
随机推荐
- 【转】【进程管理】Linux进程调度:调度时机
转自:https://zhuanlan.zhihu.com/p/163728119 概述: 进程切换分为自愿(voluntary)和强制(involuntary)两种.通常自愿切换是指任务由于等待某种 ...
- CH573 CH582 CH579蓝牙从机(peripheral)例程讲解六(蓝牙设置白名单)
蓝牙从机设置白名单,可以只扫描应答(白名单中列出的)设备,只允许(白名单中列出的)设备连接. 蓝牙主机设置白名单,可以只扫描.连接特定的蓝牙设备(白名单中列出的). 一.蓝牙从机白名单设置有关的函数介 ...
- scrapy框架中的pipelines没有成功调用process_item方法
提示报错 原因: items没有接收到Spider的返回值,导致pipelines没有接收到items模块的返回值,检查Spider模块是否正确返回值,我这里的原因是,数据解析完成后没有yield i ...
- node+appium安装
node是什么: node全称Node.js,是一个基于Chrome V8引擎的JavaScript运行环境,一个让JavaScript 运行在服务端的开发平台:它让JavaScript成为与PH ...
- python之tk学习,闲鱼搜索-小记
(如想转载,请联系博主或贴上本博地址) 编程,逻辑,总是让人如痴如醉. 下面进入正题. 火热的天气配上火热的python,python的入门友好性让门外汉们都看到了希望.当然自己写的程序如果没有GUI ...
- mysql索引类型详解
转载网址: http://c.biancheng.net/view/7897.html
- 容灾恢复 | 记一次K8S集群中etcd数据快照的备份恢复实践
[点击 关注「 全栈工程师修炼指南」公众号 ] 设为「️ 星标」带你从基础入门 到 全栈实践 再到 放弃学习! 涉及 网络安全运维.应用开发.物联网IOT.学习路径 .个人感悟 等知识分享. 希望各位 ...
- 对Javaweb的相关练习之利用.jsp文件和.java文件将输入的数据存储到指定的数据库中
练习分析 import javax.servlet.*; import javax.servlet.annotation.WebServlet; import javax.servlet.http.* ...
- Yolov5——训练目标检测模型
项目的克隆 打开yolov5官网(GitHub - ultralytics/yolov5 at v5.0),下载yolov5的项目: 环境的安装(免额外安装CUDA和cudnn) 打开anaconda ...
- CROS跨域问题的解决
转载: 作者:小丞同学链接:https://www.zhihu.com/question/452543297/answer/2247177767来源:知乎 在前后端交互的过程中,经常会遇到跨域的问题, ...