【问题标题】:Large dataset processing using Mule ESB from database: how to update the processed records based on certain batch size?使用数据库中的 Mule ESB 处理大型数据集:如何根据一定的批量大小更新处理过的记录?
【发布时间】:2013-01-20 18:19:31
【问题描述】:

我有大量记录要处理,例如:100,000 条记录。我的用例有 4 个步骤:

  1. 使用 jdbc 入站适配器从数据库表中挑选记录
  2. 将记录转换为xml格式
  3. 将消息发布到队列中
  4. 然后用一些状态标志更新相同的记录,因为它已经被处理了,这样它就不会被再次拾取

我不想一次性从表中选择所有记录进行处理:有没有办法可以分批选择并且不想为一条记录更新表?有没有批量/批量更新的选项?

或者还有其他更好的方法来处理这个用例吗?任何建议都非常感谢。

【问题讨论】:

    标签: jdbc mule esb


    【解决方案1】:

    我会编写 SQL 选择查询以仅返回 N 条记录(如 LIMIT 100 或等效项),其中的 where 子句根据状态标志排除已处理的记录。

    【讨论】:

    • 您可以保存最后处理的 id(任何您想要的地方),而不是使用状态标志,并不断更新此记录,直到您处理完所有内容......您的选择
    • 所以你会先选择最后处理的id,然后选择批次,然后更新最后处理的id?这听起来不错,但是如何使用定期轮询数据库以获取记录的 JDBC 入站端点来做到这一点?我猜你会使用<poll> 路由器或quartz 端点呢?
    • 嗨,大卫,但其他记录如何
    • @DavidDossot 是的,我想是的。只是建议如果他没有状态标志列或不想创建一个。
    • @user2044172 在这种情况下,给智者的话是不够的:P 我认为缺少一些东西:P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    相关资源
    最近更新 更多