logstash jdbc 增量同步到kafka

logstash利用jdcb增量同步数据库说明

配置说明

做增量同步主要是更具sql_last_value的值做判断,如果符合条件才开始同步

配置文件如下:

input {
      stdin {
    }
    jdbc {
      #数据库地址
      jdbc_connection_string => "jdbc:oracle:thin:@//localhost/zaradb"
      jdbc_user => "game"
      jdbc_password => "PRVXWFxSOa" 
      #数据库驱动路径
      jdbc_driver_library => "/logstash-6.2.4/ojdbc7.jar"
      jdbc_driver_class => "Java::oracle.jdbc.driver.OracleDriver"
      #sql路径
      statement_filepath => "/logstash-6.2.4/pay_test.sql"
      #是否开启记录追踪
      record_last_run => "true"
      #是否需要追踪字段,如果为true,则需要指定tracking_column,默认是timestamp
      use_column_value => "true"
      #指定追踪的字段
      tracking_column => "pay_kafkatime"
      #追踪字段的类型,目前只有数字和时间类型,默认是数字类型
      tracking_column_type => "timestamp"
      #设置时区
      jdbc_default_timezone =>"Asia/Shanghai"
      #是否每次清除last_run_metadata_path的内容
      clean_run => "false"
      #这里可以手动设置:sql_last_value的值,默认时间是1970-01-01,默认数字是0
      last_run_metadata_path => "/logstash-6.2.4/logstash_jdbc_last_run"  
      #多久同步一次
      schedule => "*/5 * * * *"   
      #是否分页
      jdbc_paging_enabled => "true"
      jdbc_page_size => "50000"
    }
}

filter {
    json {
        source => "message"
        remove_field => ["message"]
    }
    mutate {
       #指定要删除的字段
       remove_field => "@version"
       remove_field => "@timestamp"
   }
}

output {
#     stdout { codec =>  rubydebug }
     kafka {
        #kafka topic
        topic_id => "test"
        #kafka地址
        bootstrap_servers => "localhost:9092"
        #json交互
        codec => "json"
        #client.id
        client_id => "test2"
 }
}

注意事项

插件将以sql_last_value存储在配置中的元数据文件的形式持久保存参数last_run_metadata_path。在查询执行后,该文件将被更新为当前值sql_last_value。下一次管道启动时,该值将通过从文件中读取来更新。如果 clean_run设置为true,则该值将被忽略,sql_last_value并将设置为1970年1月1日,如果use_column_value为true,则为0 ,就像没有执行任何查询一样。

如果数据库是非实时数据库,不能以时间作为追踪属性,不然同步的数据要么多要么少。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值