我有一个目录,其中包含多个文件,并且在多个数据收集器之间共享该目录。我有一份工作来处理这些文件并将其放在目标位置。因为记录很大,所以我想在多个数据收集器中运行该作业。但是当我尝试时,我在目的地得到了重复的条目。有没有一种方法可以实现而不重复记录。谢谢
答案 0 :(得分:1)
您可以使用kafka。例如:
使用此架构,您可以运行与kafka主题分区数量一样多的收集器。 希望对您有帮助。
答案 1 :(得分:0)
复制my answer from Ask StreamSets:
目前,无法在多个数据收集器之间自动对目录内容进行分区。
您可以在多个数据收集器上运行类似的管道,并在文件名模式配置中使用不同的字符范围手动对源中的数据进行分区。例如,如果您有两个数据收集器,并且文件名分布在整个字母上,则第一个实例可以处理[a-m]*
,第二个实例可以处理[n-z]*
。
一种方法是将“文件名模式”设置为runtime parameter-例如${FileNamePattern}
。然后,您可以在管道的“参数”标签中,或者在通过CLI,API,UI或控制中心启动管道时,为模式设置值。