绊脚石乃是进身之阶。

logstash 的tracking_column提示找不到追踪字段

Logstash | 作者 clean | 发布于2018年04月19日 | 阅读数:7624

input {
    jdbc {
        #type => "b"
      jdbc_connection_string => "jdbc:mysql://ip:3306/vw"
      jdbc_user => "xxx"
      jdbc_password => "xxxx"
      jdbc_driver_library => "/opt/logstash6/mysql/mysql-connector-java-5.1.30-bin.jar"
      jdbc_driver_class => "com.mysql.jdbc.Driver"
      jdbc_paging_enabled => "true"
      jdbc_page_size => "150000"
      use_column_value => true
      tracking_column => locateTime
      record_last_run => true
      last_run_metadata_path => "/opt/logstash6/inputtxt/trackv/vw_z_history.txt"
       statement => "select id
        locateTime
        from ${z_history_table}  where locateTime > :sql_last_value  and lng_w84 != '0.000000' AND lat_w84 != '0.000000' order by locateTime asc"
          schedule => "* * * * *"
         # schedule => "0 * * * *"
      # 索引类型
                codec=>json
    }
}
 
 
在数据库中, locateTime 字段就是这样定义的, 其中 T 是大写,
提示: 
 
tracking_column not found in dataset. {:tracking_column=>"locateTime"}
 
 
如果将  tracking_column => locatetime 即将 T换成小写 t
不会报错, 追踪文件中的 时间没有修改, 如果默认空文件, 里面一直是空的。 如果给了一个 默认时间, 启动的时候 sql语句也从文件中读取该时间的值, 但是不更新。 
已邀请:

suhzh

赞同来自:

貌似tracking_column的参数应该是一个字符串,你这算什么,试试"locatetime",空文件或者不更新,都是无法获取这个字段的原因

要回复问题请先登录注册