Actualizaciones y Eliminaciones Básicas de Datos
Desliza para mostrar el menú
En los Data Lakes estándar, actualizar o eliminar una sola fila es casi imposible sin reescribir todo el conjunto de datos. Debido a que Delta Lake utiliza un registro de transacciones, admite los comandos SQL estándar UPDATE y DELETE, lo que permite modificaciones precisas en tus tablas.
En la sección anterior, se abordó la lectura y el resumen de datos. Sin embargo, los datos rara vez son estáticos: es posible que se detecte un lote de registros de diamantes con precios incorrectos o que sea necesario eliminar un tipo específico de "cut" de los informes.
Como la tabla diamonds es una tabla Delta, se puede modificar igual que una base de datos tradicional.
1. Actualización de registros
El comando UPDATE permite cambiar valores en filas específicas que cumplen una condición. Por ejemplo, si todos los diamantes con corte "Fair" reciben un aumento de precio del 10%:
UPDATE workspace.workshop.diamonds
SET price = price * 1.1
WHERE cut = 'Fair'
- SET — Define el nuevo valor para la columna
- WHERE — Fundamental. Sin una cláusula
WHERE, se actualizaría el precio de todos los diamantes en toda la tabla
2. Eliminación de registros
El comando DELETE elimina filas de la tabla de forma permanente. Se utiliza cuando los datos ya no son relevantes o fueron ingresados por error.
DELETE FROM workspace.workshop.diamonds
WHERE carat > 5.0
Este comando identifica todos los diamantes de más de 5 quilates y los elimina de la versión activa de la tabla.
3. Verificación después de la modificación
Después de ejecutar una actualización o eliminación, siempre se debe verificar el cambio con un simple SELECT count para asegurar que la operación se realizó como se esperaba.
-- Verify how many 'Fair' diamonds are left (count should be the same, but prices changed)
SELECT count(*) FROM workspace.workshop.diamonds WHERE cut = 'Fair'
4. Seguridad de las actualizaciones en Delta
Cuando se ejecuta DELETE o UPDATE, Delta Lake no borra los datos de los archivos antiguos directamente. En su lugar, sigue un proceso de tres pasos:
- Marca los archivos antiguos como "inválidos"
- Escribe nuevos archivos que contienen los datos actualizados
- Registra el cambio en el Transaction Log
Por esta razón, Time Travel sigue funcionando incluso después de una eliminación: los datos antiguos continúan existiendo en versiones anteriores de los archivos de la tabla hasta que el historial se purga manualmente.
5. Mejor práctica: Prueba con SELECT
Antes de ejecutar un DELETE o UPDATE, siempre prueba tu filtro primero con un SELECT.
- En lugar de:
DELETE FROM diamonds WHERE color = 'J' - Prueba primero:
SELECT * FROM diamonds WHERE color = 'J'
Si los resultados del SELECT muestran exactamente lo que deseas eliminar, puedes proceder de forma segura con el comando DELETE.
1. ¿Qué sucede si ejecutas un comando UPDATE sin una cláusula WHERE?
2. ¿Ejecutar un comando DELETE en una tabla Delta borra inmediatamente los datos del almacenamiento en la nube subyacente para siempre?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla