ACID事务

回到术语表

什么是事务?

在数据库和数据存储系统的上下文中,a事务被视为单个工作单元的任何操作,该操作要么完全完成,要么根本不完成,并使存储系统处于一致状态。交易的经典例子是当你从银行账户提款时发生的事情。要么钱已经离开你的银行账户,要么没有——不可能有一个中间状态。

a.c.d.属性:原子性、一致性、隔离性和持久性

ACID是一个首字母缩写,指的是定义事务的4个关键属性集:原子性、一致性、隔离性、而且耐久性。如果数据库操作具有这些ACID属性,则可以将其称为ACID事务,应用这些操作的数据存储系统称为事务系统。ACID事务保证对表的每次读、写或修改都具有以下属性:
  • 原子性事务中的每个语句(读取、写入、更新或删除数据)都被视为单个单元。要么执行整个语句,要么不执行任何语句。此属性可防止数据丢失和损坏,例如,如果流数据源在流中间发生故障。
  • 一致性-确保事务仅以预定义的、可预测的方式对表进行更改。事务一致性确保数据中的损坏或错误不会对表的完整性造成意想不到的后果。
  • 隔离—当多个用户同时对同一个表进行读写时,他们的事务隔离确保并发事务不会相互干扰或影响。每个请求都可以像一个接一个地发生一样发生,即使它们实际上是同时发生的。
  • 耐用性-确保成功执行的交易对你的数据所作的更改会被保存,即使系统出现故障。

为什么ACID事务是一件好事?

ACID事务确保尽可能高的数据可靠性和完整性。它们确保您的数据永远不会因为某个操作只完成了一部分而陷入不一致的状态。例如,在没有ACID事务的情况下,如果您正在向数据库表写入一些数据,但电源意外断电,则可能只保存了部分数据,而其他数据则没有保存。现在您的数据库处于不一致的状态,从这种状态中恢复非常困难且耗时。

Delta Lake:可靠、一致的数据,保证ACID交易

三角洲湖标志

ACID事务一直是数据仓库最令人羡慕的特性之一,但是三角洲湖现在让他们清醒了吗数据的湖泊.它们允许用户在实时向表中写入新数据时看到数据的一致视图,因为每次写入都是记录在有序事务日志中的独立事务。[Delta Lake采用最高级别的隔离(可序列化隔离),确保对单个表的读写是一致和可靠的。通过实现ACID事务,Delta Lake有效地解决了前面列出的几个对Lambda架构的批评:它的复杂性,不正确的数据视图,以及Lambda管道不可避免地中断后所需的重做和再处理。用户可以对其数据执行多个并发事务,如果数据源或流出现错误,Delta Lake将取消事务的执行,以确保数据保持干净和完整。ACID交易的美妙之处在于用户可以信任存储在Delta Lake中的数据。使用Delta Lake表对数据执行ETL以准备用于仪表板的数据分析师可以依赖这样一个事实,即他或她所看到的kpi代表了数据的实际状态。使用Delta Lake表执行特征工程的机器学习工程师可以100%确信,他或她的所有转换和聚合要么完全按照预期执行,要么根本没有执行(在这种情况下,他或她将得到通知)。知道您对数据的心理模型实际上反映了其真实的基本状态的价值怎么强调都不为过。

额外的资源


回到术语表