You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Synapse Lake Database视图无法在SQL Pool中访问?

问题解答

核心原因:Lake DB与SQL Pool的元数据隔离

Lake DB(Lake Database)是Synapse中Spark专属的元数据层,默认情况下它的元数据(表、视图等)不会自动同步到SQL Pool的独立元数据空间。你在Spark Notebook里创建的对象,元数据存储在Spark专属的元存储(通常关联Azure Data Lake Storage),而SQL Pool有自己独立的元数据目录,两者不直接互通。

解决方法:手动打通元数据与数据访问

要让SQL Pool能访问Lake DB里的对象,可通过以下两种方式实现:

  • 创建外部表映射:在SQL Pool中针对Lake DB的底层数据文件创建外部表,步骤如下:
    1. 在SQL Pool中创建外部数据源,指向Lake DB数据所在的ADLS存储路径。
    2. 创建外部文件格式,匹配数据的实际格式(如Parquet、Delta Lake)。
    3. 基于上述数据源和文件格式,创建外部表,映射到Lake DB中表的实际数据位置。
  • 启用Synapse Link for Data Lake:如果Lake DB基于Delta Lake格式,可启用Synapse Link自动将Delta Lake的元数据同步到SQL Pool的元数据中,实现SQL Pool直接查询这些表(仅支持Delta Lake格式)。

关键补充

你在Synapse UI中能查询目标视图,是因为UI直接调用Spark查询引擎读取Spark元数据;而SSMS/Data Studio连接SQL Pool时,使用的是SQL Pool的查询引擎,仅能访问SQL Pool自身元数据或已建立映射的外部对象。Lake DB的元数据本身仅在Spark环境内有效,不会自动共享给SQL Pool,必须手动建立映射或通过Synapse Link同步。

内容的提问来源于stack exchange,提问作者Fiffe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 20:31:01