如何在 Azure 数据工厂 Copy activity 中使用源列对目标数据湖中的数据进行动态分区?

how can I use a source column for dynamically partitioning the data in target data lake in azure data factory Copy activity?

我正在使用 ADF 副本 activity,源是 SQL 服务器。

现在我可以决定根据日期字段提取全部数据或增量数据 - 所以当我这样做时 - 我想 create/overwrite 基于此列的数据湖中的文件夹。

源数据:

col1

第 2 列

第 3 列 过滤列(日期)

目标湖:

例如如果我提取 1 年的数据 - lake 中的文件夹结构应如下创建(基于 FilterColumn):

entity/2020/03/01/abc.csv

entity/2020/03/02/abc.csv

entity/2020/03/03/abc.csv

entity/2020/03/04/abc.csv

..

..

entity/2021/02/28/abc.csv

文件夹是根据源过滤器列动态创建的 - 也作为 select 查询的一部分。

关于如何在同一副本中实现此目的的建议 activity。

我觉得只有一份是做不到的activity。您可以通过 Lookup activity 和 For Each activity.

来做到这一点

步骤:

  1. 使用查找 activity 获取不同的 col3 值并将格式更改为 yy/mm/dd。

  1. 通过 For Each activity.
  2. 循环查找 activity 的输出

  1. 将不同的日期数据复制到 For Each 中相应的 CSV 文件 activity。

来源:

接收器:

接收器数据集: