Azure data factory 从父管道创建的Bucked表中读取特定bucket文件

Azure data factory 从父管道创建的Bucked表中读取特定bucket文件,azure-data-factory,Azure Data Factory,我有一个ADF(v1)管道P1,具有HDInsightHive类型的单个活动。这是一个每月的管道。关联的查询生成一个分区和带扣的外部表(3个bucket) 因此,当我们查看它生成的外部数据时,它看起来是这样的:- ../basefolder/2018/07/000000_0 ../basefolder/2018/07/000000_1 ../basefolder/2018/07/000000_2 因此,这些是与每月分区中的3个bucket相关联的3个文件(在本例中是2018年7月)

我有一个ADF(v1)管道P1,具有HDInsightHive类型的单个活动。这是一个每月的管道。关联的查询生成一个分区和带扣的外部表(3个bucket)

因此,当我们查看它生成的外部数据时,它看起来是这样的:-

  ../basefolder/2018/07/000000_0
  ../basefolder/2018/07/000000_1
  ../basefolder/2018/07/000000_2
因此,这些是与每月分区中的3个bucket相关联的3个文件(在本例中是2018年7月)。因为bucketing,每个月都会有这3个文件

现在我想再次创建HDInsightHive类型的3个子管道(但也可以是不同的类型,这不是imp),这将取决于P1,即等待P1完成给定月份切片的处理。假设这三条管线是C1、C2、C3。但是,尽管所有3个都应该等待P1完成给定月份的处理,但当C1、C2、C3在该月份开始处理时,它们应该分别消耗000000_0、000000_1和000000_2。如果我只创建3个管道,将P1作为父管道,理想情况下,它们将开始使用所有3个文件

我需要一种方法,这样我就可以命令C1、C2和C3只读取具有特定名称的文件

问题在于P1的输出数据集将是C1、C2、C3的公共输入数据集。因此,我无法将文件名硬编码为这个公共输入数据集的一部分

以下是我试图实现的目标的示意图:-


我想到的一个解决方案是,对于父管道P1,即使它是单个活动,我将声明3个输出数据集D1、D2、D3,它们具有不同的输出文件名。然后当我声明3个子管道C1,C2,C3时,我将把它们指向D1,D2,D3。这只是一个模糊的想法,我将不得不围绕它做一个POC


更新:它使用我描述的方法工作。

如果您可以切换到ADF V2,我认为使用和ADF V2很容易实现