Skip to main content

Transacciones ACID

¿Qué es una transacción?

En el contexto de las bases de datos y los sistemas de almacenamiento de datos, una transacción es cualquier operación que se trata como una sola unidad de trabajo, que se completa en su totalidad o no se completa en absoluto, y deja el sistema de almacenamiento en un estado consistente. El ejemplo clásico de una transacción es lo que ocurre cuando retiras dinero de tu cuenta bancaria. El dinero salió de tu cuenta bancaria, o no. No puede haber un estado intermedio.

Gráfico de ACID de Delta Lake

Propiedades de A.C.I.D.: atomicidad, consistencia, aislamiento y durabilidad

ACID (Atomicity, Consistency, Isolation, and Durability) es un acrónimo que se refiere al conjunto de cuatro propiedades clave que definen una transacción: atomicidad, consistencia, aislamiento y durabilidad. Si una operación de base de datos tiene estas propiedades ACID, se puede llamar transacción ACID, y los sistemas de almacenamiento de datos que aplican estas operaciones se llaman sistemas transaccionales. Las transacciones ACID garantizan que cada lectura, escritura o modificación de una tabla tenga las siguientes propiedades:

  • Atomicidad: cada instrucción en una transacción (para leer, escribir, actualizar o eliminar datos) se trata como una unidad única. O se ejecuta toda la instrucción, o no se ejecuta ninguna parte de ella. Esta propiedad previene la pérdida y corrupción de datos si, por ejemplo, tu fuente de datos en streaming falla a mitad del proceso.
  • Consistencia: garantiza que las transacciones solo realicen cambios en las tablas de maneras predefinidas y predecibles. La consistencia transaccional garantiza que la corrupción o errores en tus datos no generen consecuencias no deseadas para la integridad de tu tabla.
  • Aislamiento: cuando varios usuarios leen y escriben desde la misma tabla a la vez, el aislamiento de sus transacciones asegura que las transacciones simultáneas no interfieran ni se afecten entre sí. Cada solicitud puede ocurrir como si se produjera una por una, aunque en realidad se estén produciendo simultáneamente.
  • Durabilidad: garantiza que los cambios realizados en tus datos por transacciones ejecutadas correctamente se almacenen, incluso en caso de errores del sistema.

Más temas para descubrir

¿Por qué son beneficiosas las transacciones ACID?

Las transacciones ACID aseguran la máxima fiabilidad e integridad de los datos. Aseguran que tus datos nunca caigan en un estado inconsistente debido a una operación que solo se completa parcialmente. Por ejemplo, sin transacciones ACID, si estuvieras escribiendo datos en una tabla de base de datos y se cortara la luz inesperadamente, es posible que solo se guarden algunos de tus datos y otros no. Ahora tu base de datos está en un estado inconsistente que es muy complicado y lleva mucho tiempo de recuperación.

Delta Lake: datos confiables y consistentes con las garantías de las transacciones ACID

Logotipo de Delta Lake

Las transacciones ACID han sido durante mucho tiempo una de las propiedades más envidiables de los almacenes de datos, pero Delta Lake ahora las incluye en los lagos de datos. Permiten a los usuarios ver vistas consistentes de sus datos incluso mientras se escriben datos nuevos en la tabla en tiempo real, porque cada escritura es una transacción aislada que se registra en un registro de transacciones ordenado. [Delta Lake utiliza el nivel más alto de aislamiento posible (aislamiento serializable), lo que garantiza que las lecturas y escrituras en una sola tabla sean consistentes y confiables.] Al implementar transacciones ACID, Delta Lake resuelve con eficacia varias de las críticas previamente mencionadas de la arquitectura Lambda: la complejidad, visualización incorrecta de los datos y el trabajo doble y reprocesamiento necesarios tras la ruptura inevitable de las canalizaciones Lambda. Los usuarios pueden realizar varias transacciones simultáneas en sus datos y, en caso de que haya un error con una fuente de datos o un flujo, Delta Lake cancela la ejecución de la transacción para garantizar que los datos se mantengan limpios e intactos. La belleza de las transacciones ACID es que los usuarios pueden confiar en los datos almacenados en Delta Lake. Un analista de datos que utiliza tablas de Delta Lake para realizar la ETL en sus datos y prepararlos para el tablero de control puede contar con el hecho de que los KPI que está viendo representan el estado real de los datos. Un ingeniero de aprendizaje automático que utiliza tablas de Delta Lake para realizar ingeniería de características puede estar 100 % seguro de que todas sus transformaciones y agregaciones se ejecutaron exactamente como se pretendía, o no se ejecutaron en absoluto (en cuyo caso, se le notificaría). No se puede subestimar el valor de saber que el modelo mental que tienes de tus datos refleja realmente su verdadero estado subyacente.

Back to Glossary