使用logstash同步mysql 到es

下载安装Logstash
然后编写Logstash配置文件logstash.conf,注意mysql表一定要有主键,而且有更新时间字段
例如:

input {jdbc {# 设置 MySql/MariaDB 数据库url以及数据库名称jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true"# 用户名和密码jdbc_user => "root"jdbc_password => ""# 数据库驱动所在位置,可以是绝对路径或者相对路径jdbc_driver_library => "/usr/share/logstash/bin/mysql-connector-java-8.0.23.jar"# 驱动类名jdbc_driver_class => "com.mysql.cj.jdbc.Driver"# 开启分页jdbc_paging_enabled => "true"# 分页每页数量,可以自定义jdbc_page_size => "30"# 执行的sql文件路径statement => "SELECT *,FLOOR(addtime/86400) AS day,FLOOR(addtime/ 3600) AS hour FROM article WHERE addtime > :sql_last_value ORDER BY addtime ASC"# 设置定时任务间隔  含义:分、时、天、月、,全部为*默认含义为每分钟跑一次任务schedule => "* * * * *"# 索引类型type => "_doc"# 是否开启记录上次追踪的结果,也就是上次更新的时间,这个会记录到 last_run_metadata_path 的文件use_column_value => true# 记录上一次追踪的结果值last_run_metadata_path => "/opt/logstash/mysql_update_time"# 如果 use_column_value 为true, 配置本参数,追踪的 column 名,可以是自增id或者时间tracking_column => "addtime"# tracking_column 对应字段的类型tracking_column_type => "timestamp"# 是否清除 last_run_metadata_path 的记录,true则每次都从头开始查询所有的数据库记录clean_run => false# 数据库字段名称大写转小写lowercase_column_names => false}
}
output {elasticsearch {# 如果不配置type,动态模板会创建失败#document_type => "_doc"hosts => ["127.0.0.1"]#账号user => "elastic"password => ""index => "my_index"# 设置_docID和数据相同document_id => "%{id}"data_stream =>falsetemplate => "/opt/logstash/template.json"#是否重写模版template_overwrite => falsemanage_template => false}# 日志输出stdout {codec => json_lines}
}

编写对应的模板文件/opt/logstash/template.json,这里注意和ES索引的mapping文件 字段格式上可能有些差别。

{"index_patterns": ["my_index"],"template": {"settings": {"index": {"number_of_shards": 3,"number_of_replicas": 2,}},"mappings": {"properties": {"id": {"type": "keyword"},"addtime": {"type": "date","format": "epoch_millis"},"day": {"type": "long"},"hour": {"type": "long"},"title": {"type": "text","analyzer": "ik_smart","search_analyzer": "ik_smart"},}}}
}

最后启动logstash,我们使用后台启动
sudo nohup /usr/share/logstash/bin/logstash -f /opt/logstash/logstash.conf > /dev/null 2>&1 &

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/16581.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

现代前端工程化实践:Git、Husky、Commitlint与PNPM的协同作战

引言 Git Husky 与 Commitlint 是两个在 Git 工作流程中非常实用的工具,它们可以帮助团队维护代码质量和提交规范。Husky 是一个 Git 钩子管理器,允许你在仓库级别方便地配置钩子脚本;而 Commitlint 则是用来规范 Git 提交信息的工具&#x…

edge浏览器的网页复制

一些网页往往禁止复制粘贴,本文方法如下: 网址最前面加上 read: (此方法适用于Microsoft Edge 浏览器)在此网站网址前加上read:进入阅读器模式即可

【前端】web移动端进行监控是否完播 | 视频完播率设计

1、整体设计 1、前端播放监控: 使用移动端的前端播放器,比如 HTML5 video 标签或者第三方播放器(如 Video.js 或者 H5Player)。 在播放器中添加事件监听器来监控播放状态,例如 timeupdate、ended 等事件。 2、记录播…

跨境电商投放Facebook广告推广攻略!

在出海浪潮中,跨境电商已经成为企业连接不同市场、拓展国际业务的重要途径。Facebook,作为全球最大的社交平台之一,拥有超过20亿的活跃用户,为跨境卖家提供了一个无与伦比的营销舞台。有效利用Facebook广告,不仅能帮助…

MySQL导入SQL脚本---超详细介绍

1.新建xxx数据库,字符集选对。 2.在mysql安装目录下cmd进入小黑窗 3.执行mysql -uroot -p123456 --default-character-setutf8命令 4.use xxx; 5.source xxx.sql 执行完上面的命令等待结束就可以了 需要注意的是--default-character-setutf8,要不然可…

如何选择一款开放式耳机?六大独家选购技巧超详细汇总!

​喜欢户外活动的朋友们,你们都是懂得享受生活的达人吧!想象一下,在户外活动时,如果能有一副既适合场景又提供超棒音乐体验的耳机,那该多完美啊!这时候,开放式耳机就闪亮登场了!它的…

Android 多语言

0. Locale方法 Locale locale Locale.forLanguageTag("zh-Hans-CN"); 执行如下方法返回字符串如下: 方法 英文下执行 中文下执行 备注 getLanguage()zhzhgetCountry()CNCNgetDisplayLanguage()zh中文getDisplayCountry()CN中国getDisplayName()zh (…

微前端框架 之 定义全局状态管理库(五)

假设你正在使用基于单页面应用(SPA)的微前端框架。以下简化一个应用之间共享状态的例子。 1. 使用发布/订阅模式 // globalStateManager.js class GlobalStateManager { constructor() { this.subscribers {}; this.state {}; } subscribe(key…

XGBoost算法详解:机器学习分类中的强力工具

课程链接:AI小天才:让你轻松掌握机器学习 引言: XGBoost(Extreme Gradient Boosting)是一种高效的机器学习算法,被广泛应用于分类、回归、排序等任务中。其优秀的性能和灵活性使得它成为了数据科学领域的瑰…

RocketMQ实战教程之常见概念和模型

RocketMQ实战教程之常见概念和模型 常见概念与模型 官方文档: https://rocketmq.apache.org/zh/docs/introduction/02concepts 1 常见概念[重点] 消息(Message) 消息是 Apache RocketMQ 中的最小数据传输单元。生产者将业务数据的负载和拓展属性包装成消息发送…

JavaWeb-JS

目录 学习重点 什么是 JavaScript? Web标准 JS的引入方式 JS的基本语法 JS的函数 JS的对象 JS事件监听 学习重点 js 引入方式 js 基础语法 js 函数 js 对象 js 事件监听 什么是 JavaScript? Web标准 Web 标准也称为网页标准 ,由一系列的标准组成&#xff0…

七年之痒!一个 PHP 程序员职业生涯的自述

大家好,我是码农先森。 今年刚好是我毕业的第七个年头,在婚姻感情当中都有一种「七年之痒」的说法,这次我把这个词「七年之痒」用一次在我的职业生涯复盘上。七年前我从告别校园,踏入互联网编程行业,七年后我依旧在编…

FFmpeg之转码

文章目录 概述transcode小结 概述 上一篇说了主要的流程,也就是ffmpeg_parse_options的流程,如下图: 红色箭头的流程说的差不多了,接下来看看绿色框框,也就是transcode的流程。 transcode 还是先给出我画的流程图&…

如何利用InputStream类实现文件读取与处理?

哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…

mysql - 为什么MySQL不建议使用NULL作为列默认值?

为什么MySQL不建议使用NULL作为列默认值? InnoDB有4中行格式: Redundant : 非紧凑格式,5.0 版本之前用的行格式,目前很少使用,Compact : 紧凑格式,5.1 版本之后默认行格式,可以存储更多的数据Dynamic , Compressed : 和Compact类似,5.7 版本之后默认使…

K8S中Prometheus+Grafana监控

1.介绍 phometheus:当前一套非常流行的开源监控和报警系统。 运行原理:通过HTTP协议周期性抓取被监控组件的状态。输出被监控组件信息的HTTP接口称为exporter。 常用组件大部分都有exporter可以直接使用,比如haproxy,nginx,Mysql,Linux系统信…

C++质数的那些事(判断指数、区间筛质数、互质等等)

质数的定义:若一个正整数除了1和它自身之外不能被任何自然数整除,则该数称为质数,也叫素数。否则为合数。 质数的性质:质数的分布较为稀疏,对于一个足够大的数S,不超过S的质数大约有个,也就是说…

自组网实现

实现自组网的方法主要有以下几种,设备形态以及各自的特点归纳如下: 实现方法: 窄带自组网技术:以语音通信系统为代表,通常以12.5kHz和25kHz的信道间隔承载数据,能够支持包括语音、传感器数据等在内的低速…

有趣的css - 水波纹按钮

大家好,我是 Just,这里是「设计师工作日常」,今天分享的是一个好看有质感的水波纹按钮。 最新文章通过公众号「设计师工作日常」发布。 目录 整体效果核心代码html 代码css 部分代码 完整代码如下html 页面css 样式页面渲染效果 整体效果 &a…

Unity 代码实现Animator开始和结束播放动画回调

文章目录 1.代码2.使用方式3.注意事项 1.代码 using System; using System.Collections; using System.Collections.Generic; using UnityEngine;// 播放Animator并加入播放完成回调。 [RequireComponent(typeof(Animator))] public class AnimatorCallback : MonoBehaviour {…