如何在 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.
来做到这一点
步骤:
- 使用查找 activity 获取不同的 col3 值并将格式更改为 yy/mm/dd。
- 通过 For Each activity.
循环查找 activity 的输出
- 将不同的日期数据复制到 For Each 中相应的 CSV 文件 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.
来做到这一点步骤:
- 使用查找 activity 获取不同的 col3 值并将格式更改为 yy/mm/dd。
- 通过 For Each activity. 循环查找 activity 的输出
- 将不同的日期数据复制到 For Each 中相应的 CSV 文件 activity。
来源:
接收器:
接收器数据集: