Azure Synapse 可以从外部关系存储中查询吗?

Posted

技术标签:

【中文标题】Azure Synapse 可以从外部关系存储中查询吗?【英文标题】:Can Azure Synapse query from external relational stores? 【发布时间】:2021-09-13 04:39:35 【问题描述】:

来自URL 的这张图表表明 Azure Synapse 无法查询外部关系存储,但 Azure databricks 可以。

但是here 我认为使用 Azure Synapse 是可能的。我们还可以在 Azure Synapse 中使用 polybase。这些文章都没有过时。那我错过了什么?

【问题讨论】:

【参考方案1】:

您的第二个 URL 是 External tables,它与外部关系存储(Azure SQL、mysql、PostgreSQL 等)不同。我不相信任何 Synapse 引擎可以直接连接到关系数据存储 [虽然我不确定 Spark 在这方面的局限性],但 Pipelines 可以。虽然他们都使用 Spark,但 Databricks 是一个单独的产品,与 Synapse 无关。

Polybase 使用外部表,它们是对存储中的 blob(Blob 或 ADLS)的元数据引用。 Synapse 支持专用 SQL 池和无服务器 SQL 中的外部表。 Spark 表也可以从 Serverless SQL 查询,因为它们在 ADLS 中存储为 Parquet 文件。我相信这也是作为外部表引用实现的,尽管它不会在工作区 UI 中显示。

【讨论】:

以上是关于Azure Synapse 可以从外部关系存储中查询吗?的主要内容,如果未能解决你的问题,请参考以下文章

Azure Synapse Polybase/外部表 - 仅返回最新文件

Azure Synapse 外部表位置参数化

将 Parquet 文件从 Azure 数据湖存储帐户复制到 Synapse 数据仓库表失败

Azure 数据工厂中的 Azure Synapse 存储过程:是同步调用吗?

SQL Synapse,在 CREATE EXTERNAL TABLE 中使用动态/参数化 Azure 容器

在 Azure Synapse Analytics(Azure SQL 数据仓库)中创建外部数据源到 Oracle