使用 SQL Server Integration Services (SSIS) 计划 U-SQL 作业
本文介绍如何使用 SQL Server Integration Service (SSIS) 安排和创建 U-SQL 作业。
重要
Azure Data Lake Analytics于 2024 年 2 月 29 日停用。 通过此公告了解更多信息。
对于数据分析,组织可以使用 Azure Synapse Analytics 或 Microsoft Fabric。
先决条件
用于 Integration Services 的 Azure 功能包提供 Azure Data Lake Analytics 任务和 Azure Data Lake Analytics 连接管理器,该管理器可帮助连接 Azure Data Lake Analytics 服务。 若要使用此任务,请务必:
Azure Data Lake Analytics 任务
Azure Data Lake Analytics 任务允许用户向 Azure Data Lake Analytics 帐户提交 U-SQL 作业。
了解如何配置 Azure Data Lake Analytics 任务。
可使用 SSIS 内置函数和任务从不同位置获取 U-SQL 脚本,以下场景介绍如何针对不同用户案例配置 U-SQL 脚本。
场景 1-使用内联脚本调用 tvf 和存储过程
在 Azure Data Lake Analytics 任务编辑器中,将 SourceType 配置为 DirectInput,并将 U-SQL 语句置于 USQLStatement 中。
为了便于维护和代码管理,只需将简短的 U-SQL 脚本作为内联脚本,例如,可以调用 U-SQL 数据库中现有的表值函数和存储过程。
相关文章:如何将参数传递到存储过程
场景 2-使用 Azure Data Lake Store 中的 U-SQL 文件
通过使用 Azure 功能包中的 Azure Data Lake Store 文件系统任务,还可使用 Azure Data Lake Store 中的 U-SQL 文件。 通过这种方法,可使用存储在云上的脚本。
按照以下步骤设置 Azure Data Lake Store 文件系统任务和 Azure Data Lake Analytics 任务之间的连接。
设置任务控制流
在 SSIS 包设计视图中,添加一个 Azure Data Lake Store 文件系统任务、一个 Foreach 循环容器和一个位于 Foreach 循环容器内的 Azure Data Lake Analytics 任务。 Azure Data Lake Store 文件系统任务有助于将 ADLS 帐户中的 U-SQL 文件下载到临时文件夹。 Foreach 循环容器和 Azure Data Lake Analytics 任务有助于将临时文件夹下的每个 U-SQL 文件作为 U-SQL 作业提交给 Azure Data Lake Analytics 帐户。
配置 Azure Data Lake Store 文件系统任务
- 将“操作”设置为“CopyFromADLS”。
- 设置 AzureDataLakeConnection,详细了解 Azure Data Lake Store 连接管理器。
- 设置 AzureDataLakeDirectory。 指向存储 U-SQL 脚本的文件夹。 使用相对于 Azure Data Lake Store 帐户根文件夹的相对路径。
- 将“目标”设置为缓存下载的 U-SQL 脚本的文件夹。 此文件夹路径将在 Foreach 循环容器中用于 U-SQL 作业提交。
详细了解 Azure Data Lake Store 文件系统任务。
配置 Foreach 循环容器
在“集合”页上,将“枚举器”设置为“Foreach 文件枚举器”。
将“枚举器配置”组下的“文件夹”设置为包含下载的 U-SQL 脚本的临时文件夹。
将“枚举器配置”下的“文件”设置为
*.usql
,使循环容器仅捕获以.usql
结尾的文件。在“变量映射”页中,添加一个用户定义变量,获取每个 U-SQL 文件的文件名。 将“索引”设置为 0 以获取文件名。 在本示例中,定义一个名为
User::FileName
的变量。 此变量将用于动态地获取 U-SQL 脚本文件连接,并在 Azure Data Lake Analytics 任务中设置 U-SQL 作业名称。
配置 Azure Data Lake Analytics 任务
将“SourceType”设置为“FileConnection”。
将“FileConnection”设置为指向从 Foreach 循环容器返回的文件对象的文件连接。
创建此文件连接:
在“FileConnection”设置中选择“<新建连接...>”。
将“使用类型”设置为“现有文件”,并将“文件”设置为任何现有文件的文件路径。
在 “连接管理器” 视图中,右键单击创建的文件连接,然后选择 “属性”。
在“属性”窗口中,展开“表达式”,并将“ConnectionString”设置为 Foreach 循环容器中定义的变量,例如
@[User::FileName]
。
将“AzureDataLakeAnalyticsConnection”设置为要向其提交作业的 Azure Data Lake Analytics 帐户。 详细了解 Azure Data Lake Analytics 连接管理器。
设置其他作业配置。 了解详细信息。
使用“表达式”动态地设置 U-SQL 作业名称:
在“表达式”页中,为“JobName”添加新的表达式键值对。
将 JobName 的值设置为在 Foreach 循环容器中定义的变量,例如
@[User::FileName]
。
场景 3-使用 Azure Blob 存储中的 U-SQL 文件
通过使用 Azure 功能包中的 Azure Blob 下载任务,可使用 Azure Blob 存储中的 U-SQL 文件。 通过这种方法,可使用云中的脚本。
这些步骤与情景 2:使用 Azure Data Lake Store 中的 U-SQL 文件中的步骤类似。 将 Azure Data Lake Store 文件系统任务更改为 Azure Blob 下载任务。 详细了解 Azure Blob 下载任务。
控制流如下所示:
场景 4-使用本地计算机上的 U-SQL 文件
除了使用存储在云中的 U-SQL 文件,还可以使用本地计算机上的文件或与 SSIS 包一起部署的文件。
右键单击 SSIS 项目中的“连接管理器”,然后选择“新建连接管理器”。
选择“ 文件类型 ”,然后选择“ 添加...”。
将“使用类型”设置为“现有文件”,并将“文件”设置为本地计算机上的文件。
添加“Azure Data Lake Analytics 任务”并:
- 将“SourceType”设置为“FileConnection”。
- 将 FileConnection 设置为创建的文件连接。
完成 Azure Data Lake Analytics 任务的其他配置。
场景 5-使用 SSIS 变量中的 U-SQL 语句
在某些情况下,可能需要动态生成 U-SQL 语句。 可将“SSIS 变量”与“SSIS 表达式”以及其他 SSIS 任务(如脚本任务)一起使用,帮助动态地生成 U-SQL 语句。
通过“SSIS”>“变量”顶层菜单打开“变量”工具窗口。
添加 SSIS 变量并直接设置值,或者使用“表达式”生成值。
添加“Azure Data Lake Analytics 任务”并:
- 将“SourceType”设置为“变量”。
- 将 SourceVariable 设置为现在创建的 SSIS 变量。
完成 Azure Data Lake Analytics 任务的其他配置。
场景 6-将参数传递到 U-SQL 脚本
在某些情况下,可能需要在 U-SQL 脚本中动态设置 U-SQL 变量值。 Azure Data Lake Analytics 任务中的参数映射功能可帮助实现此方案。 通常有两种典型的用户案例:
- 根据当前日期和时间动态设置输入和输出文件路径变量。
- 设置存储过程的参数。