databricks 在哪里存储托管表?

问题描述 投票:0回答:1

我是数据块新手,目前正在学习托管表。 我已经在 databricks 中创建了一个托管表,经过检查,它是在以下位置创建的:

dbfs:/user/hive/warehouse/demo.db/race_results_python

微软文档指出这是根目录。

所以我有两个问题:

  1. 这是否意味着 databricks 将表存储在创建 Databricks 工作区期间创建的默认存储帐户中?
  2. 如果上述问题的答案是“是”,那么在这里存储表是一个好习惯还是应该将其存储在单独的存储帐户中?

作为参考,我查看了以下文档: https://learn.microsoft.com/en-us/azure/databricks/dbfs/root-locations

azure databricks azure-databricks
1个回答
0
投票

根据此文档当您创建注册到

hive_metastore
的表时,它将存储的位置位于dbfs位置路径中
/user/hive/warehouse

DBFS 使用与 databricks 工作区关联的默认存储帐户。此存储帐户由 Azure 管理并链接到您的 Databricks 工作区。它自动处理托管表的元数据和数据存储。

  1. 如果上述问题的答案是“是”,那么在这里存储表是一个好习惯还是应该将其存储在单独的存储帐户中?

出于临时或测试目的,可以使用 DBFS 默认位置,但对于外部系统的大型数据集、生产、非表格文件,您可以在 DBFS 路径或统一目录中使用外部存储安装。

请参阅此文档了解 DBFS 和 Unity Catalog 的最佳实践

一般情况下,建议使用外部存储帐户

托管位置和外部位置之间的主要区别在于,当您将卷删除到托管的基础元数据中时,数据将被删除,但是当您将卷删除到外部位置时,基础数据在外部位置中保持不变,仅删除元数据。

在此文章中,Databricks 建议对除 Databricks 之外的外部系统读取或写入的非表格数据文件使用外部卷。

© www.soinside.com 2019 - 2024. All rights reserved.