使用 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 任务允许用户将 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 数据库中调用现有的表值函数和存储过程。

在 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 包设计视图中,在 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 帐户。

关系图,显示要添加到 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 脚本设置参数。

后续步骤