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

Azure Synapse Studio中Dedicated SQL Pool不显示已创建数据对象问题咨询

核心原因

你遇到的问题本质是Synapse内部不同计算引擎的元数据默认隔离,你并没有把数据库和表实际创建在Dedicated SQL Pool中:

  • 你执行的%%pyspark开头的代码是运行在Spark池上的,通过Spark SQL创建的nyctaxi库、nyctaxi.trip表默认归属Spark元存储,只会自动同步给Serverless SQL池,完全不会写入到Dedicated SQL Pool的存储和元数据中。Dedicated SQL Pool是独立的计算+存储资源,和Spark池、Serverless SQL池的元数据天然不互通。
  • 你后续创建的NYCTaxiTripSmall表如果也是通过Spark或者Serverless SQL池操作的,同样不会自动同步到Dedicated SQL Pool中。
  • 界面显示红叉还有一种次要可能性:你当前登录Synapse Studio的账号没有分配Dedicated SQL Pool的对应访问权限(比如没有db_datareader、VIEW DEFINITION权限),就算Dedicated中存在对象也无法加载展示。

为什么Serverless SQL Pool的对象可以正常显示

Spark池和Serverless SQL池默认共享同一套元数据,你在教程2中直接用Serverless SQL池创建的DataExplorationDB本身就是Serverless的自有对象,自然可以正常加载展示。

解决方法

如果需要在Dedicated SQL Pool中看到对应的表,需要显式将数据写入Dedicated SQL Pool:
你可以使用Spark的Synapse SQL连接器将现有DataFrame写入Dedicated SQL Pool,示例代码如下:

%%pyspark
# 替换尖括号内的内容为你的实际工作区、Dedicated池信息
df.write \
  .format("com.databricks.spark.sqldw") \
  .option("url", "jdbc:sqlserver://<你的Synapse工作区名>.sql.azuresynapse.net:1433;database=<你的Dedicated SQL池名>;user=<管理员账号>;password=<账号密码>;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.sql.azuresynapse.net;loginTimeout=30;") \
  .option("dbtable", "nyctaxi.trip") \
  .mode("overwrite") \
  .save()

也可以直接打开Dedicated SQL Pool的查询窗口,执行SQL语句手动创建库、表并导入数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:06:03