管道在Azure Synapse中不断失败(运行简单查询)

tktrz96b  于 2022-12-30  发布在  其他
关注(0)|答案(1)|浏览(196)

我正在学习如何在Azure Synapse中的Udemy课程的帮助下创建管道。我创建了一个链接服务,连接到我的无服务器SQL池的"master"数据库。连接本身是成功的:

然后,我在管道中创建了一个简单的"脚本活动",它连接到这个链接的服务,然后返回一个查询。

下面是我使用的完整查询(我屏蔽了一些数据):

SELECT
    TOP 100 *, result.filename()
FROM
    OPENROWSET(
        BULK 'https://xxxx.dfs.core.windows.net/taxi/raw/trip_data_green_parquet/year=*/month=*/*.parquet',
        FORMAT = 'PARQUET'
    )  
    WITH (
        VendorID INT, 
        lpep_pickup_datetime datetime2(7)
        )   AS [result]

应该注意的是,当我在管道之外运行上面的查询时,它工作正常。然后我单击"validate"检查错误,没有发现错误:

但当我点击"调试"时失败了:

下面是完整的错误代码:

{
    "errorCode": "2011",
    "message": "Argument {0} is null or empty.\r\nParameter name: paraKey",
    "failureType": "UserError",
    "target": "Script1",
    "details": []
}

任何帮助都将不胜感激。
我试着运行以下SQL查询,它工作:

SELECT
    TOP 10 *
FROM
    OPENROWSET(
        BULK 'https://xxxx.dfs.core.windows.net/taxi/raw/taxi_zone_without_header.csv',
        FORMAT = 'CSV',
        PARSER_VERSION = '2.0'
    ) 
   WITH(
        LocationID SMALLINT 1,
        Borough VARCHAR(15) COLLATE Latin1_General_100_CI_AI_SC_UTF8 2,
        service_zone VARCHAR(15) COLLATE Latin1_General_100_CI_AI_SC_UTF8 4,
        Zone VARCHAR(50) COLLATE Latin1_General_100_CI_AI_SC_UTF8 3
    ) AS [result]

我不太确定为什么另一个不起作用。

3yhwsihp

3yhwsihp1#

“参数{0}为Null或空。\r\n参数名:段落键”
此错误是因为SQL脚本中没有results.filename()的列名。请尝试在脚本中提供result.filename() as file_name
我重现了这个没有别名的文件名()函数,并得到了同样的错误。

  • 然后在脚本中添加列名,并成功运行synapse pipeline。

SQL脚本:

SELECT
    TOP 100 *, result.filename() as file_name
FROM
    OPENROWSET(
        BULK 'https://xxxx.dfs.core.windows.net/taxi/raw/trip_data_green_parquet/year=*/month=*/*.parquet',
        FORMAT = 'PARQUET'
    )  
    WITH (
        VendorID INT, 
        lpep_pickup_datetime datetime2(7)
        )   AS [result]

相关问题