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.
El desarrollo y la prueba del código de canalización difieren de otras cargas de trabajo de Apache Spark. En este artículo se proporciona información general sobre la funcionalidad admitida, los procedimientos recomendados y las consideraciones al desarrollar código de canalización. Para obtener más recomendaciones y procedimientos recomendados, consulte Aplicación de procedimientos recomendados de desarrollo de software y DevOps a canalizaciones declarativas de Lakeflow.
Nota:
Debe agregar código fuente a una configuración de canalización para validar el código o ejecutar una actualización. Consulte Configuración de canalizaciones declarativas de Lakeflow.
¿Qué archivos son válidos para el código fuente de canalización?
El código de canalizaciones declarativas de Lakeflow puede ser Python o SQL. Puede tener una combinación de archivos de código fuente de Python y SQL que respaldan una sola canalización, pero cada archivo solo puede contener un lenguaje. Consulte Desarrollo de código de canalización con Python y Desarrollo de código de canalización con SQL.
Puede usar cuadernos y archivos de área de trabajo al especificar código fuente para una canalización. Los archivos del área de trabajo representan scripts de Python o SQL creados en el IDE preferido o en el editor de archivos de Databricks. Consulte ¿Qué son los archivos del área de trabajo?
Si desarrolla código de Python como módulos o bibliotecas, debe instalar e importar el código y, a continuación, llamar a métodos desde un cuaderno de Python o un archivo de área de trabajo configurados como código fuente. Consulte Administración de dependencias de Python para canalizaciones declarativas de Lakeflow.
Nota:
Si necesita usar comandos SQL arbitrarios en un cuaderno de Python, puede usar el patrón de sintaxis spark.sql("<QUERY>")
para ejecutar SQL como código de Python.
Las funciones del catálogo de Unity permiten registrar funciones arbitrarias definidas por el usuario de Python para su uso en SQL. Consulte Funciones definidas por el usuario (UDF) en Unity Catalog.
Visión general de las características de desarrollo de las canalizaciones declarativas de Lakeflow
Las canalizaciones declarativas de Lakeflow amplían y aprovechan muchas características de Azure Databricks y presentan nuevas características y conceptos. En la tabla siguiente se proporciona una breve introducción a los conceptos y características que admiten el desarrollo de código de canalización:
Característica | Descripción |
---|---|
Modo de desarrollo | Las nuevas canalizaciones están configuradas para ejecutarse en modo de desarrollo de forma predeterminada. Databricks recomienda usar el modo de desarrollo para el desarrollo y las pruebas interactivas. Consulte Modos de desarrollo y producción. |
Validación | Una actualización de Validate comprueba la exactitud del código fuente de la canalización sin ejecutar una actualización en ninguna tabla. Consulte Comprobación de errores de una canalización sin esperar a que las tablas actualicen. |
Cuadernos | Los cuadernos configurados como código fuente para las canalizaciones declarativas de Lakeflow proporcionan opciones interactivas para validar el código y ejecutar actualizaciones. Consulte Desarrolle y depure canalizaciones de ETL con un cuaderno en Lakeflow Declarative Pipelines. |
Parámetros | Aproveche los parámetros del código fuente y las configuraciones de canalización para simplificar las pruebas y la extensibilidad. Consulte Uso de parámetros con canalizaciones declarativas de Lakeflow. |
Conjuntos de recursos de Databricks | Los conjuntos de recursos de Databricks permiten mover configuraciones de canalización y código fuente entre áreas de trabajo. Consulte Conversión de canalizaciones declarativas de Lakeflow en un proyecto de Conjunto de recursos de Databricks. |
Creación de conjuntos de datos de ejemplo para desarrollo y pruebas
Databricks recomienda crear conjuntos de datos de desarrollo y pruebas para probar la lógica de canalización con datos esperados y registros potencialmente incorrectos o dañados. Hay varias maneras de crear conjuntos de datos que pueden ser útiles para el desarrollo y las pruebas, incluidos los siguientes:
- Seleccione un subconjunto de datos de un conjunto de datos de producción.
- Use datos anonimizados o generados artificialmente para los orígenes que contienen PII.
- Cree datos de prueba con resultados bien definidos en función de la lógica de transformación subsiguiente.
- Anticipe posibles daños en los datos, registros con formato incorrecto y cambios de datos ascendentes mediante la creación de registros que interrumpen las expectativas del esquema de datos.
Por ejemplo, si tiene un cuaderno que define un conjunto de datos mediante el código siguiente:
CREATE OR REFRESH STREAMING TABLE input_data
AS SELECT * FROM STREAM read_files(
"/production/data",
format => "json")
Puede crear un conjunto de datos de ejemplo que contenga registros específicos mediante una consulta como la siguiente:
CREATE OR REFRESH MATERIALIZED VIEW input_data AS
SELECT "2021/09/04" AS date, 22.4 as sensor_reading UNION ALL
SELECT "2021/09/05" AS date, 21.5 as sensor_reading
En el ejemplo siguiente se muestra cómo filtrar los datos publicados para crear un subconjunto de los datos de producción para desarrollo o pruebas:
CREATE OR REFRESH MATERIALIZED VIEW input_data AS SELECT * FROM prod.input_data WHERE date > current_date() - INTERVAL 1 DAY
Para usar estos distintos conjuntos de datos, cree varias canalizaciones con los cuadernos que implementan la lógica de transformación. Cada canalización puede leer datos del conjunto de datos de input_data
, pero está configurado para incluir el cuaderno que crea el conjunto de datos específico del entorno.
¿Cómo procesan los datos los conjuntos de datos de canalizaciones declarativas de Lakeflow?
En la tabla siguiente se describe cómo las vistas materializadas, las tablas de streaming y las vistas procesan los 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 vistas 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 las canalizaciones declarativas de Lakeflow
Las canalizaciones declarativas de Lakeflow presentan 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:
Las canalizaciones declarativas de Lakeflow separan las definiciones de conjuntos de datos del procesamiento de actualizaciones y los cuadernos de Canalizaciones declarativas de Lakeflow no están diseñados para la ejecución interactiva.
¿Cómo se configuran las canalizaciones declarativas de Lakeflow?
La configuración de las canalizaciones declarativas de Lakeflow 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 Canalizaciones declarativas de Lakeflow 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. Estos incluyen lo siguiente:
- 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 más información sobre el uso de Python y SQL para escribir código fuente para canalizaciones, consulte Referencia del lenguaje SQL de Canalizaciones declarativas de Lakeflow y Referencia del lenguaje Python de Canalizaciones declarativas de Lakeflow.
Para obtener más información sobre los ajustes y configuraciones de canalización, consulte Configurar canalizaciones declarativas de Lakeflow.
Despliega tu primera canalización y activa actualizaciones
Antes de procesar datos con canalizaciones declarativas de Lakeflow, 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 declarativas de Lakeflow, consulte Tutorial: Compilación de una canalización ETL mediante la captura de datos modificados con canalizaciones declarativas de Lakeflow.
¿Qué es la actualización de una canalización?
Las canalizaciones despliegan la infraestructura y recalculan 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 Ejecutar una actualización en las canalizaciones declarativas de Lakeflow.
Ingestión de datos con canalizaciones declarativas de Lakeflow
Lakeflow Declarative Pipelines 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 utilizar las canalizaciones declarativas de Lakeflow para ingerir datos directamente desde la mayoría de los sistemas 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. Consulte Carga de datos con canalizaciones declarativas de Lakeflow.
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 produzcan errores en la restricción, 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. Consulte Administración de la calidad de los datos con las expectativas de canalización.
¿Cómo están relacionadas las canalizaciones declarativas de Lakeflow y Delta Lake?
Las canalizaciones declarativas de Lakeflow amplían la funcionalidad de Delta Lake. Dado que las tablas creadas y administradas por Las canalizaciones declarativas de Lakeflow son tablas delta, tienen las mismas garantías y características proporcionadas por Delta Lake. Consulte ¿Qué es Delta Lake en Azure Databricks?.
Lakeflow Declarative Pipelines 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 canalizaciones declarativas de Lakeflow y referencia de propiedades de tabla Delta.
Creación y administración de tablas mediante canalizaciones declarativas de Lakeflow
Azure Databricks administra automáticamente las tablas creadas con canalizaciones declarativas de Lakeflow, 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 Las canalizaciones declarativas de Lakeflow procesen todas las actualizaciones, inserciones y eliminaciones en una tabla de destino. Para más información y limitaciones, vea Conservación de eliminaciones manuales o actualizaciones.
Tareas de mantenimiento realizadas por canalizaciones declarativas de Lakeflow
Las canalizaciones declarativas de Lakeflow realizan tareas de mantenimiento en una cadencia óptima mediante la optimización predictiva. El mantenimiento puede mejorar el rendimiento de las consultas y reducir el costo quitando las versiones anteriores de las tablas. Esto incluye las operaciones completas de OPTIMIZE y VACUUM. Las tareas de mantenimiento se realizan según una programación que decide la optimización predictiva y solo si se ha ejecutado una actualización de canalización desde el mantenimiento anterior.
Para comprender la frecuencia con la que se ejecuta la optimización predictiva y comprender los costos de mantenimiento, consulte Referencia de la tabla del sistema de optimización predictiva.
Limitaciones
Para obtener una lista de las limitaciones, consulte Limitaciones de canalizaciones declarativas de Lakeflow.
Para obtener una lista de los requisitos y limitaciones específicos del uso de canalizaciones declarativas de Lakeflow con el catálogo de Unity, consulte Uso del catálogo de Unity con las canalizaciones declarativas de Lakeflow.
Recursos adicionales
- Las canalizaciones declarativas de Lakeflow tienen compatibilidad completa en la API REST de Databricks. Consulte Lakeflow Declarative Pipelines API(API de canalizaciones declarativas de Lakeflow).
- Para ajustes de canalización y tabla, consulte Referencia de propiedades de canalizaciones declarativas de Lakeflow.
- Documento de referencia del lenguaje SQL de Lakeflow Declarative Pipelines.
- Referencia de lenguaje Python para Lakeflow: Canalizaciones Declarativas.