热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

dockerlogstash_Mysql同步数据到Elasticserach(使用logstashinputjdbc)

业务中遇到一起商务结算的大量数据(3亿)业务,需要查询响应能快,准备动用ES,这里先完成一个初级作业。Mysq

业务中遇到一起商务结算的大量数据(3亿)业务,需要查询响应能快,准备动用ES,这里先完成一个初级作业。

Mysql容易搭建,这里不作复述。

需要个ES-kibana的环境,从系统开始搭建过程太冗长,这里继续享受docker。 windows环境的docker怎么配置,windows环境下 docker部署:

Windows使用WSL2安装Docker​www.jianshu.com
cda7f7250c63adbd4481c99bdfa4ce9b.png

推荐一个镜像,包含了kibana:elasticsearch-kibana

拉取改镜像:docker pull nshou/elasticsearch-kibana

启动该镜像:docker run -d -p 9200:9200 -p 5601:5601 nshou/elasticsearch-kibana

0e8f68fbd73648a971778273b9519811.png

其中 9200是ES的端口,5601是kibana的端口。

容器内运行成功:

6a4e9c1bcfcc262ed2d8a82acfa5614b.png

http://127.0.0.1:9200/ 有如下内容说明ES启动正常:

26379ef079a9e7df5a3354b55a6a7212.png

http://localhost:5601/app/kibana#/home 有如下内容说明kibana启动正常:

5d70043eabff8d2b5cd00e6833e563ca.png

同步使用logstash-input-jdbc,其中遇到一堆坑,主要参照如下:

https://blog.csdn.net/qq_16436555/article/details/91360718

https://www.elastic.co/guide/en/logstash/current/index.html

https://www.elastic.co/cn/blog/logstash-jdbc-input-plugin

https://www.cnblogs.com/wueryuan/p/13226469.html

为调试方便,把logstash装在win环境里:

1、先下载https://artifacts.elastic.co/downloads/logstash/logstash-7.8.0.zip

2、在bin路径下面执行命令logstash-plugin.bat install logstash-input-jdbc 安装。比如C:eslogstash-7.8.0bin 中间如果遇到java找不到,就在setup.bat首行加路径,比如SET JAVA_HOME=C:Program FilesJavajdk1.8.0_251

93c5dc8083520e54c29ed292c20412b3.png

3、bin路径下面建文件夹sync-conf,这个里面又同步sql文件和配置文件,只要路径对,放哪里都可以,这里已bin下作示例:

db2615025986a87609c3c3c4762738e3.png

4、内包含如下文件:

7b8aceec9eb371bbb7f78ac94b121cc1.png

5、关键的配置文件sync.conf在启动命令行中需要用到:

7aebbe607d40465b462d4e1688a6f9e3.png

如果数据库中的字段类型是json或string类型,但其中是json结构体,可以通过如下filter同步至es,直接变成结构体:

filter {json {source => "extcol"target => "extcol_obj"remove_field => ["extcol"]}}

其中extcol是string字段名。

logstash 支持秒级 :下面是每5秒同步一次

schedule => "*/5 * * * * *"

这里使用一个简单的Mysql数据做同步源头,上图中选中部分。

6、sync.sql里放置数据查询语句,这里可以写的非常复杂,可以联查,作为示例简单处理:

6279a7a21ca503056d1155974cf71758.png

7、启动同步,在bin目录下,命令行为 .logstash.bat -f sync-confsync.conf

周期性刷新数据说明启动运行正常:

fba014b260a70678cadec9b84567055d.png

实际效果很明显:

首先查询数据库里的数据:

b6014a1dac7ba926c276bc4a9a22df92.png

查询ES中的数据,内容一致:

eb471b077b2656f32e9ed464f4fc9612.png

更新数据库内的数据,查询ES中的数据,数据保持同步。

至此Mysql向ES的最基本的数据同步已实现。

转载请注明出处。

微服务拆分方法论请移步:

丁云:奇技淫巧之CQRS:系统微服务拆分时的数据解耦​zhuanlan.zhihu.com
420b39a3deb51a1d4faf1301e5972b85.png

JDBC SQL 如何操作 ES,请移步:

丁云:X-PACK JDBC连接ElasticSearch Docker图文版​zhuanlan.zhihu.com
585ee937734d71fc56d94b48e3f0b585.png

Mycat对Mysql分片分库请移步:

丁云:Mycat 一致性hash分库(Mysql)​zhuanlan.zhihu.com
c8d11aa2864028cdc59929496355ed2d.png


推荐阅读
  • 将android-support-multidex.jar放到libs下然后编译,出现如下错误:Error:Executionfailedfortask':app:pack ... [详细]
  • 微信小程序官方组件展示之表单组件input源码
    以下将展示微信小程序之表单组件input源码官方组件能力,组件样式仅供参考,开发者可根据自身需求定义组件样式,具体属性参数详见小程序开发文档。功能描述:输入框。该组件是原生组件, ... [详细]
  • CAS介绍CAS(CentralAuthenticationService),是耶鲁大学开发的单点登录系统(SSO,singlesign-on),应用广泛,具有独立于平台的,易于理解,支持代 ... [详细]
  • 根据时间更改网站背景的脚本。热!
    我在网上找到了它,并以自己的方式对其进行了自定义;作者的功劳就在那里。实际上,这是一个用于更改背景颜色的脚本,并且在我看来& ... [详细]
  • 1、对于List而言,要不然就使用迭代器,要不然就从后往前删除,从前往后删除会出现角标越界。因为我List有两个remove方法,一个是int作为形参(删除指定位置的元素),一个是 ... [详细]
  • zend studio 9 选择自定义字体
    php教程|php手册zend,studio,选择,自定义,字体,Window,Pphp教程-php手册云监控源码,vscode下载的是zip,ubuntubios关闭,tomca ... [详细]
  • 稀松数组
    稀松数组1.稀松数组什么?在一个数组中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该数组为稀疏数组;如图,一个5*5的数组arr上只有3个有效数值 ... [详细]
  • 关键词:LinuxJDKJRE解决JRE中文乱码解决FireFox不支持appletl 安装JDK1、  安装jdkroot用户进入jdk安装文件所在目录,键入chmoda+xjd ... [详细]
  • 更多|本文_记录:如何解决MultipartFile类的transferTo()上传图片报“系统找不到指定的路径“问题亲测有效
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了记录:如何解决MultipartFile类的transferTo()上传图片报“系统找不到指定的路径“问题亲测有效相关的知识,希望对你有一定的参 ... [详细]
  • 微服务应用性能如何?APM监控工具来告诉你
    当微服务系统越来越庞大,各个服务间的调用关系也变得越来越复杂,需要一个工具来帮忙理清请求调用的服务链路。之前使用的是Sleuth+Zipkin的解决方案,最近发现应 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • http://segmentfault.com/a/1190000000440293?page=1#c-1190000000440293-1050000000449039这是博主原帖 ... [详细]
  • 13Linux基本命令和配置服务器来电后自动开机
    本节所讲内容:Linux终端介绍Shell提示符BashShell基本语法基本命令的使用:ls、pwd、cd查看系统和BIOS硬件时间Linux如何获得 ... [详细]
  • 变量 006
    为什么80%的码农都做不了架构师?变量是存储信息的容器。实例varx2;vary3;varzxy;就像代数那样x2y3zxy在代数中,我们 ... [详细]
  • php array_unique函数的用法?
    后端开发|PHP问题php,array_unique函数后端开发-PHP问题array_unique()是PHP中的内置函数,语法为array_unique(array,sort_ ... [详细]
author-avatar
小亲-火星小地球义
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有