¿Qué es Delta Lake?
Delta Lake es la capa de almacenamiento optimizada que proporciona la base para las tablas de en un almacén de lago en Databricks. Delta Lake es un software de código abierto que extiende archivos de datos Parquet con un registro de transacciones basado en archivos para transacciones ACID y control de metadatos escalables. Delta Lake es totalmente compatible con las API de Apache Spark y se desarrolló para una estrecha integración con Structured Streaming, lo que le permite usar fácilmente una sola copia de datos para las operaciones por lotes y de streaming y proporcionar procesamiento incremental a escala.
Delta Lake es el formato predeterminado para todas las operaciones en Azure Databricks. A menos que se especifique lo contrario, todas las tablas de Azure Databricks son tablas Delta. Databricks desarrolló originalmente el protocolo Delta Lake y continúa contribuyendo activamente al proyecto de código abierto. Muchas de las optimizaciones y productos de la plataforma de Databricks se basan en las garantías proporcionadas por Apache Spark y Delta Lake. Para obtener más información sobre las optimizaciones en Azure Databricks, consulte Recomendaciones de optimización en Azure Databricks.
Para obtener información de referencia sobre los comandos SQL de Delta Lake, consulte Instrucciones de Delta Lake.
El registro de transacciones de Delta Lake tiene un protocolo abierto bien definido que cualquier sistema puede usar para leer el registro. Consulte Protocolo del registro de transacciones delta.
Introducción a Delta Lake
Todas las tablas de Azure Databricks son tablas Delta de manera predeterminada. Tanto si usa DataFrames de Apache Spark o SQL, obtendrá todas las ventajas de Delta Lake simplemente guardando los datos en Lakehouse con la configuración predeterminada.
Para obtener ejemplos de operaciones básicas de Delta Lake, como crear tablas, leer, escribir y actualizar datos, consulte Tutorial: Delta Lake.
Databricks tiene muchas recomendaciones para los procedimientos recomendados para Delta Lake.
Conversión e ingesta de datos en Delta Lake
Azure Databricks proporciona una serie de productos para acelerar y simplificar la carga de datos en la instancia de LakeHouse.
- Delta Live Tables:
- COPY INTO
- Cargador automático
- Agregar datos de la interfaz de usuario
- Conversión de datos de Parquet o Iceberg a Delta Lake de forma incremental
- Conversión única de los datos de Parquet o Type en Delta Lake
- Asociados de terceros
Para obtener una lista completa de las opciones de ingesta, consulte Carga de datos en un lago de datos de Databricks.
Actualización y modificación de tablas de Delta Lake
Las transacciones atómicas con Delta Lake proporcionan muchas opciones para actualizar datos y metadatos. Databricks recomienda evitar interactuar directamente con los archivos de registro de transacciones y datos en directorios de archivos de Delta Lake para evitar daños en las tablas.
- Delta Lake admite upserts mediante la operación de combinación. Consulte Upsert en una tabla de Delta Lake mediante combinación.
- Delta Lake proporciona numerosas opciones para sobrescrituras selectivas basadas en filtros y particiones. Consulte Sobrescritura de datos de forma selectiva con Delta Lake.
- Puede actualizar el esquema de la tabla manual o automáticamente sin volver a escribir datos. Consulte Actualización del esquema de tabla de Delta Lake.
- Habilite la asignación de columnas para renombrar o eliminar columnas sin reescribir los datos. Consulte Cambio de nombre y eliminación de columnas con la asignación de columnas de Delta Lake.
Cargas de trabajo incrementales y de streaming en Delta Lake
Delta Lake está optimizado para Structured Streaming en Azure Databricks. Delta Live Tables amplía las funcionalidades nativas con la implementación simplificada de la infraestructura, el escalado mejorado y las dependencias de datos administrados.
- Lecturas y escrituras en streaming de tablas delta
- Uso de la fuente de distribución de datos de cambios de Delta Lake en Azure Databricks
Consulta de versiones anteriores de una tabla
Con cada escritura en una tabla Delta se crea una nueva versión de la tabla. Puede usar el registro de transacciones para revisar las modificaciones de la tabla y consultar las versiones anteriores de la tabla. Consulte Trabajar con el historial de tablas de Delta Lake.
Mejoras de los esquemas de Delta Lake
Delta Lake valida el esquema al escribir, lo que garantiza que todos los datos escritos en una tabla coincidan con los requisitos que ha establecido.
- Aplicación de esquemas
- Restricciones en Azure Databricks
- Columnas generadas por Delta Lake
- Enriquecimiento de tablas de Delta Lake con metadatos personalizados
Administración de archivos e indexación de datos con Delta Lake
Azure Databricks establece muchos parámetros predeterminados de Delta Lake que afectan al tamaño de los archivos de datos y al número de versiones de tabla que se conservan en el historial. Delta Lake usa una combinación de análisis de metadatos y diseño de datos físicos para reducir el número de archivos examinados para satisfacer cualquier consulta.
- Uso de clústeres líquidos para tablas Delta
- Omisión de datos para Delta Lake
- Optimización del diseño del archivo de datos
- Eliminación de archivos de datos sin usar con vacuum
- Configuración de Delta Lake para controlar el tamaño del archivo de datos
Configuración y revisión de la configuración de Delta Lake
Azure Databricks almacena todos los datos y metadatos de tablas de Delta Lake en el almacenamiento de objetos en la nube. Muchas configuraciones se pueden establecer en el nivel de tabla o en la sesión de Spark. Puede revisar los detalles de la tabla Delta para detectar qué opciones están configuradas.
- Revisión de los detalles de la tabla de Delta Lake con describe detail
- Referencia de propiedades de tabla delta
Canalizaciones de datos con Delta Lake y Delta Live Tables
Azure Databricks anima a los usuarios a utilizar una arquitectura de medallion para procesar datos a través de una serie de tablas a medida que los datos se limpian y enriquecen. Delta Live Tables simplifica las cargas de trabajo de ETL mediante la ejecución optimizada y la implementación y el escalado automatizados de la infraestructura.
Compatibilidad de características de Delta Lake
No todas las características de Delta Lake están en todas las versiones de Databricks Runtime. Para obtener información sobre el control de versiones de Delta Lake, consulte ¿Cómo administra Azure Databricks la compatibilidad de características de Delta Lake?
Documentación de la API de Delta Lake
Para la mayoría de las operaciones de lectura y escritura en tablas Delta, puede usar las API de Spark SQL o DataFrame de Apache Spark.
Para las instrucciones SQL específicas de Delta Lake, consulte Instrucciones de Delta Lake.
Azure Databricks garantiza la compatibilidad binaria con las API de Delta Lake en Databricks Runtime. Para ver la versión de La API de Delta Lake empaquetada en cada versión de Databricks Runtime, consulte la sección Entorno del sistema en el artículo correspondiente de las notas de la versión de Databricks Runtime. Para obtener documentación sobre las API de Delta Lake para Python, Scala y Java, consulte la Documentación de software de código abierto de Delta Lake.