从Azure中的Data Factory在ADL存储中执行U-SQL脚本

时间:2017-05-02 13:49:37

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

我有一个存储在我的ADL商店的USQL脚本,我正在尝试执行它。脚本文件非常大 - 大约250Mb。

到目前为止,我有一个数据工厂,我已经创建了一个Linked Service,我正在尝试创建一个Data Lake Analytics U-SQL Activity。

我的U-SQL Activity的代码如下所示:

{
"name": "RunUSQLScript1",
"properties": {
    "description": "Runs the USQL Script",
    "activities": [
        {
            "name": "DataLakeAnalyticsUSqlActivityTemplate",
            "type": "DataLakeAnalyticsU-SQL",
            "linkedServiceName": "AzureDataLakeStoreLinkedService",

            "typeProperties": {

                "scriptPath": "/Output/dynamic.usql",
                "scriptLinkedService": "AzureDataLakeStoreLinkedService",
                "degreeOfParallelism": 3,
                "priority": 1000
            },
            "policy": {
                "concurrency": 1,
                "executionPriorityOrder": "OldestFirst",
                "retry": 3,
                "timeout": "01:00:00"
            },
            "scheduler": {
                "frequency": "Day",
                "interval": 1
            }
        }
    ],
    "start": "2017-05-02T00:00:00Z",
    "end": "2017-05-02T00:00:00Z"
}

}

但是,我收到以下错误:

  

错误

     

来自>管道'RunUSQLScript1'的活动'DataLakeAnalyticsUSqlActivityTemplate'没有输出且没有计划。请添加>输出数据集或定义活动计划。

我想要的是让这个Activity按需运行,即我根本不想安排它,而且我也不明白输入和输出在我的情况下是什么。我试图运行的U-SQL脚本在我的ADL存储上运行数百万个文件,并在对内容进行一些修改后保存它们。

2 个答案:

答案 0 :(得分:1)

目前,ADF不支持在ADLS中运行存储在USQL活动中的USQL脚本,即“typeProperties”下的“scriptLinkedService”必须是Azure Blob存储链接服务。我们将更新USQL活动的文档,以使其更加清晰。

支持存储在ADLS中的运行USQL脚本在我们的产品待办事项上,但我们还没有确认的日期。

Shirley Wang

答案 1 :(得分:1)

目前,ADF不支持按需执行活动,需要使用计划进行配置。您将需要至少一个输出来驱动活动的计划执行。输出可以是虚拟Azure存储,但实际上不会写出数据,但ADF利用可用性属性来驱动计划执行。例如:

{
 "name": "OutputDataset",
 "properties": {
     "type": "AzureBlob",
     "linkedServiceName": "AzureStorageLinkedService",
     "typeProperties": {
         "fileName": "dummyoutput.txt",
         "folderPath": "adf/output",
         "format": {
             "type": "TextFormat",
             "columnDelimiter": "\t"
         }
     },
     "availability": {
         "frequency": "Day",
         "interval": 1
     }
 }
}