Azure Synapse 专用 sql 池未在 Synapse Studio 中显示数据对象

Posted

技术标签:

【中文标题】Azure Synapse 专用 sql 池未在 Synapse Studio 中显示数据对象【英文标题】:Azure Synapse dedicated sql pool not showing data objects in synapse studio 【发布时间】:2021-12-25 17:26:26 【问题描述】:

我正在处理来自 Azure 团队的此文档的 Tutorial 4,其中 this section 在 Dedicated SQL pool(实际上也是一个数据库 - 正如教程中的第 2 项所述)创建一个名为 nyctaxi 的数据库和一个表nyctaxi.trip如下:

%%pyspark
spark.sql("CREATE DATABASE IF NOT EXISTS nyctaxi")
df.write.mode("overwrite").saveAsTable("nyctaxi.trip")

然后教程 5 创建另一个表NYCTaxiTripSmall。完成这些教程后,我可以看到(在 Synapse 工作室的数据中心)我的Dedicated SQL Pool,如下所示。但是当我点击任何数据库对象文件夹时,它不会显示任何 db 对象(表、外部表等),而是显示一个红色十字符号(如下所示)。

问题:为什么我在下面的专用 SQL 池中看不到 db 对象(如上所述)。

备注:请注意,我还使用无服务器 SQL 池在 tutorial 2 中创建了 DataExplorationDB db 和一个外部源 - 如下图黄色所示,我可以看到该 db 及其对象。那么为什么专用 SQL 池数据库不一样呢?我还重新启动了专用 SQL 池并且它在线。但仍然没有显示 db 对象。

【问题讨论】:

【参考方案1】:

当您创建 Spark 数据库时,这些表不会自动添加到您的专用 SQL 池中。您可以根据需要将它们添加为外部表,但 Spark 和专用 SQL 池之间没有自动元数据同步。

Synapse 确实会创建一个与您的 Spark 数据库相对应的无服务器“Lake 数据库”,您可以通过 SQL 脚本使用它或通过 SQL Server 报告工具进行访问。

【讨论】:

感谢您指出这一点 - 正如我在 Synapse 工作室的 Data Hub 中的 SQL Database 部分上方创建的 Lake Database 部分中的那些表一样。但是,在什么情况下,可以看到DedicatedSQLPool 文件夹的Tables 文件夹内的数据库表(例如)(上图中以黄色显示? 仅当您在 SQL 脚本或 SQL Server Management Studio 中使用 TSQL 创建表时。

以上是关于Azure Synapse 专用 sql 池未在 Synapse Studio 中显示数据对象的主要内容,如果未能解决你的问题,请参考以下文章

Azure Synapse Sql 池未从 Azure Synapse Studio 数据流接收数据

Azure Synapse:Spark 作业定义中指定的目标 Spark 池未处于成功状态。当前状态:供应

Azure Synapse Analytics 专用 SQL 池 - IIF 语句不起作用

在 Azure Synapse 专用/无服务器 SQL 池中使用增量表

Azure Synapse 专用 SQL 池中的“sp_refreshview”是不是有任何等效项

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