什么是表和视图?

表和视图是 Databricks 中用于组织和访问数据的基本概念。

是存储在特定位置(通常采用 Delta Lake 格式)的结构化数据集。 表将实际数据存储在存储上,可以使用 SQL 命令或数据帧 API 查询和操作,支持插入、更新、删除和合并等操作。 请参阅什么是表?

视图是由 SQL 查询定义的虚拟表。 视图本身不存储数据。 相反,视图提供了一种以特定格式或抽象形式呈现来自一个或多个表的数据的方法。 视图可用于简化复杂的查询、封装业务逻辑,以及为基础数据提供一致的接口,而无需复制存储。 请参阅什么是视图?

Unity 目录中的表和视图

表和视图使用 Unity 目录进行管理。 在 Unity 目录中,表和视图位于三级命名空间(catalog.schema.table)的第三级级别,如下图所示。

Unity Catalog 对象模型图,侧重于表

Delta 表、流式处理表和具体化视图之间的差异

下表回答了有关 Delta 表、流式处理表和具体化视图之间的差异的常见问题。

问题 Delta 表 流式处理表 具体化视图
它是什么? 以 Delta Lake 格式存储的标准表,支持 ACID 事务、架构强制和其他 Delta Lake 功能。 已针对流式处理和增量处理用例进行了扩展的常规 Delta 表。 其结果始终是预先计算和正确的查询的结果。
建议使用哪种用例? 执行以下操作的过程代码:

-摄入
-转型
执行以下操作的声明性代码:

- 从仅追加源引入
- 低延迟转换
执行以下操作的声明性代码:

- 增量转换
- 批处理转换
它是如何填充的? 过程代码 (INSERT, , MERGEUPDATE分区覆盖使用replaceWhere 声明性代码,包括:

- 追加流
- 应用更改流
- 一次流
声明性查询
Unity 目录中的对象类型是什么? 视图
谁可以更新它? 任何可以更新 Delta 表的编写器。 只有定义流式处理表的管道才能更新它。 只有定义具体化视图的管道才能更新它。
它与哪些 Delta Lake 功能兼容? 支持所有 Delta Lake 功能。 不支持:

- 液体分区
- 预测优化
不支持:

- 液体分区
- 预测优化