【问题标题】:Does "Delete" step in pentaho kettle lock table until it finishes deleting the records from the table?pentaho水壶锁表中的“删除”步骤是否完成从表中删除记录?
【发布时间】:2018-01-05 10:21:48
【问题描述】:

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

【问题讨论】:

    标签: database pentaho etl kettle pentaho-spoon


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 是的,这是选择性查询。就选项 b 而言,它不能为问题提供正确的解决方案。同一张表实际上同时被两个进程使用,其中一个进程是用于删除记录的kettle作业,另一个进程用于读取该表以进行其他处理。
    猜你喜欢
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多