其他分享
首页 > 其他分享> > 【Azure Data Platform】ETL工具(15)——ADF Lookup详解

【Azure Data Platform】ETL工具(15)——ADF 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