是"删除"在pentaho水壶锁表中一步,直到它完成从表中删除记录?

时间:2018-01-05 10:21:49

标签: database pentaho etl kettle pentaho-spoon

我有一个要求,即需要使用pentaho ETL作业从表中删除大量记录。我知道可以使用转换中的删除步骤轻松实现,但我害怕使用它,因为删除步骤可以锁定表的整个删除操作时间。由于记录很大并且删除记录可能需要很长时间,因此其他查询(可以尝试访问同一个表)将在该时间段内被阻止。我不确定我的怀疑是否正确。如果它是正确的,有没有办法写一个删除块中记录的作业?

1 个答案:

答案 0 :(得分:1)

它依赖于数据库,而不依赖于水壶。所以你最好还是:

a)截断表,而不是删除。截断通常很快,但会删除所有记录。

b)使用具有第一个转换的作业来删除记录,使用第二个转换来处理数据。

由于通常在同时输入表时从表中删除,我猜你正在进行选择性删除(使用WHERE子句)。所以选项(a)不是解决方案,而选项(b)可以很好地控制你正在使用的桌子的哪些部分,以避免你自己走路。