¿Qué son Delta Live Tables?
Delta Live Tables es una plataforma para crear canalizaciones de procesamiento de datos confiables, fáciles de mantener y que se pueden probar. Define las transformaciones a realizar en los datos y Delta Live Tables administra la orquestación de tareas, la administración de clústeres, la supervisión, la calidad de los datos y el control de errores.
Nota:
Las tablas de Delta Live requiere el plan Premium. Póngase en contacto con el equipo de la cuenta de Databricks para obtener más información.
En lugar de definir las canalizaciones de datos mediante una serie de tareas independientes de Apache Spark, se definen tablas de streaming y vistas materializadas que el sistema debe crear y mantener actualizadas. Delta Live Tables controla la forma en que se transforman sus datos basándose en las consultas que define para cada paso del proceso. También puede imponer la calidad de los datos con las expectativas de Delta Live Tables, lo que le permite definir la calidad esperada de los datos y especificar cómo controlar los registros que no cumplan esas expectativas.
Para obtener más información sobre las ventajas de crear y ejecutar canalizaciones ETL con Delta Live Tables, consulte la página del producto Delta Live Tables.
¿Qué son los conjuntos de datos de Delta Live Tables?
Los conjuntos de datos de Delta Live Tables son las tablas de flujo de datos, las vistas materializadas y las vistas que se mantienen como los resultados de las consultas declarativas. En la tabla siguiente se describe cómo se procesa cada conjunto de datos:
Tipo de conjunto de datos | ¿Cómo se procesan los registros mediante consultas definidas? |
---|---|
Tabla de flujo de datos | Cada registro se procesa exactamente una vez. Esto supone un origen de solo anexión. |
Vista materializada | Los registros se procesan según sea necesario para devolver resultados precisos para el estado de datos actual. Las vistas materializadas deben usarse para tareas de procesamiento de datos, como transformaciones, agregaciones o consultas lentas de computación previa y cálculos usados con frecuencia. |
Ver | Los registros se procesan cada vez que se consulta la vista. Use las vistas para las transformaciones intermedias y las comprobaciones de calidad de datos que no se deben publicar en los conjuntos de datos públicos. |
En las secciones siguientes se proporcionan descripciones más detalladas de cada tipo de conjunto de datos. Para saber más sobre cómo seleccionar tipos de conjunto de datos para implementar los requisitos de procesamiento de datos, consulte Cuándo usar vistas, vistas materializadas y tablas de flujo de datos.
Tabla de streaming
Una tabla de flujo de datos es una tabla delta con compatibilidad adicional para el procesamiento de datos incremental o de transmisión. Las tablas de flujo de datos le permiten procesar un conjunto de datos creciente, controlando cada fila una sola vez. Dado que la mayoría de los conjuntos de datos crecen continuamente con el tiempo, las tablas de flujo de datos son adecuadas para la mayoría de las cargas de trabajo de ingesta. Las tablas de streaming son óptimas para las canalizaciones que requieren actualización de datos y baja latencia. Las tablas de streaming también pueden ser útiles para las transformaciones de escala masiva, ya que los resultados se pueden calcular incrementalmente a medida que llegan nuevos datos, manteniendo los resultados actualizados sin necesidad de volver a calcular completamente todos los datos de origen con cada actualización. Las tablas de streaming están diseñadas para orígenes de datos que son de solo anexión.
Nota:
Aunque, de forma predeterminada, las tablas de flujo de datos requieren orígenes de datos de solo anexión, cuando un origen de flujo es otra tabla de flujo de datos que requiere actualizaciones o eliminaciones, puede invalidar este comportamiento con la marca skipChangeCommits.
Vista materializada
Una vista materializada es una vista en la que los resultados se han calculado previamente. Las vistas materializadas se actualizan según la programación de actualización de la canalización en la que están contenidas. Las vistas materializadas son eficaces porque pueden controlar los cambios en la entrada. Cada vez que se actualiza la canalización, los resultados de la consulta se vuelven a calcular para reflejar los cambios en los conjuntos de datos ascendentes que podrían haberse producido debido al cumplimiento, las correcciones, las agregaciones o los CDC generales. Delta Live Tables implementa vistas materializadas como tablas delta, pero abstrae las complejidades asociadas a una aplicación eficaz de actualizaciones, lo que permite a los usuarios centrarse en escribir las consultas.
Vistas
Todas las vistas de Azure Databricks calculan los resultados de los conjuntos de datos de origen a medida que se consultan, aprovechando las optimizaciones de almacenamiento en caché cuando están disponibles. Delta Live Tables no publica vistas en el catálogo, por lo que solo se puede hacer referencia a las vistas dentro de la canalización en la que se definen. Las vistas son útiles como consultas intermedias que no se deben exponer a los usuarios o sistemas finales. Databricks recomienda usar las vistas para aplicar restricciones de calidad de datos o transformar y enriquecer conjuntos de datos que impulsan varias consultas de bajada.
Declaración de los primeros conjuntos de datos en Delta Live Tables
Delta Live Tables presenta una nueva sintaxis para Python y SQL. Para empezar a trabajar con la sintaxis de Delta Live Tables, consulte los ejemplos de Python y SQL en Tutorial: Ejecución de la primera canalización de Delta Live Tables.
Nota:
Delta Live Tables separa las definiciones de los conjuntos de datos del procesamiento de actualizaciones y los cuadernos de Delta Live Tables no están diseñados para la ejecución interactiva. Ver ¿Qué es una canalización de Delta Live Tables?.
¿Qué es una canalización de Delta Live Tables?
Una canalización es la unidad principal utilizada para configurar y ejecutar flujos de trabajo de procesamiento de datos con Delta Live Tables.
Una canalización contiene vistas materializadas y tablas de flujo de datos declaradas en archivos de origen de Python o SQL. Delta Live Tables deduce las dependencias entre estas tablas, lo que garantiza que las actualizaciones se produzcan en el orden correcto. Para cada conjunto de datos, Delta Live Tables compara el estado actual con el estado deseado y continúa con la creación o actualización de conjuntos de datos mediante métodos de procesamiento eficaces.
La configuración de las canalizaciones de Delta Live Tables se divide en dos categorías generales:
- Configuraciones que definen una colección de cuadernos o archivos (conocidos como código fuente) que usan la sintaxis de Delta Live Tables para declarar conjuntos de datos.
- Configuraciones que controlan la infraestructura de canalización, la administración de dependencias, cómo se procesan las actualizaciones y cómo se guardan las tablas en el área de trabajo.
La mayoría de las configuraciones son opcionales, pero algunas requieren mucha atención, especialmente al configurar las canalizaciones de producción. Entre ellas, figuran:
- Para que los datos estén disponibles fuera de la canalización, debe declarar un esquema de destino para publicar en el metastore de Hive o en un catálogo de destino y un esquema de destino para publicar en el catálogo de Unity.
- Los permisos de acceso a datos se configuran a través del clúster que se usa para su ejecución. Asegúrese de que el clúster tiene los permisos adecuados configurados para los orígenes de datos y la ubicación de almacenamiento de destino, si se especifica.
Para saber más sobre el uso de Python y SQL para escribir código fuente para canalizaciones, consulte Referencia del lenguaje SQL de Delta Live Tables y Referencia del lenguaje Python de Delta Live Tables.
Para más información sobre la configuración y las configuraciones de canalización, consulte Configuración de una canalización de Delta Live Tables.
Implementación de la primera canalización y el desencadenamiento de actualizaciones
Antes de procesar datos con Delta Live Tables, debe configurar una canalización. Una vez configurada una canalización, puede desencadenar una actualización para calcular los resultados de cada conjunto de datos de la canalización. Para empezar a usar canalizaciones de Delta Live Tables, consulte Tutorial: Ejecutar la primera canalización de Delta Live Tables.
¿Qué es una actualización de una canalización?
Las canalizaciones implementan la infraestructura y vuelven a calcular el estado de los datos al iniciar una actualización. Una actualización hace lo siguiente:
- Inicia un clúster con la configuración correcta.
- Detecta todas las tablas y vistas definidas y comprueba si hay errores de análisis, como nombres de columna no válidos, dependencias que faltan y errores de sintaxis.
- Crea o actualiza las tablas y vistas con los datos más recientes disponibles.
Las canalizaciones se pueden ejecutar continuamente o según una programación en función de los requisitos de costo y latencia de su caso de uso. Consulte Ejecución de una actualización en una canalización de Delta Live Tables.
Ingesta de datos con tablas dinámicas Delta
Delta Live Tables admite todos los orígenes de datos disponibles en Azure Databricks.
Databricks recomienda usar tablas de flujo de datos para la mayoría de los casos de uso de ingesta. Para los archivos que llegan al almacenamiento de objetos en la nube, Databricks recomienda Auto Loader. Puede ingerir datos directamente con Delta Live Tables desde la mayoría de los buses de mensajes.
Para más información sobre cómo configurar el acceso al almacenamiento en la nube, consulte Configuración del almacenamiento en la nube.
En el caso de los formatos no compatibles con Auto Loader, puede usar Python o SQL para consultar cualquier formato compatible con Apache Spark. Consulte Carga de datos con Delta Live Tables.
Supervisión y aplicación de la calidad de los datos
Las expectativas se usan para especificar controles de calidad de datos en el contenido de un conjunto de datos. A diferencia de una CHECK
restricción en una base de datos tradicional que impide agregar registros que no cumplen la restricción, las expectativas proporcionan flexibilidad al procesar datos que no cumplen los requisitos de calidad. Esta flexibilidad le permite procesar y almacenar datos que es de esperar que estén desordenados y otros que deban cumplir estrictos requisitos de calidad. Consulte Administración de la calidad de los datos con Delta Live Tables.
¿Cómo se relacionan Delta Live Tables y Delta Lake?
Delta Live Tables amplía la funcionalidad de Delta Lake. Dado que las tablas creadas y administradas por Delta Live Tables son tablas Delta, tienen las mismas garantías y características proporcionadas por Delta Lake. Consulte ¿Qué es Delta Lake?
Delta Live Tables agrega varias propiedades de tabla además de las muchas propiedades de tabla que se pueden establecer en Delta Lake. Consulte Referencia de propiedades de Delta Live Tables y Referencia de las propiedades de la tabla Delta.
Creación y administración de tablas con Delta Live Tables
Azure Databricks administra automáticamente las tablas creadas con Delta Live Tables, lo que determina cómo se deben procesar las actualizaciones para calcular correctamente el estado actual de una tabla y realizar una serie de tareas de mantenimiento y optimización.
Para la mayoría de las operaciones, debe permitir que Delta Live Tables procese todas las actualizaciones, inserciones y eliminaciones en una tabla de destino. Para más información y limitaciones, consulte Conservar eliminaciones manuales o actualizaciones.
Tareas de mantenimiento realizadas por Delta Live Tables
Delta Live Tables realiza tareas de mantenimiento en un plazo de 24 horas a partir de la actualización de una tabla. El mantenimiento puede mejorar el rendimiento de las consultas y reducir el costo mediante la eliminación de versiones anteriores de tablas. De manera predeterminada, el sistema realiza una operación OPTIMIZE completa seguida de VACUUM. Puede deshabilitar OPTIMIZE en una tabla si establece pipelines.autoOptimize.managed = false
en las propiedades de la tabla. Las tareas de mantenimiento solo se realizan si se ha ejecutado una actualización de canalización en las 24 horas antes de que se programen las tareas de mantenimiento.
Limitaciones
Se aplican las siguientes limitaciones:
- Todas la tablas creadas y actualizadas en Delta Live Tables son tablas Delta.
- Las consultas de viaje en tiempo de Delta Lake solo se admiten con tablas de streaming y no se admiten con vistas materializadas. Consulte Trabajar con el historial de tablas de Delta Lake.
- Las tablas dinámicas delta solo se pueden definir una vez, lo que significa que solo pueden ser el destino de una sola operación en todas las canalizaciones de Delta Live Tables.
- Las columnas de identidad no se admiten con tablas que son el destino de
APPLY CHANGES INTO
y que se pueden volver a calcular durante las actualizaciones de las vistas materializadas. Por este motivo, Databricks recomienda usar columnas de identidad en Tablas dinámicas delta solo con tablas de streaming. Consulte Uso de columnas de identidad en Delta Lake. - Un área de trabajo de Azure Databricks se limita a 100 actualizaciones de canalización simultáneas.
Para obtener una lista de los requisitos y limitaciones específicos del uso de Delta Live Tables con el catálogo de Unity, consulte Uso del catálogo de Unity con las canalizaciones de Delta Live Tables.
Recursos adicionales
- Delta Live Tables es completamente compatible con la API de REST de Databricks. Consulte LA API DLT.
- Para conocer la configuración de la canalización y la tabla, consulte Referencia de propiedades de Delta Live Tables.
- Referencia del lenguaje SQL de Delta Live Tables.
- Referencia del lenguaje Python de Delta Live Tables.