Compartir vía


¿Qué es Delta Live Tables?

Nota:

Delta Live Tables requiere el plan premium . Póngase en contacto con el equipo de la cuenta de Databricks para obtener más información.

Delta Live Tables es un marco declarativo diseñado para simplificar la creación de canalizaciones de extracción, transformación y carga (ETL) confiables y fáciles de mantener. Especifique qué datos se van a ingerir y cómo transformarlos y Delta Live Tables automatiza los aspectos clave de la administración de la canalización de datos, incluida la orquestación, la administración de procesos, la supervisión, el cumplimiento de la calidad de los datos y el control de errores.

Delta Live Tables se basa en Apache Spark, pero en lugar de definir las canalizaciones de datos mediante una serie de tareas independientes de Apache Spark, se definen las tables de streaming y las views materializadas que el sistema debe crear y las consultas necesarias para rellenar, y update esas tables de streaming y views materializadas.

Para obtener más información sobre las ventajas de crear y ejecutar canalizaciones de ETL con Delta Live Tables, consulte la página del producto Delta Live Tables.

ventajas de Delta Live Tables en comparación con Apache Spark

Apache Spark es un motor de análisis unificado de código abierto versátil, incluido ETL. Delta Live Tables se basa en Spark para abordar tareas de procesamiento ETL específicas y comunes. Delta Live Tables puede acelerar significativamente la ruta de acceso a producción cuando los requisitos incluyen estas tareas de procesamiento, entre las que se incluyen:

  • Ingesta de datos de orígenes típicos.
  • Transformar los datos de forma incremental.
  • Realización de la captura de datos modificados (CDC).

Sin embargo, Delta Live Tables no es adecuado para implementar algunos tipos de lógica de procedimientos. Por ejemplo, los requisitos de procesamiento, como escribir en un table externo o incluir un condicional que funcione en un almacenamiento de archivos externo o tables de base de datos, no se pueden realizar dentro del código que define un conjunto de datos de Delta Live Tables. Para implementar el procesamiento no compatible con Delta Live Tables, Databricks recomienda usar Apache Spark o incluir la canalización en un trabajo de Databricks que realiza el procesamiento en una tarea de trabajo independiente. Consulta la Tarea de canalización Tables de Delta Live para los trabajos.

El siguiente table compara Delta Live Tables con Apache Spark:

Capacidad Delta Live Tables Apache Spark
Transformaciones de datos Puede transformar datos mediante SQL o Python. Puede transformar datos mediante SQL, Python, Scala o R.
Procesamiento incremental de datos Muchas transformaciones de datos se procesan automáticamente de forma incremental. Debe determinar qué datos son nuevos para poder procesarlos de forma incremental.
Orquestación Las transformaciones se orquestan automáticamente en el orden correcto. Debe asegurarse de que las diferentes transformaciones se ejecutan en el orden correcto.
Paralelismo Todas las transformaciones se ejecutan con el nivel correcto de paralelismo. Debe usar subprocesos o un orquestador externo para ejecutar transformaciones no relacionadas en paralelo.
Control de errores Los errores se reintentan automáticamente. Debe decidir cómo controlar los errores y los reintentos.
Monitorización Las métricas y los eventos se registran automáticamente. Debe escribir código para recopilar métricas sobre la ejecución o la calidad de los datos.

conceptos clave de Delta Live Tables

En la ilustración siguiente se muestran los componentes importantes de una canalización de Delta Live Tables, seguida de una explicación de cada uno.

conceptos clave de Delta Live Tables.

table de streaming

Una table de streaming es una table de Delta que tiene una o varias secuencias que la escriben. Las tables de streaming se usan normalmente para la ingesta porque procesan los datos de entrada exactamente una vez y pueden procesar grandes volumes de datos de solo anexión. El streaming tables también es útil para la transformación de flujos de datos de gran volumen con baja latencia.

Vista materializada

Una vista materializada es una vista que contiene registros predefinidos basados en la consulta que define la vista materializada. Delta Live Tables mantiene actualizados automáticamente los registros de la vista materializada en función de la programación o desencadenadores de update de la canalización. Cada vez que se actualiza una vista materializada, se garantiza que tiene los mismos resultados que ejecutar la consulta de definición sobre los datos más recientes disponibles. Sin embargo, esto a menudo se hace sin volver a calcular el resultado completo desde cero, usando incremental refresh. Los views materializados se utilizan comúnmente para transformaciones.

Views

Todas las views 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 views en el catalog, de modo que solo se puede hacer referencia a las views en el flujo de trabajo en el que se definen. Views son útiles como consultas intermedias que no deben exponerse a los usuarios o sistemas finales. Databricks recomienda usar views para aplicar restricciones de calidad de datos o transformar y enriquecer conjuntos de datos que impulsan varias consultas de bajada.

Tubería

Una canalización es una colección de tables de streaming y views materializadas que se actualizan conjuntamente. Estas tablesde streaming views materializadas se declaran en archivos fuente de Python o SQL. Una canalización también incluye una configuración que define el proceso usado para update las tables de streaming y views materializadas cuando se ejecuta la canalización. Al igual que una plantilla de Terraform define la infraestructura en tu cuenta en la nube, una canalización de Delta Live Tables define los conjuntos de datos y las transformaciones para el procesamiento de datos.

¿Cómo procesan los conjuntos de datos delta Live Tables?

En la siguiente table se describe cómo las viewsmaterializadas, las tables de streaming y las views procesan datos.

Tipo de conjunto de datos ¿Cómo se procesan los registros mediante consultas definidas?
table de streaming 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 views 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 views para transformaciones intermedias y comprobaciones de calidad de datos que no se deben publicar en conjuntos de datos públicos.

Declara tus primeros conjuntos de datos en Delta Live Tables

Delta Live Tables presenta una nueva sintaxis para Python y SQL. Para obtener información sobre los conceptos básicos de la sintaxis de canalización, consulte Desarrollo de código de canalización con Python y Desarrollo de código de canalización con SQL.

Nota:

Delta Live Tables separa las definiciones de conjuntos de datos del procesamiento de update y los cuadernos de Delta Live Tables no están diseñados para la ejecución interactiva.

¿Cómo se configuran las canalizaciones de Delta Live Tables?

La configuración de las canalizaciones de Delta Live Tables se divide en dos categorías generales:

  1. 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.
  2. 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 tables 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 destino schema para publicar en el metastore de Hive o un destino catalog y un destino schema para publicar en Unity Catalog.
  • 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 más información sobre el uso de Python y SQL para escribir código fuente para canalizaciones, consulte referencia del lenguaje SQL Delta Live Tables y referencia del lenguaje Python Delta Live Tables.

Para obtener más información sobre los ajustes de canalización, consulte Configurar una canalización Delta Live Tables.

Implementación de la primera canalización y el desencadenamiento de actualizaciones

Antes de procesar los datos con Delta Live Tables, debe configurar una canalización. Una vez configurada una canalización, puede desencadenar un update para calcular los resultados de cada conjunto de datos de la canalización. Para empezar a usar las canalizaciones de Delta Live Tables, consulta Tutorial: Ejecuta tu primera canalización de Delta Live Tables.

¿Qué es una tubería update?

Las canalizaciones implementan la infraestructura y vuelven a calcular el estado de los datos al iniciar una update. Un update hace lo siguiente:

  • Inicia un clúster con la configuración correcta.
  • Detecta todos los tables y views definidos y comprueba si hay errores de análisis, como nombres de column no válidos, dependencias que faltan y errores de sintaxis.
  • Crea o actualiza tables y views 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. Consulta Ejecución de una update en una canalización de Delta Live Tables.

Ingestar datos con Delta Live Tables

Delta Live Tables admite todos los orígenes de datos disponibles en Azure Databricks.

Databricks recomienda usar tables de streaming 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 mensajería.

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. Consulta 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 un CHECKconstraint en una base de datos tradicional que impide agregar registros que produzcan errores en el constraint, las expectativas proporcionan flexibilidad al procesar los datos que producen errores en los requisitos de calidad de los datos. 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. Consulta Administración de la calidad de los datos con las expectativas de canalización.

Delta Live Tables amplía la funcionalidad de Delta Lake. Dado que tables es creado y administrado por Delta Live Tables, son Delta tablesy tienen las mismas garantías y funcionalidades proporcionadas por Delta Lake. Consulte ¿Qué es Delta Lake?

Delta Live Tables agrega varias propiedades de table además de las muchas propiedades de table que se pueden set en Delta Lake. Consulta Referencia de propiedades de Delta Live TablesTables y Referencia de las propiedades de la table Delta.

Creación y administración de tables con Delta Live Tables

Azure Databricks administra automáticamente tables creados con Delta Live Tables, lo que determina cómo se deben procesar las actualizaciones para calcular correctamente el estado actual de un table 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 table 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 después de que se actualice un table. El mantenimiento puede mejorar el rendimiento de las consultas y reducir el costo quitando versiones anteriores de tables. De forma predeterminada, el sistema realiza una operación completa de OPTIMIZE seguida de VACUUM. Puede deshabilitar OPTIMIZE para un table estableciendo pipelines.autoOptimize.managed = false en las propiedades de table para el table. Las tareas de mantenimiento solo se realizan si una update de canalización se ha ejecutado en las 24 horas antes de que se programen las tareas de mantenimiento.

Limitaciones

Para obtener una list de limitaciones, consulta Limitaciones de Delta Live Tables.

Para obtener una list de requisitos y limitaciones específicos para el uso de Delta Live Tables con Unity Catalog, consulta Uso de Unity Catalog con tus canalizaciones Delta Live Tables.

Recursos adicionales