¿Qué es Delta Lake?
Delta Lake es la capa de almacenamiento optimizada que proporciona la base para almacenar datos y tablas en Databricks Lakehouse Platform. 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 de almacenamiento 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 Databricks Lakehouse Platform 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
- Asociados de terceros
Para obtener una lista completa de las opciones de ingesta, consulte Carga de datos en Azure Databricks Lakehouse.
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.
- Delta Lake proporciona numerosas opciones para sobrescrituras selectivas basadas en filtros y particiones.
- Puede actualizar el esquema de la tabla manual o automáticamente sin volver a escribir datos.
- La asignación de columnas permite cambiar el nombre o eliminar las columnas sin volver a escribir los datos.
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
- Uso de la fuente de distribución de datos de cambios de Delta Lake en Azure Databricks
- Habilitación de escrituras idempotentes entre trabajos
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.
- Validación de esquema de Delta Lake
- Restricciones en Azure Databricks
- Uso de 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.
- Omisión de datos con índices de ordenación Z para Delta Lake
- Compactación de archivos de datos con optimización en Delta Lake
- 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
- Configuración de credenciales de almacenamiento para Delta Lake
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. Consulte Inicio rápido de Delta Live Tables.
Solución de problemas de características de Delta Lake
No todas las características de Delta Lake están en todas las versiones de Databricks Runtime. Puede encontrar información sobre el control de versiones de Delta Lake y respuestas a preguntas frecuentes en los artículos siguientes:
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 matriz de compatibilidad de la API de Delta Lake. Existen API de Delta Lake para Python, Scala y Java: