【问题标题】:Is it possible to use U-SQL managed tables as output datasets in Azure Data Factory?是否可以在 Azure 数据工厂中使用 U-SQL 托管表作为输出数据集?
【发布时间】:2017-01-05 11:54:36
【问题描述】:

我有一个小型 ADF 管道,可将一系列文件从 Azure 存储帐户复制到 Azure Data Lake 帐户。作为管道中的最后一项活动,我想运行一个 U-SQL 脚本,该脚本使用复制的文件作为输入并将结果输出到 U-SQL 托管表。

U-SQL 脚本基本上从复制的文件中提取数据,应用一些转换,然后将其插入到现有的 U-SQL 托管表中。

如何(如果可能)将 U-SQL 表添加为 Azure 数据工厂中的输出数据集?

【问题讨论】:

  • 我想知道您为什么要使用 ADF 来复制数据。您可以直接从 Azure Blob 中读取数据,对其进行处理,然后使用 U-SQL 将其直接写入托管表中。
  • 是的,可以这样做,但在这种情况下,只有来自复制文件的数据的一个子集被添加到表中。但我仍然需要将完整的 JSON 文件保存在 DataLake 中。我们仅将文件保留在存储帐户中 30 天。无论哪种方式,问题仍然适用。

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


【解决方案1】:

目前无法在 Azure 数据工厂 (ADF) 中添加 U-SQL 内部表作为输出数据集。最近出现了一个类似的问题here,Michael Rys(U-SQL 的“父亲”)的回答是“我知道 ADF 团队有一个工作项目可以为你做这件事。”

您可以使用 Azure 数据工厂来运行 参数化 U-SQL 脚本,其中输入参数是文件路径。这将产生类似的结果。

来自recent question 的示例管道:

{
    "name": "ComputeEventsByRegionPipeline",
    "properties": {
        "description": "This is a pipeline to compute events for en-gb locale and date less than 2012/02/19.",
        "activities": [
            {
                "type": "DataLakeAnalyticsU-SQL",
                "typeProperties": {
                    "scriptPath": "adlascripts\\SearchLogProcessing.txt",
                    "scriptLinkedService": "StorageLinkedService",
                    "degreeOfParallelism": 3,
                    "priority": 100,
                    "parameters": {
                        "in": "/input/SearchLog.tsv",
                        "out": "/output/Result.tsv"
                    }
                },
...

U-SQL 脚本基本上来自:

@searchlog =
    EXTRACT ...
    FROM @in
    USING Extractors.Tsv();

到:

@searchlog =
    EXTRACT ...
    FROM "/input/SearchLog.tsv"
    USING Extractors.Tsv();

我认为它可以达到你想要的效果。

【讨论】:

  • 我已经实现了动态参数,但在阅读了您的答案后,我只是在 U-SQL 脚本末尾添加了一个 CSV 文件的输出到 Data Lake Store,其中一行和一列。这解决了问题。
  • 太棒了!您会考虑将其标记为答案,还是认为这不是问题的真正答案?
  • 它部分回答了这个问题,但不是关键部分,即如何解决您需要为 ADF 提供适当的输出数据集这一事实。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-17
  • 1970-01-01
  • 2021-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-21
相关资源
最近更新 更多