MarkLogic版本:9.0-6.2
我们正在尝试使用MLCP加载到数据集线器分期客户数据的日变化,然后使用一个和声流程以使变为数据 - 轮毂FINAL。
据我了解,“ collector.sjs”用于返回需要协调的uri。在第1天满负荷运行之后,收集器有什么方法可以识别前一天的变化并仅协调那些行?
我有几种设计
保存该批处理运行时间与每一个运行,并具有在收集器中的逻辑,以返回具有较高的批处理运行时间的URI(每个文档保存与批处理运行时间)
将每个文档保存到两个集合(customer和customer_currentDate),然后让收集器从customer_currentDate集合返回文档。但是,如果摄取和协调运行在不同的日期,则会出现问题
保存每个文件,以两个集合(客户和customer_batchDateTime),然后创建一个标记(如进程集合中的一排PROCESS_IND为“N”的东西)。然后,收集器将遍历PROCESS收集并查找PROCESS_IND为'N'的文档,并从customer_batchDateTime收集返回文档。最后,writer.sjs将PROCESS_IND设置为'Y'
在进行上述任何选择之前,我只想检查摄取或协调过程中是否有任何内置功能来轻松识别增量/更改记录,因此我不会过度设计该过程。
答案 0 :(得分:1)
我认为“内置”功能是将选项传递给收集器模块的功能。这使您可以选择最佳方法来限制收集器返回的内容。
对于您的用例,听起来最好/最简单的方法是每天将所有文档插入名为的集合中。 “输入-(当前日期)”,然后将其作为选项提供给收集器模块,以便它可以应用收集查询。
答案 1 :(得分:0)
作为替代方案,您可以考虑通过添加例如名为processed
的集合来触摸暂存中的文档。写程序运行后,您可以从协调脚本中的主脚本中执行此操作。然后,收集器可以简单地禁止处理文档,并且只能在未处理的文档上运行。比使用更具体的集合名称更简单,更可靠。
HTH!