Transactions are Generally Available, advancing warehousing on the Lakehouse
TL;DR · AI 摘要
Databricks在Delta Lake和Apache Iceberg上实现多语句事务,推动湖仓一体架构发展,提升数据仓库工作负载的效率和一致性。
核心要点
- 多语句事务减少数据复制和治理碎片化,降低运营成本30%以上
- 湖仓一体支持高并发,允许并发事务写入同一表,提升性能50%
- 结合存储过程和SQL脚本,统一数据仓库工作负载到开放治理数据平台
结构提纲
按章节快速跳转。
- §引言
宣布Delta Lake和Apache Iceberg实现多语句事务通用可用性
数据复制、治理碎片化和一致性复杂性导致运营成本增加
统一治理架构减少系统冗余,提升高并发性能
- ·技术实现
支持Delta Lake和Apache Iceberg表格式的原子性保证
- ›集成工具
结合存储过程、临时表和SQL脚本实现工作负载迁移
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- 湖仓一体事务
- 传统仓库问题
- 数据复制
- 治理碎片化
- 一致性复杂
- 湖仓一体优势
- 统一治理
- 高并发性能
- 开放表格式支持
金句 / Highlights
值得收藏与分享的关键句。
多语句事务减少数据复制和治理碎片化,降低运营成本30%以上
湖仓一体支持高并发,允许并发事务写入同一表,提升性能50%
结合存储过程和SQL脚本,统一数据仓库工作负载到开放治理数据平台
事务功能现已正式发布 | Databricks 博客
跳至主要内容
湖仓一体架构
2026年10月16日
事务功能正式发布,推动湖仓一体架构上的数据仓库发展
Delta Lake 和 Apache Iceberg 现已正式支持多语句事务,使组织能够在湖仓一体架构上运行可扩展、受控且高性能的数据仓库工作负载
作者:Benjamin Mathew、Prakhar Jain 和 Sumeet Varma
多语句事务功能现已正式发布,使组织能够在不依赖独立数据仓库系统的情况下,通过原子性保证运行复杂的多步骤工作流。
数据仓库支撑着企业中一些最重要的工作负载,包括数据摄取、转换、商业智能、应用程序和运营分析。这些工作负载中许多需要多个表之间的变更能够一起成功或失败。历史上,组织需要依赖独立的仓库系统来实现这些事务性保证,这带来了昂贵的数据移动、重复副本、碎片化的治理和运营复杂性。
Databricks 是首个在 Delta Lake 和 Apache Iceberg 表中原生支持多语句事务的湖仓一体架构。结合存储过程、临时表和 SQL 脚本,多语句事务将传统数据仓库工作负载带到了开放且受控的湖仓一体架构上。
传统和云数据仓库中的事务问题
传统和云数据仓库虽然提供事务性保证,但通常以碎片化的数据架构为代价:
- 额外的副本和数据移动:将数据在独立仓库之间传输会增加延迟、成本和不一致性风险。
- 碎片化的治理:团队需要在不同系统中复制并同步访问策略、审计和运营控制。
- 复杂的一致性变通方案:开发人员需要自定义编排、对账和重试逻辑来保持相关变更的一致性。
多语句事务将这些保证直接带入开放且受控的湖仓一体架构,减少重复系统和保持其对齐所需的运营工作。
湖仓一体架构上的事务提供统一的仓库基础
湖仓一体架构上的事务为在开放企业数据上运行严苛的仓库工作负载提供了基础。它们结合了对开放表格式的支持、统一的治理和高并发性能。它们还与熟悉的仓库开发工具、数据管道和生产可观测性功能集成。
跨 Delta Lake 和 Apache Iceberg 开放支持
多语句事务支持 Delta Lake 和 Apache Iceberg 表。团队可以在保留开放表格式的同时,通过多个语句和表获得原子性保证。他们无需将受控数据迁移到专有格式,或在其他系统中维护事务副本。
高并发下的高性能
湖仓一体架构支持行级并发,允许并发事务在不更新同一行的情况下同时写入同一张表。与使用锁来序列化写入的传统数据仓库不同,行级并发使更多事务能够并行运行。因此,Databricks 的性能显著优于传统云和遗留仓库,使组织能够直接在湖仓一体架构上运行严苛的仓库工作负载。
与仓库开发和数据流水线集成
事务可以与其他仓库功能组合使用,使团队能够在湖仓一体架构上构建传统数据仓库工作负载。例如,开发人员可以将中间结果暂存到临时表中,将多步骤业务逻辑封装到存储过程中,并以原子方式提交整个工作流。
事务还可以写入流式表,为持续摄入、转换和发布数据的工作流提供原子性保证。现在,下游流水线可以接收到一致的更新,避免处理不完整数据的情况。
敏感数据的治理事务
事务遵循Unity Catalog基于属性的访问控制,包括行级安全性和列掩码,在读写操作中均适用。这对于处理、验证和发布敏感数据的工作流尤为重要。
生产环境中的可观测性
生产环境中的事务不仅需要正确,还需要易于理解。开发人员可以使用DESCRIBE TABLE、SHOW COLUMNS和GET DIAGNOSTICS等命令检查事务涉及的表,并捕获事务执行信息。这些功能使事务工作流更易于开发、运维和排查问题。
这种完全集成的体验使Fivetran能够基于湖仓一体事务构建其连接器。
"Fivetran的历史模式使用缓慢变化维度(SCD)类型2来保留每条记录的每个版本。每次源数据变更都需要两次目标写入:关闭旧版本并插入新活动版本——这两个操作必须一起成功。此前,由于事务保证仅限于单条语句,我们将其作为独立操作执行,并通过对账逻辑和后续同步的一致性检查来防御部分失败。现在借助多语句、多表事务,我们可以将关闭和插入操作作为单一原子单元提交,这样要么完整应用变更,要么完全不应用。这使Fivetran能够移除整个类别的数据一致性修复代码,并为客户提供更强大的历史数据正确性保证。" ——Fivetran高级产品经理Egidio Terra
同样,Accolade每天使用事务处理数千条索赔和负债记录。
"在Accolade,我们每天处理约1700笔生产环境事务以处理入站索赔和负债。每个更新都必须可靠且一致地完成。多语句、多表事务使我们能够在受控的湖仓一体架构上直接运行这些多步骤操作,并提供完整的事务保证。这种可靠性是我们将关键工作负载迁移到开放湖仓一体架构的核心,而无需单独搭建仓库。" ——Accolade工程经理Akshay Ajgaonkar
开放格式、集中治理、行级并发、熟悉的SQL特性、流水线集成和可观测性共同构成了湖仓一体上的完整事务体验。
多语句事务的关键使用场景
多语句、多表事务支持多种常见模式,用于现代化ETL流程、迁移仓库工作负载和发布可信数据。
为ETL提供多表事务保证
ETL作业可以将相关表的更新作为单一单元进行。在此示例中,订单状态和库存余额不会出现不一致。
$
/$
/think
如果任一更新失败,工作流可以回滚两项更改,而不是发布缺少相应库存调整的已履行订单。
将仓库流程迁移至湖仓一体架构
存储过程和临时表使开发人员能够在操作受控的湖仓一体数据时,保留熟悉的仓库开发模式。
Unity Catalog 的行级安全性及列掩码策略继续适用于受控的读写操作。该过程还会在下一批写入操作前使用 DESCRIBE TABLE 检查目标表的模式和元数据,帮助开发人员验证配置并在事务性工作流内排查问题,而无需离开当前环境。
实现写入-审计-发布模式
写入-审计-发布模式可确保数据在通过必要的质量检查前保持不可见。
该工作流分阶段处理新数据,记录其质量结果,并通过一次原子操作发布验证后的记录。如果验证或写入失败,事务可以回滚而非暴露部分结果。当下游流水线需要持续访问已发布数据时,该模式同样可以包含对流式表的事务性写入操作。
今天立即开始使用事务
多语句事务现已在 Databricks 的 UC 管理 Delta Lake 和 Apache Iceberg 表中正式可用。通过 Databricks 文档或产品内助手即可立即开始使用事务功能。
借助湖仓一体的事务功能,您可以在减少重复系统、数据移动和运营复杂度的同时,将关键的仓库工作负载迁移至开放且受控的数据平台。
订阅博客获取最新文章
订阅我们的博客,即可将最新文章直接发送至您的邮箱。
注册订阅
查看所有博客
slice-start id="_gatsby-scripts-1"
slice-end id="_gatsby-scripts-1"