windows上使用logstash-input-jdbc
(一)安装logstash
下载链接 选择下载你要的对应的logstash版本,这个东西解压就能使用了
(二)安装logstash-input-jdbc
就是用执行logstash-plugin.bat install logstash-input-jdbc,linux上其实也是大同小异
(三)mysql数据库
在mysql中创建一个可以用于测试的数据库
执行以下脚本,创建一个表:
create table testtable (PersonID int, LastName varchar(255), FirstName varchar(255), City varchar(255), Date datetime(6));
可以看到:
往表中插入数据:
INSERT INTO testtable (PersonID, LastName, FirstName, City, Date) VALUES ('4005','Kallis','Jaques','Cape Town','2016-05-23 16:12:03.568810'); INSERT INTO testtable (PersonID, LastName, FirstName, City, Date) VALUES ('4004','Baron','Richard','Cape Town','2016-05-23 16:12:04.370460'); INSERT INTO testtable (PersonID, LastName, FirstName, City, Date) VALUES ('4003','McWell','Sharon','Cape Town','2016-05-23 16:12:06.874801');
结果:
(四)将数据导入es
Logstash 配置
在logstash文件夹中,我们要有一个logstash.conf文件,该文件是要配置并运行以获取必要结果的文件。
logstash.conf如下(注意:windows下的文本编码需要为ANSI,否则运行将会出错, 另外注意是"hosts", 我这边如果写成"host"会出错,另外下面长长的一段连接后面是我加上去的,如果不加上去,运行的时候会报时间什么的错误,mysql驱动要跟你的mysql数据库版本对应起来,否则会出错):
input { jdbc { jdbc_connection_string => "jdbc:mysql://localhost:3306/logstash_jdbc_test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC" jdbc_user => "root" jdbc_password => "123456" jdbc_driver_library => "D:\logstash-5.3.1\mysql-connector-java-8.0.13\mysql-connector-java-8.0.13.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_paging_enabled => "true" jdbc_page_size => "50000" statement_filepath => "D:\logstash-5.3.1\bin\jdbc.sql" schedule => "* * * * *" type => "jdbc" } } filter { json { source => "message" remove_field => ["message"] } } output { elasticsearch { hosts => ["localhost:9200"] index => "test-migrate" document_type => "data" document_id => "%{person_id}" } stdout { codec => json_lines } }
jdbc.sql内容如下:
然后你系统上要有elasticsearch以及安装一个elasticsearch-head方便查看数据。
在上面的配置文件中,提到了许多参数,例如:JDBC连接器应检查哪个数据库的数据,JDBC插件的位置,MySql访问的用户名和密码以及查询语句。将上述设置应用于“logstash.conf”文件后,通过键入以下命令运行:
logstash.bat -f logstash.conf
即可启动监听,然后你会发现你的数据已经导入到es之中,而且insert和update的时候也会同步进去。
我将Sharont改为SharontTest,你会发现es之中也已经同步进去了:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架