为啥我不能从 azure data studio 或 databricks 查询突触无服务器视图?
Posted
技术标签:
【中文标题】为啥我不能从 azure data studio 或 databricks 查询突触无服务器视图?【英文标题】:Why can't i query synapse serverless view from azure data studio or databricks?为什么我不能从 azure data studio 或 databricks 查询突触无服务器视图? 【发布时间】:2022-01-10 19:51:33 【问题描述】:当我从 synpase studio 查询我的 delta 表时,我可以看到数据都很好。
但是当我通过 sql 登录(或 databricks)连接槽数据工作室时,似乎我无法查询它:
CREATE or alter view stock
as SELECT *
FROM
OPENROWSET(
BULK 'https://tesdvsrc18732.dfs.core.windows.net/adlse-fr/be_stock/',
FORMAT = 'DELTA'
) AS [result]
开始在 Line 1 Msg 15151, Level 16, State 1, Line 1 执行查询 找不到凭证 'https://tesdvsrc18732.dfs.core.windows.net/adlse-fr/be_stock/', 因为它不存在或者您没有权限。全部的 执行时间:00:00:00.025
我也看不到 UI 中的视图:
但是,如果通过 Azure Active Directory 连接,我可以看到它。
我们将不胜感激任何建议、观察或专业知识。 我从 azure databricks 收到相同的错误消息
【问题讨论】:
【参考方案1】:我找到了一种方法来做我想做的事。所以我把它贴在这里。
在突触上
CREATE MASTER KEY
CREATE DATABASE SCOPED CREDENTIAL [SasToken_MyStorage]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = '?sv=2020-08-04&ss=bfq****************************************************************************************************************************************************PA%3D';
GO
CREATE EXTERNAL DATA SOURCE [MyDataSource]
WITH ( LOCATION = 'https://tesdvsrc18732.dfs.core.windows.net',
CREDENTIAL = [SasToken_MyStorage]
)
我认为这个也是需要的,但不确定:
GRANT CONTROL ON DATABASE SCOPED CREDENTIAL :: [SasToken_MyStorage] TO userDatabricks
在数据块/数据工作室
query = """
CREATE or alter view dbo.stock
as SELECT *
FROM
OPENROWSET(
BULK '/adlse-fr/be_stock/',
FORMAT = 'DELTA',
DATA_SOURCE = 'MyDataSource'
) AS [result]
"""
stmt = sql_con.createStatement()
stmt.executeUpdate(query)
stmt.close()
【讨论】:
很高兴知道您的问题已解决。 48 小时后,您可以接受它作为答案(单击答案旁边的复选标记将其从灰色切换为已填充)。这对其他社区成员可能是有益的。谢谢。以上是关于为啥我不能从 azure data studio 或 databricks 查询突触无服务器视图?的主要内容,如果未能解决你的问题,请参考以下文章
使用 Azure Data Studio 备份和还原 Azure 数据库
如何从 Azure Data Studio 与 Docker 中托管的 SQL Server 2019 容器进行通信
为啥有些用户可以在 Synapse 工作区中看到链接的 Azure Data Lake Gen 2 资源,而其他用户却不能?