input {
stdin {}
jdbc {
type => "dbms_data_catalog"
jdbc_connection_string => "jdbc:postgresql://192.9.30.42:5432/resourceregister_cp"
# 数据库连接账号密码;
jdbc_user => "postgres"
jdbc_password => "postgres"
# MySQL依赖包路径;
jdbc_driver_library => "D:\DLSP\platform\webapps\ElasticSearch\logstash-7.13.3\bin\databaseDriverJar\postgresql-42.2.23.jar"
# the name of the driver class for mysql
jdbc_driver_class => "org.postgresql.Driver"
#是否开启分页
jdbc_paging_enabled => "true"
#分页条数
jdbc_page_size => "50000"
# 执行的sql 文件路径+名称
#statement_filepath => "/data/my_sql2.sql"
#SQL语句,也可以使用statement_filepath来指定想要执行的SQL
#statement => "SELECT * FROM `user` where id > :sql_last_value"
statement => "select
'数据服务资源>现状数据' as moudle_path ,
'dbms_data_catalog' as resource_table ,
catalogid,
catalogname,
catalogcode,
nodetype::text,
catalogtype::text,
description,
display_order::text,
create_time::text,
status::text,
parentid,
catalogorganization,
catalog_url
from dbms_data_catalog"
#每一分钟做一次同步
schedule => "* * * * *"
#是否将字段名转换为小写,默认true(如果有数据序列化、反序列化需求,建议改为false)
lowercase_column_names => true
# 是否记录上次执行结果,true表示会将上次执行结果的tracking_column字段的值保存到last_run_metadata_path指定的文件中;
record_last_run => true
# 需要记录查询结果某字段的值时,此字段为true,否则默认tracking_column为timestamp的值;
use_column_value => true
# 需要记录的字段,用于增量同步,需是数据库字段
tracking_column => "catalogid"
# record_last_run上次数据存放位置;
last_run_metadata_path => "D:\DLSP\platform\webapps\ElasticSearch\logstash-7.13.3\sql_last_value"
#是否将字段名转换为小写,默认true(如果有数据序列化、反序列化需求,建议改为false)
clean_run => false
}
jdbc {
type => "dbms_data_bigdata"
jdbc_connection_string => "jdbc:postgresql://192.9.30.42:5432/resourceregister_cp"
# 数据库连接账号密码;
jdbc_user => "postgres"
jdbc_password => "postgres"
# MySQL依赖包路径;
jdbc_driver_library => "D:\DLSP\platform\webapps\ElasticSearch\logstash-7.13.3\bin\databaseDriverJar\postgresql-42.2.23.jar"
# the name of the driver class for mysql
jdbc_driver_class => "org.postgresql.Driver"
#是否开启分页
jdbc_paging_enabled => "true"
#分页条数
jdbc_page_size => "50000"
# 执行的sql 文件路径+名称
#statement_filepath => "/data/my_sql2.sql"
#SQL语句,也可以使用statement_filepath来指定想要执行的SQL
#statement => "SELECT * FROM `user` where id > :sql_last_value"
statement => "select
'数据服务资源>现状数据' as moudle_path ,
'dbms_data_bigdata' as resource_table ,
id,
name,
alias,
parentid,
connectionid,
regist_type::text,
url,
register,
regist_date::text,
remark,
job_status,
job_id
from dbms_data_bigdata"
#每一分钟做一次同步
schedule => "* * * * *"
#是否将字段名转换为小写,默认true(如果有数据序列化、反序列化需求,建议改为false)
lowercase_column_names => true
# 是否记录上次执行结果,true表示会将上次执行结果的tracking_column字段的值保存到last_run_metadata_path指定的文件中;
record_last_run => true
# 需要记录查询结果某字段的值时,此字段为true,否则默认tracking_column为timestamp的值;
use_column_value => true
# 需要记录的字段,用于增量同步,需是数据库字段
tracking_column => "id"
# record_last_run上次数据存放位置;
last_run_metadata_path => "D:\DLSP\platform\webapps\ElasticSearch\logstash-7.13.3\sql_last_value"
#是否将字段名转换为小写,默认true(如果有数据序列化、反序列化需求,建议改为false)
clean_run => false
}
}
filter {
json {
source => "message"
remove_field => ["message"]
}
mutate {
remove_field => ["@timestamp","@version"]
}
}
output {
if [type] == "dbms_data_bigdata" {
elasticsearch {
# 配置ES集群地址
hosts => ["192.9.30.195:9200"]
# 索引名字,必须小写
index => "dbms_data"
#数据唯一索引(建议使用数据库KeyID)
document_id => "%{id}"
}
}else if [type] == "dbms_data_catalog" {
elasticsearch {
# 配置ES集群地址
hosts => ["192.9.30.195:9200"]
# 索引名字,必须小写
index => "dbms_data"
#数据唯一索引(建议使用数据库KeyID)
document_id => "%{catalogid}"
}
}
stdout {
codec => json_lines
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义