大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说Windows Logstash同步 Sqlserver 到Elasticsearch[亲测有效],希望您对编程的造诣更进一步.
1下载与Elasticsearch对应版本Logstash7.13.2 与数据库驱动JDBC
下载地址:https://artifacts.elastic.co/downloads/logstash/logstash-7.13.2-windows-x86_64.zip JDBC https://docs.microsoft.com/en-us/sql/connect/jdbc/download-microsoft-jdbc-driver-for-sql-server?view=sql-server-ver15
2.Logstash下载完成,解压,在bin文件下面创建jdbcconfig文件夹
3.Logstash配置
在jdbcconfig文件夹下面创建jdbc.conf,如图:
配置如下:
input { stdin { } jdbc { #数据库驱动所在位置,可以是绝对路径或者相对路径 jdbc_driver_library => "D:softwareElasticsearchlogstash-7.13.2injdbcconfigmssql-jdbc-9.2.1.jre8.jar" #驱动类名 jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver" #数据库连接 jdbc_connection_string => "jdbc:sqlserver://服务器名称;DatabaseName=CstCRMTest;" #用户 jdbc_user => "sa" #密码 jdbc_password => "const-123456" #设置定时任务间隔 含义:分、时、天、月、年,全部为*默认含义为每分钟跑一次任务 schedule => "* * * * *" #sql语句 statement => "SELECT [Id] ,[QuoteCode] ,[QuoteName] ,[CustomerId] ,[QuotePerson] ,[UserId] ,[QuotePhone] ,[PayType] ,[QuoteVailDate] ,[LeadTime] ,[QuoteDate] ,[CompanyPhone] ,[CompanyAddress] ,[CompanyUrl] ,[Remark] ,[CreatedTime] ,CONVERT (VARCHAR (30),UpdatedTime,25) AS updatedTime ,[CreatedUser] ,[UpdatedUser] FROM [CstCRMTEST].[dbo].[T_Quote] where updatedTime>:sql_last_value" #sql可执行文件 #statement_filepath => "路径" #是否开启记录上次追踪的结果,也就是上次更新的时间,这个会记录到 last_run_metadata_path 的文件 use_column_value => true # 对应字段的类型 tracking_column_type => "timestamp" #如果 use_column_value 为true, 配置本参数,追踪的 column 名,可以是自增id或者时间 tracking_column => "updatedTime" #是否记录上次执行结果, 如果record_last_run为真,将会把上次执行到的 tracking_column 字段的值记录下来,保存到 last_run_metadata_path 指定的文件中 record_last_run => true # 记录上一次追踪的结果值,保存文件到对应路径中 last_run_metadata_path => "D:softwareElasticsearchlogstash-7.13.2injdbcconfigupdatedTime.txt" # 索引类型 #type => "_doc" # 数据库字段名称大写转小写 lowercase_column_names => false #是否清除 last_run_metadata_path 的记录,如果为真那么每次都相当于从头开始查询所有的数据库记录 #clean_run : } } output { elasticsearch { # ES的IP地址及端口 hosts => ["localhost:9200"] # 索引名称 可自定义(只可以小写) index => "quote" document_type => "out" # 需要关联的数据库中有有一个id字段,对应类型中的id document_id => "%{Id}" } stdout { # codec => json_lines #设置输出的格式 codec => line { format => "updatedTime: %{[updatedTime]}" } } }
配置完成 bin 目录下,执行.logstash -f .jdbcconfigjdbc.conf –path.data=/jdbcconfig/
Windows Logstash同步 Sqlserver 到Elasticsearch
原文地址:https://www.cnblogs.com/wxxf/p/15061452.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/6005.html