了解 Delta Lake
Delta Lake 是一个开源存储层,它将关系数据库语义添加到基于 Spark 的数据湖处理中。 Microsoft Fabric 湖屋中的表是 Delta 表,在湖屋用户界面中使用表上的三角形 Delta (Δ) 图标表示。
Delta 表是对以 Delta 格式存储的数据文件的架构抽象。 对于每个表,湖屋存储一个包含 Parquet 数据文件的文件夹和一个以 JSON 格式记录事务详细信息的 _delta_Log 文件夹。
使用 Delta 表的优点包括:
- 支持查询和数据修改的关系表。 使用 Apache Spark,可以将数据存储在支持 CRUD(创建、读取、更新和删除)操作的 Delta 表中。 换句话说,可以采用与在关系数据库系统中相同的方式选择、插入、更新和删除数据行。
- 支持 ACID 事务。 关系数据库旨在支持事务数据修改,这些修改提供原子性(事务作为单个工作单元完成)、一致性(事务使数据库保持一致状态)、隔离(进行中的事务不能相互干扰)和持久性(事务完成时,它所做的更改将保留)。 Delta Lake 通过实现事务日志并强制实施并发操作的可序列化隔离,为 Spark 提供相同的事务支持。
- 数据版本控制和按时间顺序查看。 由于所有事务都记录在事务日志中,因此可以跟踪每个表行的多个版本,甚至使用按时间顺序查看功能在查询中检索某行的先前版本。
- 支持批处理和流式处理数据。 虽然大多数关系数据库包括存储静态数据的表,但 Spark 包含通过 Spark 结构化流式处理 API 流式处理数据的本机支持。 Delta Lake 表可用作流式处理数据的接收器(目标)和源。
- 标准格式和互操作性。 Delta 表的基础数据以 Parquet 格式存储,该格式通常用于数据湖引入管道。 此外,可以使用 Microsoft Fabric 湖屋的 SQL 分析终结点来以 SQL 查询 Delta 表。