🎯✍️ OverWriting Strategies: Estrategias de Sobre-Escritura en Delta Lake - 2
- 18 ago
- 2 min de lectura
En el capítulo anterior vimos DROP & RECREATE TABLE, una estrategia sencilla pero que implica eliminar la tabla y, con ello, perder la continuidad de su historial. Ahora veremos una alternativa mucho más interesante: 🔄 INSERT OVERWRITE.
Y, a diferencia de DROP & RECREATE, INSERT OVERWRITE permite reemplazar el contenido de una Delta Table sin destruir la tabla ni su historial de versiones. Cada ejecución genera una nueva transacción dentro del deltalog.
🗑️ Estado anterior
↓
🔄 INSERT OVERWRITE
↓
📦 Nuevo conjunto de datos
↓
📜 Nueva versión en _delta_logDe esta manera, el estado anterior no desaparece del historial y podemos continuar utilizando capacidades como Time Travel.
⚠️ INSERT INTO vs INSERT OVERWRITE
Para entender mejor esta estrategia, primero debemos diferenciarla de INSERT INTO.
📥 INSERT INTO, es una operación aditiva, donde, cada ejecución agrega nuevos registros al contenido existente:
Ejecución 1 → Datos originales
Ejecución 2 → + Nuevos datos
Ejecución 3 → + Nuevos datosSi procesamos nuevamente el mismo conjunto de información, podemos terminar almacenándolo varias veces. Esto puede provocar duplicidad de datos.
🔄 INSERT OVERWRITE
Aquí el comportamiento cambi,y, en lugar de agregar información al estado actual, la operación reemplaza el estado de la tabla con el resultado de la nueva ejecución.
Internamente, Delta Lake registra los cambios en el deltalog mediante las operaciones correspondientes sobre los archivos:
remove → Archivos del estado anterior
add → Nuevos archivosAmbas forman parte de una misma transacción, por ello, si ejecutamos nuevamente el mismo proceso, el resultado final de la tabla corresponderá a la última ejecución.
🎯 Ni una fila más, ni una fila menos.
🎓 En resumen
La diferencia fundamental puede resumirse así:
📥 INSERT INTO
↓
Agrega datos
🔄 INSERT OVERWRITE
↓
Reemplaza datos
+
Conserva historialPor eso, cuando necesitamos reprocesar y reemplazar el contenido de una tabla, INSERT OVERWRITE puede ser una alternativa mucho más adecuada que simplemente utilizar INSERT INTO (Repositorio-GitHub).
Y este es solo el siguiente paso, en el siguiente capítulo continuaremos con una de las estrategias más importantes para trabajar con cambios sobre los datos: MERGE.


Comentarios