浏览存储和查找数据文件

本文重点介绍如何发现和浏览由 Unity 目录卷管理的目录和数据文件,包括有关使用目录资源管理器浏览卷的基于 UI 的说明。 本文还提供了使用卷路径和云 URI 以编程方式浏览云对象存储中的数据的示例。

Databricks 建议使用卷来管理对云对象存储中的数据的访问权限。 有关连接到云对象存储中的数据的详细信息,请参阅连接到数据源

有关如何与所有位置中的文件交互的完整演练,请参阅使用 Azure Databricks 上的文件

重要

在工作区 UI 中搜索“文件”时,可能会发现存储为工作区文件的数据文件。 Databricks 建议将工作区文件主要用于代码(如脚本和库)、初始化脚本或配置文件。 理想情况下,存储为工作区文件的数据应仅限可用于开发和 QA 期间测试等任务的小型数据集。 请参阅什么是工作区文件?

卷与旧版云对象配置

使用卷管理对云对象存储中数据的访问权限时,只能使用卷路径访问数据,并且这些路径可用于所有已启用 Unity 目录的计算。 无法使用卷来注册支持 Unity 目录表的数据文件。 Databricks 建议使用表名称而不是文件路径来与注册为 Unity 目录表的结构化数据进行交互。 请参阅对于 Unity Catalog 管理的数据,路径是如何工作的?

如果使用旧方法配置对云对象存储中数据的访问,Azure Databricks 将还原为旧表 ACL 权限。 希望使用 SQL 仓库中的云 URI 或配置了共享访问模式的计算来访问数据的用户需要 ANY FILE 权限。 请参阅 Hive 元存储表访问控制(旧版)

Azure Databricks 提供了多个 API,用于列出云对象存储中的文件。 本文中的大多数示例都侧重于使用卷。 有关与无卷配置的对象存储上的数据交互的示例,请参阅使用 URI 列出文件

浏览卷

可以使用目录资源管理器浏览卷中的数据并查看卷的详细信息。 只能看到有读取权限的卷,因此可以查询所有以这种方式发现的数据。

可以使用 SQL 浏览卷及其元数据。 若要列出卷中的文件,可以使用 SQL、%fs magic 命令或 Databricks 实用工具。 与卷中的数据交互时,请使用 Unity 目录提供的路径,该路径的格式始终如下:

/Volumes/catalog_name/schema_name/volume_name/path/to/data

显示卷

SQL

运行以下命令在给定架构中查看卷列表。

SHOW VOLUMES IN catalog_name.schema_name;

请参阅SHOW VOLUMES

目录资源管理器

若要使用目录资源管理器在给定架构中显示卷,请执行以下操作:

  1. 选择 “目录”图标“目录”图标
  2. 选择目录。
  3. 选择架构。
  4. 单击“卷”以展开架构中的所有卷。

注意

如果未将任何卷注册到架构,则不会显示“卷”选项。 而是会显示可用表的列表。

参阅数据量详细信息

SQL

运行以下命令来描述卷。

DESCRIBE VOLUME volume_name

请参阅 DESCRIBE VOLUME

目录资源管理器

单击卷名称,然后选择“详细信息”选项卡以查看卷详细信息。

查看卷中的文件

SQL

运行以下命令以列出卷中的文件。

LIST '/Volumes/catalog_name/schema_name/volume_name/'

目录资源管理器

单击卷名称,然后选择“详细信息”选项卡以查看卷详细信息。

%fs

运行以下命令以列出卷中的文件。

%fs ls /Volumes/catalog_name/schema_name/volume_name/

Databricks 实用程序

运行以下命令以列出卷中的文件。

dbutils.fs.ls("/Volumes/catalog_name/schema_name/volume_name/")

列出带有 URI 的文件

可以使用 URI 查询通过卷以外的方法配置的云对象存储。 必须连接到具有访问云位置的权限的计算。 SQL 仓库和配置了共享访问模式的计算需要 ANY FILE 权限。

注意

不支持对使用卷配置的对象存储的 URI 访问。 不能使用目录资源管理器查看未使用卷配置的对象存储的内容。

以下示例包括使用 Azure Data Lake Storage Gen2 和 S3 存储的数据的示例 URI。

Sql

运行以下命令,列出云对象存储中的文件。

-- ADLS 2
LIST 'abfss://container-name@storage-account-name.dfs.core.chinacloudapi.cn/path/to/data'

-- S3
LIST 's3://bucket-name/path/to/data'

%fs

运行以下命令,列出云对象存储中的文件。

# ADLS 2
%fs ls abfss://container-name@storage-account-name.dfs.core.chinacloudapi.cn/path/to/data

# S3
%fs ls s3://bucket-name/path/to/data