为啥这个 T-SQL 查询在 Synapse 中不起作用?

Posted

技术标签:

【中文标题】为啥这个 T-SQL 查询在 Synapse 中不起作用?【英文标题】:Why this T-SQL query doesn't work in Synapse?为什么这个 T-SQL 查询在 Synapse 中不起作用? 【发布时间】:2021-08-26 15:31:12 【问题描述】:

我正在测试 Synapse。我试过这个查询

SELECT
    TOP 100 *
FROM
    OPENROWSET(
        BULK '<path to the parquet file>',
        FORMAT='PARQUET'
    ) AS [result]

但我收到以下错误。我该如何解决?

第 4 行第 5 列解析错误:“OPENROWSET”附近的语法不正确。

【问题讨论】:

【参考方案1】:

根据OPENROWSET 上的the documentation,这种类型的查询可以在无服务器SQL 池中工作。它不能在专用的 SQL 池中工作。

如果您在 Synapse Studio 中,请尝试将 Connect to 选项更改为 Built-in,这是无服务器引擎。可以选择创建一个数据库来存储外部数据源、外部表和视图等对象:

另一种生成有效OPENROWSET 语句的简单方法是通过 Synapse Studio > 数据中心(右侧的小圆柱体),链接 > 双击您的数据湖以导航到您要查询的镶木地板文件 > 右- 点击它 > 选择 TOP 100 ...

【讨论】:

以上是关于为啥这个 T-SQL 查询在 Synapse 中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Synapse 无法处理我的查询?

为啥 Azure Synapse 将存储节点大小限制为 60?

为啥 T-SQL 中的 LAG 函数是不确定的?

为啥此查询在 PostgreSQL 中不使用仅索引扫描?

为啥在 Hibernate 5 中不推荐使用条件查询?

azure synapse - 无服务器 sql 池数据库在数据选项卡中不可见