Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
Esta documentación se ha retirado y es posible que no se actualice. Los productos, servicios o tecnologías mencionados en este contenido ya no se admiten. Consulte ¿Cuáles son las garantías ACID en Azure Databricks?.
El paquete DBIO de Databricks proporciona escrituras transaccionales en el almacenamiento en la nube para trabajos de Apache Spark. Esto resuelve una serie de problemas de rendimiento y corrección que se producen cuando se usa Spark en una configuración nativa de nube (por ejemplo, escribir directamente en los servicios de almacenamiento).
Importante
El protocolo de confirmación no se respeta cuando se accede a los datos mediante rutas de acceso que terminan en *. Por ejemplo, la lectura de dbfs:/my/path solo devolverá los cambios confirmados, mientras que la lectura de dbfs:/my/path/* devolverá el contenido de todos los archivos de datos del directorio, independientemente de si su contenido se ha confirmado o no. Este es un comportamiento esperado.
Con la confirmación transaccional de DBIO, los archivos de metadatos que comienzan con _started_<id> y _committed_<id> acompañan a los archivos de datos creados por trabajos de Spark. Por lo general, no debe modificar estos archivos directamente. En su lugar, debe usar el comando VACUUM para limpiarlos.
Limpieza de archivos sin confirmar
Para limpiar los archivos sin confirmar que se han dejado de los trabajos de Spark, use el comando VACUUM para quitarlos. Normalmente VACUUM se produce automáticamente una vez que se completan los trabajos de Spark, pero también se puede ejecutar manualmente si se anula un trabajo.
Por ejemplo, VACUUM ... RETAIN 1 HOUR quita los archivos sin confirmar con una duración superior a una hora.
Importante
- Evite vaciar con un horizonte de menos de una hora. Puede provocar incoherencias entre los datos.
Vea también VACUUM.
SQL
-- recursively vacuum an output path
VACUUM '/path/to/output/directory' [RETAIN <N> HOURS]
-- vacuum all partitions of a catalog table
VACUUM tableName [RETAIN <N> HOURS]
Scala
// recursively vacuum an output path
spark.sql("VACUUM '/path/to/output/directory' [RETAIN <N> HOURS]")
// vacuum all partitions of a catalog table
spark.sql("VACUUM tableName [RETAIN <N> HOURS]")