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

一开始我的配置文件如上这样,怎么改都无法将: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的情况了。具体怎样做还是看你喜欢那种。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值