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.

Azure Synapse serverless eliminar archivos creados por una declaración CREATE EXTERNAL TABLE AS SELECT.

Estoy usando Synapse Serverless, que no admite vistas materializadas, pero algunos casos de uso las necesitan por razones de rendimiento. Como solución alternativa, iba a usar instrucciones CETAS para persistir archivos y programar actualizaciones regulares para ellos. Sin embargo, cuando intento eliminar y recrear una tabla CETAS, obtengo el siguiente mensaje:

No se puede crear una tabla externa. La ubicación de la tabla externa ya existe. Ubicación proporcionada: [ubicación]

Una vez que los archivos son creados por la instrucción CETAS, parece que no puedo sobrescribirlos con otra instrucción CETAS y no he encontrado ninguna otra opción para modificar archivos dentro de Synapse. Sé que puedo crear un flujo de trabajo más amplio para eliminar del almacenamiento antes de volver a ejecutar CETAS, pero esperaba que hubiera alguna manera de mantener todo contenido en Synapse.

¿Hay alguna forma de eliminar/sobrescribir/modificar los archivos creados por una instrucción CETAS desde dentro de Synapse?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Desafortunadamente, no hay forma de eliminar/sobrescribir/modificar los archivos creados por una declaración CETAS desde dentro de Synapse. Una vez que los archivos se guardan, se vuelven de solo lectura y no se pueden modificar. La única forma de modificar los datos es eliminar los archivos existentes y volver a ejecutar la declaración CETAS para crear nuevos. Como mencionaste, esto puede automatizarse utilizando un flujo de trabajo o script más amplio, pero no se puede hacer directamente dentro de Synapse Serverless. Alternativamente, podrías considerar utilizar Synapse Dedicated, que admite vistas materializadas y permite un mayor control sobre las modificaciones de datos.

Comments are closed.