数据工厂/数据流 - 基于多个记录的条件拆分
Data Factory / Data Flow - conditional split based on a number of records
我需要将一个巨大的数据集拆分成多个文件,每个文件不能超过 100 000 行。
我不知道数据流和条件拆分是否可行?
如果您只想按固定的行数拆分,我创建了一个简单的测试。
在数据流中声明一个参数来存储源数据集的行数。如果您的源数据集是 Azure sql,您可以使用 Lookup activity 获取最大值 Row_No。如果您的源数据集是 Azure 存储,您可以使用 Azure Function activity 来获取最大值 Row_No。然后将值传递给参数。
这里为了测试,设置一个静态默认值。
然后我们可以设置Number of partitions expression $RowCount/10
,如果你想要每个文件10行。
这里可以设置分割后的文件名
我的源数据集包含 50 行,因此 ADF 会将其拆分为 5 个文件。从Id列来看,随机取了10行数据。
您可以使用 2 个数据流实现此目的。 1 获取行数,另一个进行分区。这也可以在未来使用缓存接收器在 1 个数据流中实现。
我需要将一个巨大的数据集拆分成多个文件,每个文件不能超过 100 000 行。 我不知道数据流和条件拆分是否可行?
如果您只想按固定的行数拆分,我创建了一个简单的测试。
在数据流中声明一个参数来存储源数据集的行数。如果您的源数据集是 Azure sql,您可以使用 Lookup activity 获取最大值 Row_No。如果您的源数据集是 Azure 存储,您可以使用 Azure Function activity 来获取最大值 Row_No。然后将值传递给参数。
这里为了测试,设置一个静态默认值。
然后我们可以设置Number of partitions expression
$RowCount/10
,如果你想要每个文件10行。这里可以设置分割后的文件名
我的源数据集包含 50 行,因此 ADF 会将其拆分为 5 个文件。从Id列来看,随机取了10行数据。
您可以使用 2 个数据流实现此目的。 1 获取行数,另一个进行分区。这也可以在未来使用缓存接收器在 1 个数据流中实现。