MarkLogic-使用MLCP的增量负载

MarkLogic-使用MLCP的增量负载,marklogic,marklogic-9,mlcp,marklogic-dhf,Marklogic,Marklogic 9,Mlcp,Marklogic Dhf,MarkLogic版本:9.0-6.2 我们正在尝试使用mlcp将客户数据的日常更改加载到数据中心暂存中,然后使用协调流将更改引入数据中心最终 据我所知,“collector.sjs”用于返回需要协调的URI。在第1天满负荷后,收集器是否有办法识别前一天的更改并仅协调这些行 我有两个设计 在每次运行时保存批处理运行时间,并在收集器中使用逻辑返回具有较高批处理运行时间的URI(每个文档都使用批处理运行时间保存) 将每个文档保存到两个集合(customer和customer_currentDate)

MarkLogic版本:9.0-6.2

我们正在尝试使用mlcp将客户数据的日常更改加载到数据中心暂存中,然后使用协调流将更改引入数据中心最终

据我所知,“collector.sjs”用于返回需要协调的URI。在第1天满负荷后,收集器是否有办法识别前一天的更改并仅协调这些行

我有两个设计

  • 在每次运行时保存批处理运行时间,并在收集器中使用逻辑返回具有较高批处理运行时间的URI(每个文档都使用批处理运行时间保存)

  • 将每个文档保存到两个集合(customer和customer_currentDate),然后让催收员从customer_currentDate集合返回文档。但是,如果摄入和协调在不同的日期运行,则会出现问题

  • 将每个文档保存到两个集合(customer和customer_batchDateTime)中,然后创建一个标记(类似于流程集合中流程标识为“N”的行)。然后,收集器将扫描流程集合并查找流程索引为“N”的文档,并从customer\u batchDateTime集合返回文档。最后,writer.sjs会将PROCESS_IND改为“Y”

  • 在继续执行上述任何选项之前,我只想检查接收或协调过程中是否有任何内置功能,以便轻松识别增量/更改记录,这样我就不会过度设计该过程。

    我认为“内置”功能是将选项传递给收集器模块的能力。这允许您选择限制收集器返回内容的最佳方法


    对于您的用例,听起来最好/最简单的方法是每天将所有文档插入名为“input-(current date)”的集合中,然后将其作为选项输入到收集器模块中,以便它可以应用集合查询

    > P>作为替代,您可以考虑通过添加一个名为<代码>处理< /COD>的集合来触摸文档。在编写器运行后,您可以从协调脚本中的主脚本执行此操作。收集器不仅可以抑制已处理的文档,而且只能在未处理的文档上运行。可能比使用更具体的集合名称更简单、更健壮


    我们正在做一些非常相似的事情。在摄取过程中,我们将每个文档写入两个集合“customer”和“customer_”。然后,在协调过程中,催收员从“customer_Conference”集合返回文档。在writer.sjs中,在插入data hub FINAL后,我将对data hub暂存文档应用xdmp.documentRemoveCollections以删除“customer_”集合,以便下次不会拾取相同的文档。