文章目录
- 背景
- 源码分析
-
- 锁表场景1:资源库锁表
- 锁表场景2:写日志锁表
-
- 在哪里配置的kettle_log_table?
- 官方解释
-
- 自增 SQL 获取 BatchI 原理
- 解决
-
- 自增 SQL 获取 BatchID
背景
Kettle 7.1.0 经常出现锁表的情况,体现为在数据库里有一条锁表 SQL,然后整个 Kettle 都无法运行。😂😂😂
LOCK TABLES xxx WRITE;
‼️ 懵逼啊,之前也没用过 Kettle,那么 Kettle 为啥会执行这个 SQL 去锁表呢?😩
源码分析
通过查阅源码,发现只有两种场景会锁表:
锁表场景1:资源库锁表
当 Kettle 使用数据库作为资源库时,进行保存的时候,就会锁资源库: