标签:Lookup1 15 TableName 模式 ADF Platform Lookup 表名
本文属于【Azure Data Platform】系列。
接上文:【Azure Data Platform】ETL工具(14)——ADF控制流简介
本文介绍ADF 的lookup 详解
前言
Lookup活动,可以读取数据库中或文件系统中的数据然后作为参数,传输到后续的数据复制和数据转换活动中。但是ADF的lookup只能用于对象级别。也就是说用来定义文件名,表名等。并且这些都只能在同一个管道中实现。
它可以从多种数据源中读取数据,详细列表:支持的数据源。Lookup活动支持单行模式和数据模式(全部数据集),下面分别演示一下。
单行模式
单行模式就是从数据源中获取第一行的数据而不是全部数据。首先从数据库中获取用户表名,并把第一行传输到后续的操作中作为输入参数。
先创建一个管道,并通过下面的SQL获取数据库中所有表名。
select schema_name(schema_id)+'.'+name as Name
from sys.tables
然后使用一个存储过程把上面的表名以值的形式插入到日志表中:
CREATE TABLE [dbo].[Log](
[TableName] [varchar](max) NULL
)
GO
CREATE PROCEDURE [dbo].[sp_LogTBNames]
@TableName varchar(max)
AS
BEGIN
INSERT INTO [Log] Values(@TableName)
END
GO
拖拽一个“存储过程”活动并接收Lookup活动的输出:
找出上面创建的存储过程。
导入并在值中选择添加动态内容,选择Lookup1的输出作为参数值,如下图:
但是最终参数并不能直接选用,要再添加两部分,firstRow.Name, 也就是参数值为:@activity(‘Lookup1’).output.firstRow.Name
然后完成了搭建,并发布,调试:
检查结果:
接下来我们试一下数据模式,也就是整个数据集。
数组模式
首先数组模式与单行模式的区别是不可勾选【仅第一行】,这里我们沿用上面的pipeline,但是取消勾选【仅第一行】然后拖拽“设置变量”
点击空白处,创建一个变量TableName,并把类型设置为“数组”类型:
在设置变量中的变量页选择上面创建出来的变量“TableName”:
如下图所示,选择Lookup1中的输出值为TableName的输入值。
发布并调试,可以看到Lookup1的输出如下,是一个数组类型,而不是前面那种单值类型,单值模式显示的是【FirstRow】:
检查输入,也就是“设置变量”活动中的输入值:
标签:Lookup1,15,TableName,模式,ADF,Platform,Lookup,表名 来源: https://blog.csdn.net/DBA_Huangzj/article/details/123124753
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。