资讯专栏INFORMATION COLUMN

基于logstash同步mysql数据到elasticsearch

IT那活儿 / 1490人阅读
基于logstash同步mysql数据到elasticsearch



前言



因项目需求,对现阶段架构做出了优化,需要将mysql数据库中的数据同步到elasticsearch,目前世面上能实现同步的工具有Canal,dataX,logstash,今天来聊聊logstash如何同步数据到elasticsearch。
Canal:通过解析mysql bin-log日志完成同步
dataX:通过sql去mysql中查询数据转换来完成同步
logstash:通过sql去mysql中查询数据转换来完成同步



同步原理



Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地
Logstash同步mysql数据到elasticsearch原理是:logstash连接mysql通过定义的sql语句查出来数据,在进行转换成json格式,然后写入到elasticsearch,查询过程中用一个递增字段作为条件去查询,每次都记录当前查询的位置



准备工作



1. 从官网下载对应elasticsearch版本的logstash
2. 由于logstash需要连接mysql数据库,需要从mysql官网下载对应mysql版本的mysql-java连接驱动
3. 安装完好logstash后,新建一个配置文件
配置文件内容:
jdbc_driver_library:
mysql驱动文件路劲
jdbc_driver_class:
要加载的 JDBC 驱动程序类
jdbc_connection_string:
JDBC 连接字符串
jdbc_user:
连接mysql用户
jdbc_password:
连接mysql密码
record_last_run:
是否保存状态 
last_run_metadata_path,用于记录mysql数据同步到哪一个位置了,下一次同步,会从记录的位置开始继续往下同步。
use_column_value:
用于定义的 
tracking_column值用作:sql_last_value
tracking_column_type:
跟踪列的类型,值:sql_last_value的类型
tracking_column:
需要被记录的mysql字段
last_run_metadata_path:
需要被记录的mysql字段存储的路径
statement:
查询mysql数据的sql语句
jdbc_paging_enabled:
jdbc是否启动分页,会导致一个 sql 语句被分解成多个查询。每个查询将使用限制和偏移量来共同检索完整的结果集
jdbc_page_size:
启动了分页后,每个分页的大小
type:
类型,会在elasticsearch中添加一个字段
lowercase_column_names:
强制标识符字段大小写
schedule:
定时计划,定义多久执行一次
4. 配置好配置文件后启动logsta,观察日志,以及查看elasticsearch索引信息
通过日志能看到logstash已经在执行sql语句,并开始同步数据了



注意事项



  1. last_run_metadata_path所配置的文件很重要,被删除了后logstash无法识别当前记录的值,会从头开始同步数据

  2. 需要同步的数据量很大时,一定要启动分页查询,不然会增加mysql压力,以及elasticsearch压力

  3. 被记录的mysql字段值,尽量为表的主键id,或者对应的时间戳,否则会导致数据重复写入


END


更多精彩干货分享

点击下方名片关注

IT那活儿

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129795.html

相关文章

  • Centos8 部署 ElasticSearch 集群并搭建 ELK,基于Logstash同步MyS

    摘要:如果这不起作用,请将驱动程序移到下方,并且不要在配置文件中提供任何驱动程序路径参考链接多数原因是文件渠道文件配置出错,检查一下管道配置文件里面的建议不要使用,会报错误重新配置了权限还是报错,暂时没找到原因,所以换了个用户就行了Centos8安装Docker 1.更新一下yum [root@VM-24-9-centos ~]# yum -y update 2.安装cont...

    bang590 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<