【问题标题】:Managing U-SQL scripts in multiple files and run it as a single job管理多个文件中的 U-SQL 脚本并将其作为单个作业运行
【发布时间】:2016-07-13 08:17:08
【问题描述】:

我们编写了一个大型 U-SQL 脚本,它由多个相互依赖的代码单元组成。它可以作为单个 U-SQL 作业运行。顺便说一句,我们将此作业作为 Azure 数据工厂活动运行。

我们希望将此脚本分成多个 U-SQL 脚本,每个脚本都包含一个单元,以便更好地维护和测试。这样,我们将能够对脚本的单个单元进行单元测试。但如果我们这样做,我们将面临另一个问题。在多个脚本的情况下,我们必须在部署数据工厂管道之前将所有这些脚本组合成一个脚本。

有没有办法管理多个文件中的 U-SQL 脚本并将其作为单个作业提交到 Azure 数据工厂?

【问题讨论】:

    标签: unit-testing azure-data-factory azure-data-lake u-sql


    【解决方案1】:

    此时,脚本必须是一个独立的整体。您可以将部分脚本拆分为过程和表值函数,以便在 U-SQL 目录中更轻松地重用、可维护和共享。然后您要提交的脚本将组成这些人工制品。

    如果您能详细说明您希望如何在文件级别拆分脚本,请告诉我。我看到的一些问题是您需要定义文件的顺序,以便以正确的顺序完成名称解析,并且提取将发生在输出之前:)。

    【讨论】:

    • 任何解决方法?否则很难一起管理整个脚本。
    • 我在回答中提到了一种解决方法:“您可以将部分脚本拆分为过程和表值函数,以便在 U-SQL 目录中更轻松地重用、可维护性和共享。然后您要提交的脚本将组成这些人工制品。”。
    【解决方案2】:

    您可以将您的任务拆分为多个 usql 存储过程或 TVF,然后创建一个主存储过程以按照所需的顺序调用所有过程。 例如: Proc1 - 具有插入客户记录的逻辑 Proc2 - 添加一列合并客户的所有订单 TVF1 - 传递客户 ID,返回有关客户的一些详细信息 Proc3 - 使用详细信息并将它们输出到文件中 MasterProc - 调用 Proc1、Proc2、TVF1 和 Proc3

    谢谢 Ankit

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-23
      • 2020-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-18
      相关资源
      最近更新 更多