logstash同步多个表jdbc
[root@host135 config]# more sync_multi_table_mysql2es.conf
#logstash输入配置
input {
#jdbc输入配置,用来指定mysql中需要同步的数据查询SQL及同步周期
jdbc {
jdbc_driver_library => "/soft/mysql-connector-java-5.1.49.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://192.168.1.14:13306/db_hxl"
jdbc_user => root
jdbc_password => mysql
# 是否开启分页
jdbc_paging_enabled => true
# 是否开启记录上次追踪的结果,也就是上次更新的时间,这个会记录到 last_run_metadata_path 的文件
use_column_value => true
#用来控制增量更新的字段,一般是自增id或者创建,更新时间,注意这里要采用sql语句中select采用的字段别名
tracking_column => "unix_ts_in_secs"
# tracking_column 对应字段的类型
tracking_column_type => "numeric"
# 设置定时任务间隔 含义:分、时、天、月、年,全部为*默认含义为每分钟跑一次任务,这里设置为每5分钟同步一次
schedule => "*/5 * * * * *"
#同步数据的查询sql语句
statement => "select id,name,f_int,f_dou,f_flo,date_format(create_time,'%Y-%m-%d %H:%i:%S') as create_time,date_fo
rmat(update_time,'%Y-%m-%d %H:%i:%S') as update_time, unix_timestamp(update_time) as unix_ts_in_secs from tb_es where
(unix_timestamp(update_time) > :sql_last_value AND update_time < NOW()) ORDER BY update_time ASC"
type => "tb_es"
last_run_metadata_path =>"/opt/logstash-6.8.5/logs/tb_es.txt"
}
jdbc {
jdbc_driver_library => "/soft/mysql-connector-java-5.1.49.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://192.168.1.14:13306/db_hxl"
jdbc_user => root
jdbc_password => mysql
# 是否开启分页
jdbc_paging_enabled => true
# 是否开启记录上次追踪的结果,也就是上次更新的时间,这个会记录到 last_run_metadata_path 的文件
use_column_value => true
#用来控制增量更新的字段,一般是自增id或者创建,更新时间,注意这里要采用sql语句中select采用的字段别名
tracking_column => "id"
# tracking_column 对应字段的类型
tracking_column_type => "numeric"
# 设置定时任务间隔 含义:分、时、天、月、年,全部为*默认含义为每分钟跑一次任务,这里设置为每5分钟同步一次
schedule => "*/5 * * * * *"
#同步数据的查询sql语句
statement => "select * from tb_es_notime where id>:sql_last_value"
type =>"tb_es_notime"
last_run_metadata_path => "/opt/logstash-6.8.5/logs/tb_es_notime.txt"
}
}
#logstash输入数据的字段匹配和数据过滤
filter {
mutate {
copy => { "id" => "[@metadata][_id]"}
remove_field => ["@version","@timestamp", "unix_ts_in_secs"]
}
}
#logstash输出配置
output {
#采用stdout可以将同步数据输出到控制台,主要是调试阶段使用
stdout { codec => "rubydebug"}
#指定输出到ES的具体索引
if[type] == "tb_es" {
elasticsearch {
hosts => ["http://192.168.1.134:19200"]
user => "elastic"
password => "elastic"
index => "index_tb_es"
document_id => "%{[@metadata][_id]}"
}
}
if[type] == "tb_es_notime" {
elasticsearch {
hosts => ["http://192.168.1.134:19200"]
user => "elastic"
password => "elastic"
index => "index_tb_es_notime"
document_id => "%{[@metadata][_id]}"
}
}
}
分类:
elasticsearch
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2022-11-02 mysql如何使用dblink
2022-11-02 oracle_fdw安装部署(yum方式)
2022-11-02 mysql_fdw安装使用
2021-11-02 开发使用的sql_mode