在 Synapse Analytics 中,我可以编写以下 SQL 脚本,它运行良好:
SELECT Table_name FROM dataverse_blob_blob.information_schema.tables WHERE Table_name NOT LIKE '%_partitioned' ORDER BY 1
我正在尝试使用笔记本执行相同的操作:
%%sql
SELECT Table_name FROM `dataverse_blob_blob`.`information_schema`.`tables`
它会抛出错误: 错误:spark_catalog 需要单部分命名空间,但得到了 [dataverse_blob_blob, information_schema]
尝试使用 USE CATALOG 和 USE SCHEMA 设置目录/架构,但这也会引发错误。
最佳答案
我在我的环境中重现了这个并得到了以下结果。
我创建了一个名为 mydb
的无服务器 SQL 数据库。
我尝试在 Synapse 笔记本中执行您的命令,但遇到了同样的错误。
正如@Joel Cochran所评论的那样,Spark 池无法访问无服务器 SQL 数据库,对于 Lake 数据库来说也是如此,因为这些数据库可以由无服务器池执行。这就是为什么它给出上述错误。
如果您想在笔记本中获取这些内容,请尝试将它们复制到 ADLS 或 blob 中,然后使用挂载即可在 Spark 中访问它们。
关于Azure Synapse Lake 数据库 - 笔记本无法访问 information_schema,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74305041/