微软和其他公司的文档强烈强调了在Analytics中存储和计算之间的分离。对于没有Serverless的SQL池,可以清楚地解释数据存储在Azure data Lake Gen2中。但是,对于专用的SQL ,文档在数据存储方面不够明确。在一本关于Azure Synapse的书中,说明了在专用的SQL 中,数据存储在与计算节点完全分离的存储节点中。由于此声明不在微软的文档中,我不敢相信它。
那么,是否有一个官方资源来解释这个问题呢?
发布于 2022-06-30 13:10:03
这也是我想了很长时间的一个问题。但是,我得出的结论是,数据实际上存储在专用SQL池中。
让我解释一下我为什么相信这个。
看看这里提供的文件,
https://learn.microsoft.com/en-us/azure/synapse-analytics/quickstart-copy-activity-load-sql-pool
请注意,它是关于将数据加载到专用SQL池中的。此外,引用部分文件,
专用SQL池提供基于T的计算和存储功能.在Synapse工作区中创建专用SQL池之后,可以加载、建模、处理和交付数据,以获得更快的分析洞察力。
据说,专用SQL池提供计算和存储功能。
此外,使用专用SQL池,您可能已经知道创建传统表是可能的。我们可以按照星型或雪花模式将这些表组织成某种东西来建模我们的数据仓库。
但是,在无服务器SQL池中不可能创建此类表。只允许创建元数据对象,即视图或外部表。这是在这里解释的
https://learn.microsoft.com/en-us/azure/synapse-analytics/sql/on-demand-workspace-overview
引用文章的相关段落,
Serverless无SQL池没有本地存储,只有元数据对象存储在数据库中。因此,不支持与以下概念相关的T:
表触发物化视图、DDL语句(与视图和安全DML语句相关的语句除外)。
对我来说,实际上可以在专用SQL池中创建表这一事实进一步证明了数据是物理地存储在其中的。
我的最后一个论点是关于分发的想法。这里解释了这个概念,
这将讨论如何在计算节点之间分配数据,以及如何在这些节点中的分布上并行执行查询。如果数据没有实际存储在这些节点中,就不可能实现这一点。
在我看来,我认为Azure存储(至少在专用SQL池方面)是关于将数据存储为数据湖中的文件,然后将它们吞并到池中进行分析。
我们可以在这里找到解释,
https://learn.microsoft.com/en-us/azure/synapse-analytics/sql/overview-architecture
还有一句话,
Serverless无SQL池允许您查询数据湖文件,而专用SQL池允许您从数据湖文件中查询和接收数据。当数据被吸收到专用SQL池中时,将数据分割到发行版中,以优化系统的性能。
这就是多基地发挥作用的地方。您可以使用Polybase定义各种数据加载模式(到专用SQL池中),如下所述,
https://learn.microsoft.com/en-us/azure/synapse-analytics/sql/load-data-overview
https://stackoverflow.com/questions/72448670
复制相似问题