elasticsearch+logstash_jdbc 实现mysql数据实时同步至es
jdk安装1.8版本,es、ls、ik、kibana版本一致我这里使用的6.6.2版本
安装es
tar xf elasticsearch-6.6.2.tar.gz
mv elasticsearch-6.6.2 /home/heron/elasticsearch
## 使用普通用户启动
chown -R heron.heron /home/heron/elasticsearch
su - heron
cd /home/heron/elasticsearch
cat config/elasticsearch.yml
##修改前三行,添加最后两行到行尾
node.name: test-01
network.host: 10.10.1.231
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
cat config/jvm.options
###修改为512M
-Xms512m
-Xmx512m
安装ik+pinyin分词器
tar xf elasticsearch-analysis-pinyin-6.6.2.zip
mv elasticsearch-analysis-pinyin-6.6.2 /home/heron/elasticsearch/plugins/pinyin
tar xf elasticsearch-analysis-ik-6.6.2.zip
mv elasticsearch-analysis-ik-6.6.2 /home/heron/elasticsearch/plugins/ik
启动
/home/heron/elasticsearch/bin/elasticsearch -d
创建thinkcmf5索引和shop_goods表
curl -XPUT "http://10.10.1.231:9200/thinkcmf5" -H 'Content-Type: application/json' -d'
{
"settings":{
"number_of_shards":"3",
"index.refresh_interval":"15s",
"index":{
"analysis":{
"analyzer":{
"ik_pinyin_analyzer":{
"type":"custom",
"tokenizer":"ik_smart",
"filter":"pinyin_filter"
}
},
"filter":{
"pinyin_filter":{
"type":"pinyin",
"keep_first_letter": false
}
}
}
}
}
}'
curl -XPUT "http://10.10.1.231:9200/thinkcmf5/_mapping/shop_goods" -H 'Content-Type: application/json' -d'
{
"properties": {
"goodsname":{
"type": "text",
"analyzer": "ik_smart",
"search_analyzer": "ik_smart",
"fields": {
"pinyin":{
"type":"text",
"analyzer": "ik_pinyin_analyzer",
"search_analyzer": "ik_pinyin_analyzer"
}
}
}
}
}'
安装logstash-input-jdbc插件
首先安装logstash
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.6.2.tar.gz
tar xf logstash-6.6.2.tar.gz
mv logstash-6.6.2 /home/heron/logstash
安装jdbc插件
cd /home/heron/logstash
./bin/logstash-plugin install logstash-input-jdbc
准备
配置文件:mysql.conf
sql文件:my_sql2.sql
mysql 的java 驱动包 :mysql-connector-java-5.1.44-bin.jar
cat /home/heron/logstash/mysql.conf
input {
jdbc {
jdbc_driver_library => "/home/heron/logstash/config/mysql-connector-java-5.1.44-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://10.10.1.231:3306/thinkcmf5"
jdbc_user => "root"
jdbc_password => "dg9WA1nv"
statement_filepath => "./data/my_sql2.sql"
schedule => "* * * * *"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
}
}
filter {
mutate {
rename => { "[host][name]" => "host" }
}
}
output{
stdout {
codec => rubydebug
}
elasticsearch {
index => "thinkcmf5"
document_type => "shop_goods"
hosts => "10.10.1.231:9200"
}
}
cat /home/heron/logstash/data/my_sql2.sql
###全量
select * from shop_goods
###增量,由于开始使用时间戳存储时间,ls变量使用实际时间,因此我转换了一下
select * from shop_goods where createtime > unix_timestamp(:sql_last_value)
启动
/home/heron/logstash/bin/logstash -f /home/heron/logstash/mysql.conf
安装kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.6.2.tar.gz
tar xf kibana-6.6.2.tar.gz
mv kibana-6.6.2 /home/heron/kibana
cat config/kibana.yml
###修改文件
server.port: 5601
server.host: "10.10.1.231"
elasticsearch.hosts: ["http://10.10.1.231:9200"]
启动
/home/heron/kibana/bin/kibana -d
elasticsearch+logstash_jdbc 实现mysql数据实时同步至es的更多相关文章
- mysql数据实时同步到Elasticsearch
业务需要把mysql的数据实时同步到ES,实现低延迟的检索到ES中的数据或者进行其它数据分析处理.本文给出以同步mysql binlog的方式实时同步数据到ES的思路, 实践并验证该方式的可行性,以供 ...
- Mysql数据实时同步
企业运维的数据库最常见的是 mysql;但是 mysql 有个缺陷:当数据量达到千万条的时候,mysql 的相关操作会变的非常迟缓; 如果这个时候有需求需要实时展示数据;对于 mysql 来说是一种灾 ...
- canal整合springboot实现mysql数据实时同步到redis
业务场景: 项目里需要频繁的查询mysql导致mysql的压力太大,此时考虑从内存型数据库redis里查询,但是管理平台里会较为频繁的修改增加mysql里的数据 问题来了: 如何才能保证mysql的数 ...
- 【转】美团 MySQL 数据实时同步到 Hive 的架构与实践
文章转载自公众号 美团技术团队 , 作者 萌萌 背景 在数据仓库建模中,未经任何加工处理的原始业务层数据,我们称之为ODS(Operational Data Store)数据.在互联网企业中,常见的 ...
- 基于netcore实现mongodb和ElasticSearch之间的数据实时同步的工具(Mongo2Es)
基于netcore实现mongodb和ElasticSearch之间的数据实时同步的工具 支持一对一,一对多,多对一和多对多的数据传输方式. 一对一 - 一个mongodb的collection对应一 ...
- MySQL数据实时增量同步到Kafka - Flume
转载自:https://www.cnblogs.com/yucy/p/7845105.html MySQL数据实时增量同步到Kafka - Flume 写在前面的话 需求,将MySQL里的数据实时 ...
- MySQL 到 ES 数据实时同步技术架构
MySQL 到 ES 数据实时同步技术架构 我们已经讨论了数据去规范化的几种实现方式.MySQL 到 ES 数据同步本质上是数据去规范化多种实现方式中的一种,即通过"数据迁移同步" ...
- sersync实现数据实时同步
1.1 第一个里程碑:安装sersync软件 1.1.1 将软件上传到服务器当中并解压 1.上传软件到服务器上 rz -E 为了便于管理上传位置统一设置为 /server/tools 中 2.解压软件 ...
- CentOS7下Rsync+sersync实现数据实时同步
近期公司要上线新项目,后台框架选型我选择当前较为流行的laravel,运行环境使用lnmp. 之前我这边项目tp32+apache,开发工具使用phpstorm. 新建/编辑文件通过phpstorm配 ...
随机推荐
- Mac mini 使用打印机
扫描与打印机使用: 第一步:左上角黑苹果->系统偏好设置->打印机与扫描仪->设置打印机 第二步:Launchpad -> 预览 -> 文件 -> 从扫描仪导入-& ...
- leetcode 之 two sum (easy)c++
1.数组的长度 length() .容器vector长度 size() .容器vector vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库. ...
- UML用例关系一览
- CentOS7、REHL7的firewalld防火墙使用简单说明
title: CentOS7.REHL7的firewalld防火墙使用简单说明 categories: Linux tags: - Linux timezone: Asia/Shanghai date ...
- 关于SSD Trim功能
TRIM指令是微软联合各大SSD厂商所开发的一项技术,属于ATA8-ACS规范的技术指令. TRIM是告诉NAND闪存固态存储设备要擦除哪些数据的SATA接口指令.当相关页面的数据可以被覆盖时,操 ...
- python 时间戳和时间格式互相转换
#!/usr/bin/python3 # -*- coding: utf-8 -* import time def str_to_stamp(): # 转换显示格式 time1 = time.strp ...
- linux awk 常见字符串处理
awk指定输出列: awk '{print $0} file' #打印所有列awk '{print $1}' file #打印第一列 awk '{print $1, $3}' file #打印第一和第 ...
- 详解iBaits中SqlMapClientTemplate的使用
Apache iBatis(现已迁至Google Code下发展,更名为MyBatis)是当前IT项目中使用很广泛的一个半自动ORM框架,区别于Hibernate之类的全自动框架,iBatis对数据库 ...
- href和src的区别(小计)
1.Src 是指向物件的来源地址,请求src资源时会将其指向的资源下载并应用文档中 src的内容是页面上比不可少的一部分,是引入.在 img.script.iframe 等元素上使用. 2.href ...
- 小程序使用npm
1.cmd进入小程序的目录,cd C:\Users\lenovo\WeChatProjects\SITfu 2.npm install 3.npm init 4.npm install minipro ...