【发布时间】:2021-12-20 18:58:09
【问题描述】:
完成教程 1 后,我正在处理来自 Microsoft Azure 团队的 tutorial 2 以运行以下查询(显示在 step 3 中)。但是查询执行给出了如下所示的错误:
问题:错误的原因可能是什么,我们该如何解决?
查询:
SELECT
TOP 100 *
FROM
OPENROWSET(
BULK 'https://contosolake.dfs.core.windows.net/users/NYCTripSmall.parquet',
FORMAT='PARQUET'
) AS [result]
错误:
警告:未找到与表达式“https://contosolake.dfs.core.windows.net/users/NYCTripSmall.parquet”匹配的数据集。无法确定架构,因为找不到与名称模式“https://contosolake.dfs.core.windows.net/users/NYCTripSmall.parquet”匹配的文件。请在 OPENROWSET 函数中使用 WITH 子句来定义架构。
注意:容器中文件的路径是正确的,实际上我只是通过右键单击容器中的文件来生成以下查询并生成脚本如下所示:
备注:
- Azure Data Lake Storage Gen2 帐户名称:
contosolake - 容器名称:
users - Azure 数据湖帐户上使用的防火墙设置:
- Azure Data Lake Storage Gen2 帐户允许公共访问 (ref):
- 容器具有所需的访问级别 (ref)
更新:
订阅的所有者是其他人,我没有得到选项选中“为自己分配 Data Lake Storage Gen2 帐户上的 Storage Blob 数据参与者角色”框,在“基本”选项卡 > 工作区详细信息部分的第 3 项中描述教程 1. 我也没有添加角色的权限 - 尽管我是突触工作区的所有者。所以我正在使用 Azure 团队的 Configure anonymous public read access for containers and blobs 中描述的解决方法。
【问题讨论】:
-
您可以尝试在 ADLS 中从
Network Routing设置中设置Microsoft network routing -
您使用的是托管资源组还是托管虚拟网络?
-
@KarthikBhyresh-MT 订阅的所有者是其他人,我没有得到教程 1 的
Basics tab > Workspace details部分的第 3 项中描述的选项Check the "Assign myself the Storage Blob Data Contributor role on the Data Lake Storage Gen2 account" box。我也没有权限添加角色 - 虽然我是突触工作区的所有者。所以我正在使用 Azure 团队的 Configure anonymous public read access for containers and blobs 中描述的解决方法。 -
Oki 什么级别的访问,所以您可以在 IAM 中看到 ADLS。您能否尝试从 ADLS 中的
Network Routing设置更改为Microsoft network routing否则尝试使用 URL 更新查询为https://adlsAccountName-internetrouting.blob.core.windows.net/my-filesystem/NYCTripSmall.parquet -
您在数据湖存储中拥有什么级别的访问权限,请查看 IAM 中的
my access
标签: azure azure-synapse azure-data-lake-gen2