从父管道创建的存储桶表中读取特定的存储桶文件

时间:2018-08-22 11:07:52

标签: azure-data-factory

我有一个ADF(v1)管道P1,其单个活动的类型为HDInsightHive。这是每月的管道。关联的查询将生成一个分区存储桶的外部表(3个存储桶)。

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

  ../basefolder/2018/07/000000_0
  ../basefolder/2018/07/000000_1
  ../basefolder/2018/07/000000_2

因此,这些是与每月分区中的3个存储桶关联的3个文件(在示例中为2018年7月)。因此,由于存储分区,每个月将有这3个文件。

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

我需要一种方法,使我可以指示C1,C2和C3他们只能读取具有特定名称的文件。

问题在于,P1的输出数据集将成为C1,C2,C3的通用输入数据集。因此,我无法将文件名硬编码为该通用输入数据集的一部分。

这是我要实现的目标图:-

enter image description here

2 个答案:

答案 0 :(得分:0)

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

更新:它可以使用我描述的方法进行工作。

答案 1 :(得分:0)

如果您可以切换到ADF V2,我认为使用execute pipeline activity和ADF v2 parameters可以轻松实现。

相关问题