使用托管表

Azure Databricks 管理着托管表的生命周期和文件布局。 托管表是创建表的默认方法。

Databricks 建议对 Azure Databricks 中管理的所有表格数据使用托管表。

注意

本文重点介绍 Unity Catalog 托管表。 旧 Hive 元存储中的托管表具有不同的行为。 请参阅旧 Hive 元存储中的数据库对象

使用托管表

可以在 Azure Databricks 支持的所有语言和产品中使用托管表。 需要某些权限才能创建、更新、删除或查询托管表。 请参阅在 Unity Catalog 中管理权限

不应使用 Azure Databricks 以外的工具直接操作托管表中的文件。

应仅使用表名称与托管表中的数据文件进行交互。

托管表的数据文件存储在与包含它的架构关联的托管存储位置中。 请参阅在 Unity Catalog 中指定托管存储位置

创建托管表

默认情况下,每当在 Azure Databricks 中使用 SQL 命令、Spark 或其他工具创建表时,该表都被托管。

以下 SQL 语法演示如何使用 SQL 创建空托管表。 替换占位符值替:

  • <catalog-name>:将包含表的目录的名称。
  • <schema-name>:将包含该表的架构的名称。
  • <table-name>:表的名称。
  • <column-specification>:每列的名称和数据类型。
CREATE TABLE <catalog-name>.<schema-name>.<table-name>
(
  <column-specification>
);

许多用户根据查询结果或 DataFrame 写入操作创建托管表。 以下文章演示了可用于在 Azure Databricks 上创建托管表的一些模式:

所需的权限

若要创建托管表,你必须具备:

  • 对表的父架构的 USE SCHEMA 权限。
  • 对表的父目录的 USE CATALOG 权限。
  • 对表的父架构的 CREATE TABLE 权限。

删除托管表

你必须是表的所有者才能删除表。 若要删除托管表,请运行以下 SQL 命令:

DROP TABLE IF EXISTS catalog_name.schema_name.table_name;

删除托管表时,将于 30 天内从云租户中删除其基础数据。