Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Databricks 表驻留在架构中,包含数据行。 在 Azure Databricks 中创建的默认表类型是 Unity 目录托管表。
以下示例显示了一个名为包含大约五名员工数据的托管表 prod.people_ops_employees 。 作为托管表,数据文件存储在 Unity 目录的托管存储位置中的云存储中。
存储格式
Azure Databricks 中的表类型定义如何拥有和访问数据。 另外,存储格式定义如何在磁盘上对数据进行物理结构和跟踪。
Azure Databricks 支持两种主要打开表存储格式:
- Delta Lake 是 Azure Databricks 中托管表和外部表的默认存储格式。 外部表也支持 Delta。
- 在 Azure Databricks 中,托管表和外表支持 Apache Iceberg。 当你与 Iceberg 生态系统集成时,此格式非常有用。
这些格式增加了一个事务存储层,用于跟踪元数据,并启用原子性、一致性、隔离性和持久性(ACID)合规性、时态回溯及其他功能。
表类型
Azure Databricks 提供三种主要表类型,每种类型专为不同的数据管理方案和所有权模型而设计。 选择的表类型决定了 Azure Databricks 如何管理基础数据文件和元数据。
Azure Databricks 中表类型的主要区分因素在于持有的目录,如下表所述:
| 表类型 | 管理目录 | 读/写支持 | 性能优化 | 存储成本优化 |
|---|---|---|---|---|
| 管理 | 统一目录 | 是的 | 是的 | 是的 |
| 临时 | 无(适用于会话范围的托管表) | 是的 | 是的 | 是的 |
| 外部 | 无(仅限文件) | 是的 | 仅手动 | 仅限手动 |
| 外国 | 外部系统或目录服务 | 只读 | 否 | 否 |
托管表
托管表与元存储注册一起管理基础数据文件。 Databricks 建议每当创建新表时都使用托管表。 在 Azure Databricks 中创建表时,Unity 目录托管表是默认值。 请参阅 托管表。
外部表
外部表(有时称为 非托管表)引用存储在外部存储系统中的 Azure Databricks 外部的数据,例如云对象存储。 它们将基础数据文件的管理与元存储注册分离。 Unity Catalog 支持多种格式的外部表,包括 Delta Lake。 Unity 目录外部表可以使用外部系统可读的通用格式存储数据文件。 请参阅 外部表。
外表
外部表表示通过 Lakehouse Federation(数据仓库联盟)连接到 Azure Databricks 的外部系统中存储的数据。 外部表在 Azure Databricks 上是只读的。 请参阅 “外部表”。
临时表
临时表是作用于会话范围内的表,用于在 Azure Databricks 会话期间存储数据。 它们可用于具体化中间结果,而无需在目录中创建永久表。 会话结束时,Azure Databricks 会自动删除临时表,无需目录或架构权限来创建临时表。 请参阅 v.
Unity Catalog 中的表
在 Unity 目录中,表位于三级命名空间(catalog.schema.table)的第三个级别,如下图所示:
基本表权限
大多数表操作都需要在包含该表的目录和架构上拥有USE CATALOGUSE SCHEMA权限。
下表汇总了 Unity 目录中常见表作所需的附加权限:
| 操作 | Permissions |
|---|---|
| 创建表 |
CREATE TABLE 于包含的架构 |
| 查询表 |
SELECT 在桌子上 |
| 将数据更新、删除、合并或插入表 |
SELECT 和 MODIFY 在表上 |
| 删除整张表 |
MANAGE 在桌子上 |
| 更换数据表 |
MANAGE 表上的 CREATE TABLE 在包含的架构中 |
有关这些操作的 SQL 语法参考,请参阅:
有关 Unity 目录权限的详细信息,请参阅 “管理 Unity 目录中的权限”。