如何使用Azure Data Factory通过SQL查询复制指定创建日期的表
使用Azure Data Factory创建管道复制指定创建日期的SQL表
1. 添加Lookup活动获取目标表列表
在管道中添加Lookup活动,将其数据源配置为你的SQL数据库,然后在查询编辑器中执行以下SQL语句(已修正原语句的语法错误,移除末尾多余括号):
select name, format(create_date, 'yyyyMMdd') creationdate from sys.tables where cast(create_date as date) = '2024-04-23'
该查询会返回所有2024年4月23日创建的表名,以及格式化后的创建日期字符串。
2. 添加ForEach活动遍历表列表
在Lookup活动后添加ForEach活动,将其Items属性绑定为Lookup活动的输出结果:@activity('Lookup活动名称').output.value
在ForEach活动内部,为每个遍历的表设置两个参数:
parameter1:绑定当前表名,取值为@item().nameparameter2:绑定当前表的创建日期,取值为@item().creationdate
3. 在ForEach内配置Copy活动的源
在ForEach活动中添加Copy活动,将源配置为你的SQL数据库:
- 选择「表名或查询」模式,使用参数化表名:
dbo.@{item().name}
这样Copy活动会动态读取当前遍历的目标表数据。
4. 配置Copy活动的接收器
接收器选择你需要的存储服务(如Blob存储、ADLS Gen2等):
- 文件夹路径设置为
@{item().creationdate},同创建日期的表会存入对应命名的文件夹 - 文件名设置为
@{item().name}.csv,确保每个表生成独立的CSV文件
目标表示例
以下是符合条件的表清单示例:
NAME CREATION DATE sysdiagrams 20240423 Customer 20240423 ProductModel 20240423 ProductDescription 20240423 Product 20240423 ProductModelProductDescription 20240423 ProductCategory 20240423 BuildVersion 20240423 ErrorLog 20240423 Address 20240423 CustomerAddress 20240423 SalesOrderDetail 20240423 SalesOrderHeader 20240423
内容的提问来源于stack exchange,提问作者Bhuvan Gutta
相关产品推荐
相关产品推荐

