本文档介绍如何使用 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 服务。 若要使用此任务,请确保安装:
- 下载并安装适用于 Visual Studio 的 SQL Server Data Tools (SSDT)
- 安装用于 Integration Services 的 Azure 功能包(SSIS)
Azure Data Lake Analytics 任务
Azure Data Lake Analytics 任务允许用户将 U-SQL 作业提交到 Azure Data Lake Analytics 帐户。
了解如何配置 Azure Data Lake Analytics 任务。
在 SSISAzure Data Lake Analytics 任务
可以使用 SSIS 内置函数和任务从不同位置获取 U-SQL 脚本,以下方案演示如何为不同的用户案例配置 U-SQL 脚本。
场景 1 - 使用内联脚本调用 tvfs 和存储过程
在 Azure Data Lake Analytics 任务编辑器中,将 SourceType 配置为 DirectInput,并将 U-SQL 语句放入 USQLStatement。
为了便于维护和代码管理,只需将短 U-SQL 脚本作为内联脚本,例如,可以在 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 包设计视图中,在 Foreach 循环容器中添加 Azure Data Lake Store 文件系统任务、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 下载任务。
控制流如下所示:
中使用 U-SQL 文件
方案 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 任务中的 参数映射 功能可帮助实现此方案。 通常有两个典型的用户案例:
- 根据当前日期和时间动态设置输入和输出文件路径变量。
- 设置存储过程的参数。
详细了解如何为 U-SQL 脚本设置参数。