Delta Lake 概述

Microsoft Fabric在所有工作负荷中使用 Delta Lake 作为其通用存储格式。 无论是构建数据仓库、创建 lakehouse、协调管道,还是使用 Power BI 分析数据,数据都以 Delta Lake 格式存储在 OneLake 中。

对于大多数方案,Delta Lake 在后台以透明方式工作,无需了解它才能有效地使用Fabric。 但是,在优化性能、与外部系统集成或排查跨工作负荷方案问题时,了解 Delta Lake 可帮助你更高效地工作。

什么是 Delta Lake?

Delta Lake 是一个开源存储层,为数据湖带来可靠性和性能。 Delta Lake 的核心是合并两个元素:

  • Parquet 文件 - 用于分析的高效列式存储格式。
  • 事务日志 - 对支持 ACID 保证的数据所做的所有更改的记录。

此组合提供传统基于文件的存储无法提供的功能:

  • ACID 事务:原子、一致、独立和持久操作可确保数据完整性,即使多个进程同时读取和写入
  • 时间旅行:查询数据在任意时间点的状态、回滚错误或审计历史更改
  • 架构演变:在不重写现有数据的情况下添加、删除或修改列
  • 统一批处理和流式处理:使用相同的表格式处理实时和批处理数据

Delta Lake 作为具有开放规范的 Linux Foundation 项目进行维护,这意味着它可以跨平台工作-Databricks、Azure Synapse Analytics、AWS 和开源 Apache Spark 环境都支持 Delta Lake 表。

为什么Fabric使用 Delta Lake

Microsoft Fabric选择 Delta Lake 作为其通用格式来解决根本难题:使所有工作负载无需重复或复杂的 ETL 进程即可共享数据。

OneLake + Delta Lake = 单一事实来源

默认情况下,OneLake 将所有数据存储为 Delta Parquet。 此体系结构决策意味着:

  • 无数据孤岛:Lakehouse、数据仓库和 KQL 数据库都可以从同一个 Delta 表中读取数据
  • 工作负荷之间没有 ETL:由一个引擎写入的数据可立即由其他人读取
  • 一个数据副本:组织维护单一版本的事实,降低存储成本并消除数据同步问题

基于 Delta 构建的性能优化

Fabric使用专为平台设计的性能功能扩展 Delta Lake:

  • V-Order:Fabric 专用的写入优化,通过重组数据来提升所有引擎上的查询性能
  • 自动表维护:Fabric可以自动压缩小文件和清理旧数据
  • 与 Fabric 服务集成:Delta 表可与 Power BI Direct Lake、SQL 分析终结点、管道和笔记本无缝协作

这种开放标准和Fabric优化的组合提供可移植性和性能。

了解 Delta Lake 之旅

你需要了解多少 Delta Lake 内容,取决于你要在 Fabric 中做什么:

Delta Lake 对于大多数用户都是透明的

如果使用的是这些方案,Fabric会自动处理 Delta Lake:

  • 使用 SQL 查询数据:SQL 分析终结点和数据仓库通过 SQL 接口屏蔽底层 Delta,你可以使用 T-SQL 查询表,而无需考虑文件格式
  • 在 Power BI 中构建报表:Power BI Direct Lake 无缝读取 Delta 表,从而提供实时分析
  • 使用管道加载数据:目标为 Lakehouse 表时,Data Factory 的复制活动默认以 Delta 格式写入

对于这些使用场景,Delta Lake 只是一个你无需管理的实现细节。

在了解 Delta 时,你可以从了解 Delta 中受益

某些方案需要了解 Delta Lake 功能:

  • 优化查询性能:了解 V 顺序、表压缩和分区策略有助于优化表以提高查询速度
  • 与外部 Delta 表集成:连接到 Databricks、Snowflake、Amazon S3 或其他平台中的 Delta 表需要了解功能的兼容性
  • 使用高级 Spark 功能:删除向量、列映射、类型扩大和液体聚类分析提供强大的功能,但需要显式配置
  • 跨工作负荷方案疑难解答:当一个引擎写入的数据在另一个引擎中不按预期运行时,了解 Delta 功能支持可帮助你诊断问题

选择学习路径

Delta Lake 文档入口取决于你的角色:

数据工程师和 Spark 开发人员 应从 Lakehouse 和 Delta Lake 表 开始,以便全面覆盖 Spark 上下文中的 Delta,包括优化模式、表维护和运行时配置。

SQL 用户和data warehouse开发人员应探索 Data Warehouse 体系结构以了解 Delta 如何为仓库功能提供支持,例如时间旅行、克隆和 ACID 符合性。

管道和数据集成开发人员 应查看 数据工厂中的 Lakehouse 连接器 ,以了解管道如何编写 Delta 表并处理列映射。

跨工作负载开展工作的人员应参阅Delta Lake 表格式的互操作性,其中提供权威的功能支持矩阵,说明哪些 Delta 功能可在各个 Fabric 体验中使用。

表优化和维护

虽然Fabric自动处理许多优化任务,但你可以提高特定方案的性能:

  • V 顺序优化:启用 V 顺序写入数据以提高所有查询引擎的读取性能
  • 表压缩:使用 OPTIMIZE 命令将小文件合并为较大的文件以减少查询开销
  • Z 排序:按经常筛选的列组织数据以加快选择性查询
  • 清空操作:删除旧文件版本以降低存储成本

有关在不同工作负荷中何时以及如何使用这些技术的详细指导,请参阅 表维护和优化

Delta Lake 和外部系统

Delta Lake 的开放规范可实现与Fabric外部系统的集成:

  • OneLake 快捷方式:引用存储在 Amazon S3、Azure Data Lake Storage 或 Databricks 中的增量表,而无需复制数据
  • 增量共享:使用开放增量共享协议跨组织共享 Delta 表
  • 跨平台兼容性:在 Databricks 或 Azure Synapse 中创建的表可以在 Fabric 中读取,但受限于功能支持情况

集成外部 Delta 表时,请参阅 功能互操作性矩阵,以了解每个 Fabric 体验支持哪些 Delta Lake 功能。