跳到正文
RadarAI· Databricks:Blog(RSS)·· 22 小时前AI 评分48

Databricks 多语句事务正式可用,湖仓可承载传统数仓工作负载

AI 导读

Databricks 宣布 Multi-Statement Transactions 正式可用,支持 UC 托管的 Delta Lake 和 Apache Iceberg 表,让多表多步骤工作流获得原子保证而无需独立数仓。

正文 · AI 翻译

Databricks:Blog·2026-10-17 05:00· 3 小时前AI 评分52

Transactions are Generally Available, advancing warehousing on the Lakehouse

AI 导读

Databricks 宣布 Multi-Statement Transactions 正式可用,支持 UC 托管的 Delta Lake 和 Apache Iceberg 表,让多表多步骤工作流获得原子保证而无需独立数仓。

正文

Multi-Statement Transactions 现已正式可用,使组织能够运行复杂的多步骤工作流并获得原子保证,而无需独立的数仓系统。

数据仓库支撑着企业一些最重要的工作负载,包括数据摄取、转换、商业智能、应用和运营分析。其中许多工作负载需要跨多个表进行更改,以便一起成功或失败。过去,组织依赖独立的数仓系统来获得这些事务保证,这带来了昂贵的数据移动、重复副本、碎片化治理和运维复杂性。

Databricks 是首个在 Delta Lake 和 Apache Iceberg 表上原生支持多语句事务的湖仓架构。结合存储过程、临时表和 SQL 脚本,多语句事务将传统数据仓库工作负载带到湖仓上开放、受治理的数据中。

传统和云数仓中事务的问题

传统和云数仓提供事务保证,但往往以碎片化的数据架构为代价:

  • 额外副本和数据移动:将数据移入和移出独立数仓会增加延迟、成本和不一致风险。
  • 碎片化治理:团队必须在各系统之间复制和同步访问策略、审计和运营控制。
  • 复杂的一致性变通方案:开发人员需要自定义编排、对账和重试逻辑来保持相关更改的一致性。

多语句事务将这些保证直接带到开放、受治理的湖仓中,减少重复系统以及保持它们一致所需的运维工作。

湖仓上的事务为数据仓库提供统一基础

湖仓上的事务为在开放的企业数据上运行高要求的数仓工作负载提供了基础。它们将对开放表格式的支持与统一治理和高并发性能相结合。它们还能与熟悉的数仓开发工具、数据管道和生产可观测性能力集成。

跨 Delta Lake 和 Apache Iceberg 开放

多语句事务同时支持 Delta Lake 和 Apache Iceberg 表。团队可以保留开放表格式,同时获得跨多个语句和表的原子保证。他们无需将受治理的数据移入专有格式,也无需在另一个系统中维护事务副本。

高并发下快速

湖仓一体架构支持行级并发,允许并发事务写入同一张表,只要它们不更新同一行。与使用锁来串行化写入的传统数据仓库不同,行级并发能让更多事务并行运行。因此,Databricks 的性能显著优于传统云仓库和遗留仓库,使组织能够直接在湖仓一体上运行要求苛刻的仓库工作负载。

4.7x faster performance of concurrent transactions at scale on Lakehouse

与仓库开发和数据管道集成

事务可与其他仓库能力组合,使团队能够在湖仓一体上构建传统数据仓库工作负载。例如,开发者可以将中间结果暂存到 临时表中,将多步骤业务逻辑打包到 存储过程中,并以原子方式提交整个工作流。

事务还可以写入 流式表,为持续摄取、转换和发布数据的工作流带来原子性保证。现在,下游管道可以接收到一致的更新,避免处理不完整的数据。

对敏感数据的受治理事务

事务在读取和写入时都遵循 Unity Catalog 基于属性的访问控制,包括行级安全性和列掩码。这对于暂存、验证和发布敏感数据的工作流尤为重要。 

生产环境中的可观测性

生产事务不仅需要正确,还需要易于理解。开发者可以使用 DESCRIBE TABLE、 SHOW COLUMNS和 GET DIAGNOSTICS等命令来检查事务涉及的表,并捕获有关事务执行的信息。这些能力使事务性工作流更易于开发、运维和故障排查。

这种完全集成的体验使 Fivetran 能够在湖仓一体事务之上构建其连接器。

“Fivetran History Mode 使用缓慢变化维度(SCD)Type 2 保留记录的每个版本。每次源端变更都对应两次目标端写入:关闭先前版本并插入新的活动版本——两者必须一起成功。此前,由于事务保证仅作用于单条语句,我们将这些作为独立操作运行,并通过后续同步中的对账逻辑和一致性检查来防范部分失败。借助多语句、多表事务,我们现在将关闭和插入作为一个原子单元提交,因此要么完整变更被应用,要么完全不应用。这使 Fivetran 得以移除一整类一致性修复代码,并为客户在历史数据上提供了更强的正确性保证。”—Egidio Terra,Fivetran 员工产品经理

同样,Accolade 使用事务每天处理数千条索赔和负债记录。

“在 Accolade,我们每天在生产环境中处理大约 1,700 笔事务,以处理传入的理赔和负债。每一次更新都必须可靠且一致地完成。多语句、多表事务让我们能够直接在受治理的湖仓上运行这些多步骤操作,并具备完整的事务保证。这种可靠性是我们将关键工作负载迁移到开放湖仓、而无需搭建独立数据仓库的核心所在。”——Akshay Ajgaonkar,Accolade 工程经理

开放格式、集中式治理、行级并发、熟悉的 SQL 功能、管道集成和可观测性共同在湖仓上打造了完整的事务体验。

多语句事务的关键用例

多语句、多表事务支持多种常见模式,用于现代化 ETL、迁移数据仓库工作负载以及发布可信数据。

为 ETL 提供多表事务保证

一个 ETL 作业可以将相关表作为一个单元进行更新。在此示例中,订单状态和库存余额不能失去同步。

如果任一更新失败,工作流可以回滚这两项更改,而不是发布一个已履行订单却没有相应库存调整的结果。

将数据仓库存储过程迁移到湖仓

存储过程和临时表让开发者能够在受治理的湖仓数据上操作,同时保留熟悉的数据仓库开发模式。

Unity Catalog 的行级安全和列掩码策略继续适用于受治理的读写操作。该过程还使用 DESCRIBE TABLE 在下一组写入之前检查目标的模式和元数据,帮助开发者验证其配置并排查问题,而无需离开事务工作流。

实现 Write-Audit-Publish

Write-Audit-Publish 可防止数据在通过所需质量检查之前变得可见。

该工作流暂存新数据、记录其质量结果,并在一个原子操作中发布经过验证的记录。如果验证或写入失败,事务可以回滚,而不是暴露部分结果。当下游管道需要持续获取已发布数据时,同一模式还可以包含对流式表的事务写入。

立即开始使用事务

多语句事务已在 Databricks 上针对 UC 托管的 Delta Lake 和 Apache Iceberg 表正式可用。立即使用 Databricks 的 文档 开始使用事务,或通过产品内 Assistant 提示开始。

借助湖仓上的事务,你可以将关键数据仓库工作负载迁移到开放、受治理的数据上,同时减少重复系统、数据移动和运维复杂性。

来源:Databricks:Blog · databricks.com

来源:RadarAI · aihot.news