es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo eliminar los datos de la tabla Delta?

Estaba intentando eliminar datos de la tabla Delta.

Cuando ejecuto la consulta siguiente, estoy obteniendo alrededor de 500 o 1000 registros de datos.


SELECT * FROM table1 inv
join (SELECT col1, col2, col2, min(Date) minDate, max(Date) maxDate FROM table2 a GROUP BY col1, col2, col3) aux
on aux.col1 = inv.col1 and aux.col2 = inv.col2 and aux.col3 = inv.col3
WHERE Date between aux.minDate and aux.maxDate

Pero cuando intento eliminar esos 500 registros con la siguiente consulta, me sale un error de sintaxis.


DELETE FROM table1 inv
join (SELECT col1, col2, col2, min(Date) minDate, max(Date) maxDate FROM table2 a GROUP BY col1, col2, col3) aux
on aux.col1 = inv.col1 and aux.col2 = inv.col2 and aux.col3 = inv.col3
WHERE Date between aux.minDate and aux.maxDate

Por favor, alguien me ayude aquí.

Gracias de antemano :).

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en Databricks, Azure Databricks y Delta Lake, es probable que el error que está recibiendo con la consulta DELETE se deba a que las tablas Delta requieren una cláusula adicional para especificar el comportamiento de control de versiones de la operación DELETE. Debe especificar una columna de control de versiones para permitir que Delta rastree los cambios realizados por la operación.

    Para eliminar los registros de la tabla Delta, puede modificar su consulta con la cláusula OPTION (versionAsOf <número_de_versión>) para especificar la versión de la que desea eliminar. Aquí hay un ejemplo:

    DELETE FROM table1 inv 
    join (SELECT col1, col2, col2, min(Date) minDate, max(Date) maxDate FROM table2 a GROUP BY col1, col2, col3) aux
    on aux.col1 = inv.col1 and aux.col2 = inv.col2 and aux.col3 = inv.col3 
    WHERE Date between aux.minDate and aux.maxDate
    OPTION (versionAsOf <número_de_versión>)
    

    Reemplace <número_de_versión> con el número de versión desde donde desea eliminar los registros.

    ¡Espero que esto ayude!</número_de_versión></número_de_versión></número_de_versión>

Comments are closed.