有关卷中文件和工作区文件的建议
将数据或文件上传或保存到 Azure Databricks 时,可以选择使用 Unity Catalog 卷或工作区文件存储这些文件。 本文包含使用这些位置的建议和要求。 有关卷和工作区文件的更多详细信息,请参阅创建和使用卷以及什么是工作区文件?。
Databricks 建议使用 Unity Catalog 卷来存储数据、库和生成工件。 将笔记本、SQL 查询和代码文件存储为工作区文件。 可以将工作区文件目录配置为 Git 文件夹,以便与远程 Git 存储库同步。 请参阅 Git 与 Databricks Git 文件夹的集成。 用于测试方案的小型数据文件也可以存储为工作区文件。
下表根据文件类型或功能需求提供了关于文件的特定建议。
重要
Databricks 文件系统 (DBFS) 也可用于文件存储,但不建议这样做,因为所有工作区用户都可以访问 DBFS 中的文件。 请参阅 DBFS。
文件类型
下表提供了文件类型的存储建议。 Databricks 支持许多文件格式,不仅限于作为示例在此表中提供的这些。
文件类型 | 建议 |
---|---|
Databricks 对象,如笔记本和查询 | 存储为工作区文件 |
结构化数据文件,如 Parquet 文件和 ORC 文件 | 在 Unity Catalog 卷中存储 |
半结构化数据文件,如文本文件(.csv 、.txt )和 JSON 文件 (.json ) |
在 Unity Catalog 卷中存储 |
非结构化数据文件,如图像文件(.png 、.svg )、音频文件 (.mp3 ) 和文档文件(.pdf 、.docx ) |
在 Unity Catalog 卷中存储 |
用于临时或早期数据浏览的原始数据文件 | 在 Unity Catalog 卷中存储 |
操作数据,例如日志文件 | 在 Unity Catalog 卷中存储 |
大型存档文件,如 ZIP 文件 (.zip ) |
在 Unity Catalog 卷中存储 |
源代码文件,如 Python 文件 (.py )、Java 文件 (.java ) 和 Scala 文件 (.scala ) |
存储为工作区文件(如果适用),与其他相关对象(例如笔记本和查询)一起。 Databricks 建议在 Git 文件夹中管理这些文件,以便对这些文件进行版本控制和更改跟踪。 |
生成工件和库,例如 Python wheel (.whl ) 和 JAR 文件 (.jar ) |
在 Unity Catalog 卷中存储 |
配置文件 | 在 Unity Catalog 卷中跨工作区存储所需的配置文件,但如果它们是 Git 文件夹中的项目文件,则将其存储为工作区文件。 |
功能对比
下表比较了工作区文件和 Unity Catalog 卷的功能。
功能 | 工作区文件 | Unity Catalog 卷 |
---|---|---|
文件访问 | 工作区文件只能在同一工作区中相互访问。 | 文件可跨工作区全局访问。 |
以编程方式访问 | 可以使用以下方法访问文件: * Spark API * FUSE * dbutils * REST API * Databricks SDKs * Databricks CLI |
可以使用以下方法访问文件: * Spark API * FUSE * dbutils * REST API * Databricks SDKs * Databricks SQL 连接器 * Databricks CLI * Databricks Terraform 提供程序 |
Databricks 资产捆绑包 | 默认情况下,捆绑包中的所有文件,包括库和 Databricks 对象(如笔记本和查询),都安全地部署为工作区文件。 权限在捆绑配置中定义。 | 当库超出工作区文件的大小限制时,可以自定义捆绑包以包含卷中已有的库。 请参阅 Databricks 资产捆绑包的库依赖项。 |
文件权限级别 | 如果文件位于 Git 文件夹中,则权限位于 Git 文件夹级别,否则权限设在文件级别。 | 权限位于卷级别。 |
权限管理 | 权限由工作区 ACL 管理,并且仅限于包含它们的工作区。 | 元数据和权限由 Unity Catalog 管理。 这些权限适用于所有有权访问目录的工作区。 |
外部存储装载 | 不支持装载外部存储 | 提供通过创建外部卷来指向外部存储上预先存在的数据集的选项。 请参阅创建外部卷。 |
UDF 支持 | 不支持 | 支持使用卷 FUSE 从 UDF 写入 |
文件大小 | 与笔记本一起存储所需的小于 500MB 的较小文件,例如源代码文件(.py 、.md 、.yml )。 |
根据云服务提供商确定的限制存储非常大的数据文件。 |
上传和下载 | 最多支持上传和下载 10MB。 | 最多支持上传和下载 5GB。 |
表创建支持 | 不能使用工作区文件作为位置创建表。 | 可以通过运行 COPY INTO 、Autoloader 或将数据引入 Databricks 湖屋中所述的其他选项,从卷中的文件创建表。 |
目录结构和文件路径 | 文件被组织在嵌套目录中,每个目录都有自己的权限模型: * 用户主目录,工作区中的每个用户和服务主体都有一个 * Git 文件夹 已共享* |
文件被组织在卷内的嵌套目录中 请参阅如何访问 Unity Catalog 中的数据?。 |
文件历史记录 | 使用工作区中的 Git 文件夹跟踪文件更改。 | 审核日志可用。 |
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈