【ETL】Pentaho Server日志锁表及ID_BATCH重复问题

前言

在pentaho server上配置日志数据库之后,一般会遇到锁表和日志记录重复问题,这两个问题的原因都是因为ID_BATCH字段自增出现错误,按照kettle的设计逻辑,kettle不能预设用户在存储日志时使用何种数据库,所以它不能利用数据库本身的特性对ID_BATCH进行自增操作,而且kettle任务本身是并行运行的,这就导致在写入日志数据时会出现几条重复记录,而且这几条记录ID_BATCH相同,这也是锁表的原因,只要解决ID_BATCH自增问题,以上问题自然解决。

问题修复

pentaho开发团队在发现这个bug后,做了一个不太优美但是很有效的解决方案,既是用户自己编写自增逻辑,因为用户肯定知道自己的数据库,如何做自增。
这里有两个步骤:

1,新建辅助表

这里用mysql/mariadb举例:
在日志存储数据库中新建表trans_log_counter,该表有两个字段:ID(int型,主键,自增),NAME(vchar)。然后插入一条记录ID:10000,NAME:‘LOG_TABLES’,这里ID的值必须大于trans_log表中ID_BATCH最大值。
以后Kettle就利用这个表中的ID字段获取trans_log表中ID_BATCH的值,这样就能保证ID_BATCH的唯一性和自增性。

2,设置pentaho server

在《【ETL】Pentaho Kettle 日志扩展开发

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值