Database 是不是;删除“;在pentaho釜锁表中执行步骤,直到完成从表中删除记录为止?
我需要使用pentaho ETL作业从表中删除大量记录。我知道在转换中使用delete步骤很容易实现,但我担心使用delete步骤会在整个delete操作期间锁定表。由于记录很大,删除记录可能需要很长时间,因此其他查询(可以尝试访问同一个表)将在该时间段内被阻止。我不确定我的怀疑是否正确。如果它是正确的,有没有办法编写一个删除块中记录的作业 它依赖于数据库,而不是釜。因此,您最好: a) 截断表,而不是删除。截断通常很快,但会删除所有记录 b) 使用具有第一次转换的作业来删除记录,并使用第二次转换来处理数据Database 是不是;删除“;在pentaho釜锁表中执行步骤,直到完成从表中删除记录为止?,database,pentaho,etl,kettle,pentaho-spoon,Database,Pentaho,Etl,Kettle,Pentaho Spoon,我需要使用pentaho ETL作业从表中删除大量记录。我知道在转换中使用delete步骤很容易实现,但我担心使用delete步骤会在整个delete操作期间锁定表。由于记录很大,删除记录可能需要很长时间,因此其他查询(可以尝试访问同一个表)将在该时间段内被阻止。我不确定我的怀疑是否正确。如果它是正确的,有没有办法编写一个删除块中记录的作业 它依赖于数据库,而不是釜。因此,您最好: a) 截断表,而不是删除。截断通常很快,但会删除所有记录 b) 使用具有第一次转换的作业来删除记录,并使用第二次转
由于在同时输入表时从表中删除是不常见的,我猜您是在进行选择性删除(使用WHERE子句)。因此,选项(a)不是一个解决方案,而选项(b)为您提供了一个很好的控制,可以控制您正在处理的表的哪些部分,以避免您穿着自己的鞋子走路。是的,它是选择性查询。就备选方案b而言,它不能为问题提供正确的解决办法。实际上,两个进程同时使用同一个表,其中一个进程是用于删除记录的kettle作业,另一个进程用于读取表以进行其他处理。