logstash 能读取:sql_last_value但无法更新的问题

  • Post author:
  • Post category:其他


一开始我的配置文件如上这样,怎么改都无法将:sql_last_value自动更新到last_run,后来将这两个属性给

删除了,直接在sql上进行分页查询:sql_last_value就能自动更新了,还不知道为什么使用这两个

属性会导致无法将:sql_last_value更新last_run文件

为什么logstash开启分页无法更新:sql_last_value?

进过测试和观察发现是因为分页的条数和sql语句的问题,此时我的分页大小是1000

例如我上面的sql语句select * from test where modi_date>=:sql_last_value

此时这条sql可能查出来的数据是1w条或者两万条,但你每页只有1000条数据所以此时这个任务还没有完,看后台程序会有

多条语句发出0-1000条,1001-2000条,2001-3000条这样的sql语句,直到查询完所有的1w条或者2w条数据才算做这个任务完成了然后就会更新:sql_last_value值。如果想执行效率快的话可以在modi_date后面加限制比如sqlserver中可以这样

modi_date>=:sql_last_value and modi_date<=cast(:sql_last_value as datetime)+0.05 这样一次就不会查出很多数据。

当然其实第一次看起来没有更新:sql_last_value也没有问题,因为第一次导入数据进es差不多都是全量更新,数据量比较多所以看起来似乎是没有更新:sql_last_value值。当全量更新完后就相当于增量更新了,就不会有看起来不更新:sql_last_value的情况了。具体怎样做还是看你喜欢那种。



版权声明:本文为time_age原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。