使用 SQL Server Integration Services (SSIS) 计划 U-SQL 作业

本文介绍如何使用 SQL Server Integration Service (SSIS) 安排和创建 U-SQL 作业。

重要

Azure Data Lake Analytics于 2024 年 2 月 29 日停用。 通过此公告了解更多信息。

对于数据分析,组织可以使用 Azure Synapse AnalyticsMicrosoft 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 中的 Azure Data Lake Analytics 任务

可使用 SSIS 内置函数和任务从不同位置获取 U-SQL 脚本,以下场景介绍如何针对不同用户案例配置 U-SQL 脚本。

场景 1-使用内联脚本调用 tvf 和存储过程

在 Azure Data Lake Analytics 任务编辑器中,将 SourceType 配置为 DirectInput,并将 U-SQL 语句置于 USQLStatement 中

为了便于维护和代码管理,只需将简短的 U-SQL 脚本作为内联脚本,例如,可以调用 U-SQL 数据库中现有的表值函数和存储过程。

在 SSIS 任务中编辑内联 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 帐户。

显示要添加到 Foreach 循环容器的 Azure Data Lake Store 文件系统任务的关系图。

配置 Azure Data Lake Store 文件系统任务

  1. 将“操作”设置为“CopyFromADLS”
  2. 设置 AzureDataLakeConnection,详细了解 Azure Data Lake Store 连接管理器
  3. 设置 AzureDataLakeDirectory。 指向存储 U-SQL 脚本的文件夹。 使用相对于 Azure Data Lake Store 帐户根文件夹的相对路径。
  4. 将“目标”设置为缓存下载的 U-SQL 脚本的文件夹。 此文件夹路径将在 Foreach 循环容器中用于 U-SQL 作业提交。

配置 Azure Data Lake Store 文件系统任务

详细了解 Azure Data Lake Store 文件系统任务

配置 Foreach 循环容器

  1. 在“集合”页上,将“枚举器”设置为“Foreach 文件枚举器”

  2. 将“枚举器配置”组下的“文件夹”设置为包含下载的 U-SQL 脚本的临时文件夹

  3. 将“枚举器配置”下的“文件”设置为 *.usql,使循环容器仅捕获以 .usql 结尾的文件

    显示 Foreach 循环编辑器(其中选择了“集合”并突出显示了“枚举器”和“枚举器配置”部分)的屏幕截图。

  4. 在“变量映射”页中,添加一个用户定义变量,获取每个 U-SQL 文件的文件名。 将“索引”设置为 0 以获取文件名。 在本示例中,定义一个名为 User::FileName 的变量。 此变量将用于动态地获取 U-SQL 脚本文件连接,并在 Azure Data Lake Analytics 任务中设置 U-SQL 作业名称。

    配置 Foreach 循环容器以获取文件名

配置 Azure Data Lake Analytics 任务

  1. 将“SourceType”设置为“FileConnection”

  2. 将“FileConnection”设置为指向从 Foreach 循环容器返回的文件对象的文件连接。

    创建此文件连接:

    1. 在“FileConnection”设置中选择“<新建连接...>”。

    2. 将“使用类型”设置为“现有文件”,并将“文件”设置为任何现有文件的文件路径。

      显示文件连接管理器编辑器且“使用类型”选择为“现有文件”的屏幕截图。

    3. “连接管理器” 视图中,右键单击创建的文件连接,然后选择 “属性”。

    4. 在“属性”窗口中,展开“表达式”,并将“ConnectionString”设置为 Foreach 循环容器中定义的变量,例如 @[User::FileName]

      配置 Foreach 循环容器

  3. 将“AzureDataLakeAnalyticsConnection”设置为要向其提交作业的 Azure Data Lake Analytics 帐户。 详细了解 Azure Data Lake Analytics 连接管理器

  4. 设置其他作业配置。 了解详细信息

  5. 使用“表达式”动态地设置 U-SQL 作业名称:

    1. 在“表达式”页中,为“JobName”添加新的表达式键值对。

    2. 将 JobName 的值设置为在 Foreach 循环容器中定义的变量,例如 @[User::FileName]

      为 U-SQL 作业名称配置 SSIS 表达式

场景 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 下载任务

控制流如下所示:

使用 Azure Data Lake Store 中的 U-SQL 文件

场景 4-使用本地计算机上的 U-SQL 文件

除了使用存储在云中的 U-SQL 文件,还可以使用本地计算机上的文件或与 SSIS 包一起部署的文件。

  1. 右键单击 SSIS 项目中的“连接管理器”,然后选择“新建连接管理器”

  2. 选择“ 文件类型 ”,然后选择“ 添加...”

  3. 将“使用类型”设置为“现有文件”,并将“文件”设置为本地计算机上的文件

    添加本地文件的文件连接

  4. 添加“Azure Data Lake Analytics 任务”并:

    1. 将“SourceType”设置为“FileConnection”
    2. FileConnection 设置为创建的文件连接。
  5. 完成 Azure Data Lake Analytics 任务的其他配置。

场景 5-使用 SSIS 变量中的 U-SQL 语句

在某些情况下,可能需要动态生成 U-SQL 语句。 可将“SSIS 变量”与“SSIS 表达式”以及其他 SSIS 任务(如脚本任务)一起使用,帮助动态地生成 U-SQL 语句

  1. 通过“SSIS”>“变量”顶层菜单打开“变量”工具窗口。

  2. 添加 SSIS 变量并直接设置值,或者使用“表达式”生成值。

  3. 添加“Azure Data Lake Analytics 任务”并:

    1. 将“SourceType”设置为“变量”
    2. SourceVariable 设置为现在创建的 SSIS 变量。
  4. 完成 Azure Data Lake Analytics 任务的其他配置。

场景 6-将参数传递到 U-SQL 脚本

在某些情况下,可能需要在 U-SQL 脚本中动态设置 U-SQL 变量值。 Azure Data Lake Analytics 任务中的参数映射功能可帮助实现此方案。 通常有两种典型的用户案例:

  • 根据当前日期和时间动态设置输入和输出文件路径变量。
  • 设置存储过程的参数。

详细了解如何设置 U-SQL 脚本的参数

后续步骤