数据工厂/数据流 - 基于多个记录的条件拆分

Data Factory / Data Flow - conditional split based on a number of records

我需要将一个巨大的数据集拆分成多个文件,每个文件不能超过 100 000 行。 我不知道数据流和条件拆分是否可行?

如果您只想按固定的行数拆分,我创建了一个简单的测试。

  1. 在数据流中声明一个参数来存储源数据集的行数。如果您的源数据集是 Azure sql,您可以使用 Lookup activity 获取最大值 Row_No。如果您的源数据集是 Azure 存储,您可以使用 Azure Function activity 来获取最大值 Row_No。然后将值传递给参数。

  2. 这里为了测试,设置一个静态默认值。

  3. 然后我们可以设置Number of partitions expression $RowCount/10,如果你想要每个文件10行。

  4. 这里可以设置分割后的文件名

  5. 我的源数据集包含 50 行,因此 ADF 会将其拆分为 5 个文件。从Id列来看,随机取了10行数据。

您可以使用 2 个数据流实现此目的。 1 获取行数,另一个进行分区。这也可以在未来使用缓存接收器在 1 个数据流中实现。