Integridad de datos con Delta Lake
La integridad de datos en Delta Lake es un aspecto crítico que garantiza la precisión, la coherencia y la confiabilidad de los datos a lo largo de su ciclo de vida. Delta Lake proporciona varios mecanismos para mantener la integridad de datos, especialmente en entornos con canalizaciones de datos complejas y varios usuarios simultáneos.
Las características y técnicas clave de Delta Lake emplean para mantener la integridad de los datos son:
- Transacciones ACID
- Cumplimiento de esquemas
- Evolución del esquema
- Operaciones de combinación
- Viaje en el tiempo
- Escrituras simultáneas
- Administración y compactación de archivos
- Comprobaciones de coherencia
- Implementación de comprobaciones de integridad de datos
Transacciones ACID
Delta Lake admite transacciones atomicidad, coherencia, aislamiento y durabilidad (ACID). Esto significa que cada operación de una tabla Delta se trata como una transacción, que se completa completamente o no se produce en absoluto, lo que impide actualizaciones parciales de datos que pueden provocar daños en los datos.
- Atomicidad: Garantiza que cada transacción se trata como una simple "unidad", que se realiza correctamente o se produce un error por completo.
- Coherencia: Garantiza que solo los datos válidos que siguen todas las reglas y restricciones definidas se escriben en la base de datos.
- Aislamiento: Mantiene el rendimiento y la integridad al aislar virtualmente cada transacción, lo que garantiza que las transacciones no interfieran entre sí.
- Durabilidad: Garantiza que una vez que una transacción se confirma, permanece confirmada, incluso si hay un bloqueo, pérdida de energía u otro error del sistema.
Cumplimiento de esquemas
Delta Lake aplica la validación del esquema en las operaciones de escritura. Esto significa que los datos que se escriben en una tabla Delta deben coincidir con el esquema de la tabla o se produce un error en la operación de escritura. Esto evita que los tipos de datos incorrectos o cambios de esquema inesperados puedan provocar incoherencias de datos.
Evolución del esquema
Delta Lake también permite la evolución del esquema sin tiempo de inactividad al aplicar esquemas. Esto significa que puedes agregar nuevas columnas o cambiar tipos de datos en el esquema a medida que evolucionan los datos. La evolución del esquema garantiza que todos los datos permanezcan accesibles y coherentes con las nuevas definiciones de esquema.
Operaciones de combinación
Delta Lake admite operaciones de combinación avanzadas, que son cruciales para upserts (actualización de registros existentes e inserción simultánea de nuevos registros) en canalizaciones complejas de ETL (extracción, transformación, carga). La operación de combinación es transaccional y mantiene la integridad de los datos asegurándose de que cada registro se actualiza o inserta correctamente según las condiciones especificadas.
Viaje en el tiempo
El viaje en el tiempo es una característica que permite acceder a versiones históricas de los datos. Esto es útil para auditar, depurar y revertir los cambios no deseados, lo que garantiza que puede restaurar la integridad de los datos si las actualizaciones recientes están dañadas o modifican accidentalmente los datos. A continuación se muestra un ejemplo de cómo consultar datos históricos.
df = spark.read.format("delta").option("versionAsOf", 3).load("/FileStore/tables/table")
Escrituras simultáneas
Delta Lake controla las escrituras simultáneas mediante un modelo de simultaneidad optimista. Cuando se producen varias transacciones, serializa estas transacciones para asegurarse de que no causan conflictos. Si se detecta un conflicto, Delta Lake reintenta o produce un error en la transacción, en función del escenario.
Administración y compactación de archivos
Delta Lake optimiza la administración de archivos a través de mecanismos como la compactación (empaquetado de contenedores) y la omisión de datos. Estas características reducen el número de archivos pequeños y mejoran la eficacia de las lecturas, manteniendo así un alto rendimiento y reduciendo las posibilidades de incoherencias de datos durante las lecturas y escrituras.
Comprobaciones de coherencia
Delta Lake proporciona utilidades para comprobar si hay incoherencias en la capa de almacenamiento de datos, lo que garantiza que los archivos de datos y sus metadatos correspondientes estén siempre sincronizados. Estas comprobaciones son cruciales después de la recuperación de un error del sistema o en entornos distribuidos.