Ir al contenido principal

Incorporación de canalizaciones declarativas al proyecto de código abierto Apache Spark™

Un estándar abierto y probado para la transformación de datos

Bringing Declarative Pipelines to the Apache Spark™ Open Source Project

Publicado: 12 de junio de 2025

Código abierto6 min de lectura

Summary

  • Estamos donando Declarative Pipelines, una API declarativa probada para crear canalizaciones de datos robustas con una fracción del trabajo, a Apache Spark™.
  • Este estándar simplifica el desarrollo de canalizaciones en cargas de trabajo por lotes y de streaming.
  • Años de experiencia en el mundo real han dado forma a este enfoque flexible y nativo de Spark para canalizaciones por lotes y de streaming.

Apache Spark™ se ha convertido en el motor de facto para el procesamiento de big data, impulsando cargas de trabajo en algunas de las organizaciones más grandes del mundo. Durante la última década, hemos visto a Apache Spark evolucionar de un potente motor de computación de propósito general a una capa crítica de la arquitectura Open Lakehouse, con Spark SQL, Structured Streaming, formatos de tabla abiertos y gobernanza unificada que sirven como pilares para las plataformas de datos modernas.

Con el reciente lanzamiento de Apache Spark 4.0, esa evolución continúa con importantes avances en streaming, Python, SQL y datos semiestructurados. Puede leer más sobre el lanzamiento aquí.

Basándonos en la sólida base de Apache Spark, nos complace anunciar una nueva incorporación al código abierto:

Estamos donando Declarative Pipelines, un estándar probado para crear canalizaciones de datos escalables y fiables, a Apache Spark.

Esta contribución extiende la potencia declarativa de Apache Spark de consultas individuales a canalizaciones completas, lo que permite a los usuarios definir qué debe hacer su canalización y dejar que Apache Spark averigüe cómo hacerlo. El diseño se basa en años de observación de cargas de trabajo reales de Apache Spark, codificando lo que hemos aprendido en una API declarativa que cubre los patrones más comunes, incluidos los flujos por lotes y de streaming.

Gráfico de flujo de datos
Gráfico de flujo de datos de ejemplo

Las API declarativas hacen que ETL sea más sencillo y fácil de mantener

A través de años de trabajo con usuarios reales de Spark, hemos visto surgir desafíos comunes al crear canalizaciones de producción:

  • Se dedica demasiado tiempo a conectar canalizaciones con "código glue" para gestionar la ingesta incremental o decidir cuándo materializar los conjuntos de datos. Esto es un trabajo pesado no diferenciado que cada equipo termina manteniendo en lugar de centrarse en la lógica empresarial principal
  • Reimplementar los mismos patrones en todos los equipos, lo que genera inconsistencia y sobrecarga operativa
  • Falta de un marco estandarizado para pruebas, linaje, CI/CD y supervisión a escala

En Databricks, comenzamos a abordar estos desafíos codificando las prácticas recomendadas de ingeniería comunes en un producto llamado DLT. DLT adoptó un enfoque declarativo: en lugar de conectar toda la lógica usted mismo, especifica el estado final de sus tablas y el motor se encarga de cosas como la asignación de dependencias, el manejo de errores, la creación de puntos de control, las fallas y los reintentos por usted.

El resultado fue un gran avance en la productividad, la fiabilidad y la facilidad de mantenimiento, especialmente para los equipos que gestionan canalizaciones de producción complejas.

Desde el lanzamiento de DLT, hemos aprendido mucho.

Hemos visto dónde el enfoque declarativo puede tener un impacto desmesurado; y dónde los equipos necesitaban más flexibilidad y control. Hemos visto el valor de automatizar la lógica compleja y la orquestación de streaming; y la importancia de construir sobre las API abiertas de Spark para garantizar la portabilidad y la libertad del desarrollador.

Esa experiencia informó una nueva dirección: un marco de código abierto, nativo de Spark y de primera clase para el desarrollo de canalizaciones declarativas.

De las consultas a las canalizaciones de extremo a extremo: el siguiente paso en la evolución declarativa de Spark

Apache Spark SQL hizo que la ejecución de consultas fuera declarativa: en lugar de implementar uniones y agregaciones con código RDD de bajo nivel, los desarrolladores podían simplemente escribir SQL para describir el resultado que querían, y Spark se encargaba del resto.

Spark Declarative Pipelines se basa en esa base y da un paso más allá, extendiendo el modelo declarativo más allá de las consultas individuales a canalizaciones completas que abarcan varias tablas. Ahora, los desarrolladores pueden definir qué conjuntos de datos deben existir y cómo se derivan, mientras que Spark determina el plan de ejecución óptimo, gestiona las dependencias y gestiona el procesamiento incremental automáticamente.

Spark Declarative Pipelines en acción
Spark Declarative Pipelines en acción

Construido teniendo en cuenta la apertura y la capacidad de composición, Spark Declarative Pipelines ofrece:

  • API declarativas para definir tablas y transformaciones
  • Soporte nativo para flujos de datos por lotes y de streaming
  • Orquestación basada en datos con seguimiento automático de dependencias, ordenación de la ejecución y gestión del relleno
  • Creación automática de puntos de control, reintentos y procesamiento incremental para datos de streaming
  • Soporte para SQL y Python
  • Transparencia de la ejecución con acceso completo a los planes de Spark subyacentes

Y lo más importante, es Apache Spark hasta el final, sin envoltorios ni cajas negras.

LIBRO ELECTRÓNICO

Introducción a ETL

Un nuevo estándar, ahora en abierto

Esta contribución representa años de trabajo en Apache Spark, Delta Lake y la comunidad de datos abiertos en general. Está inspirado en lo que hemos aprendido de la construcción de DLT, pero diseñado para ser más flexible, más extensible y totalmente de código abierto.

Y esto es solo el principio. Estamos contribuyendo con esto como una capa común sobre la que todo el ecosistema de Apache Spark puede construir, ya sea que esté orquestando canalizaciones en su propia plataforma, construyendo abstracciones específicas del dominio o contribuyendo directamente a Spark en sí. Este marco está aquí para apoyarle.

"Las canalizaciones declarativas ocultan la complejidad de la ingeniería de datos moderna bajo un modelo de programación simple e intuitivo. Como gerente de ingeniería, me encanta el hecho de que mis ingenieros puedan concentrarse en lo que más le importa al negocio. Es emocionante ver este nivel de innovación ahora de código abierto, lo que lo hace accesible a aún más equipos". — Jian (Miracle) Zhou, gerente sénior de ingeniería, Navy Federal Credit Union

Navy Federal Credit Union

"En 84.51 siempre estamos buscando formas de facilitar la construcción y el mantenimiento de nuestras canalizaciones de datos, especialmente a medida que avanzamos hacia herramientas más abiertas y flexibles. El enfoque declarativo ha sido de gran ayuda para reducir la cantidad de código que tenemos que gestionar, y ha facilitado el soporte tanto de lotes como de streaming sin unir sistemas separados. La apertura de este marco como Spark Declarative Pipelines es un gran paso para la comunidad de Spark". — Brad Turnbaugh, ingeniero de datos sénior, 84.51°

8451

Qué sigue

Estén atentos para obtener más detalles en la documentación de Apache Spark. Mientras tanto, puede revisar el Jira y el debate de la comunidad para la propuesta.

Si está creando canalizaciones con Apache Spark hoy, lo invitamos a explorar el modelo declarativo. Nuestro objetivo es hacer que el desarrollo de canalizaciones sea más simple, más confiable y más colaborativo para todos.

Lakehouse se trata de algo más que solo almacenamiento abierto. Se trata de formatos abiertos, motores abiertos y, ahora, patrones abiertos para construir sobre ellos.

Creemos que las canalizaciones declarativas se convertirán en un nuevo estándar para el desarrollo de Apache Spark. Y estamos entusiasmados de construir ese futuro juntos, con la comunidad, en abierto.

(Esta entrada del blog ha sido traducida utilizando herramientas basadas en inteligencia artificial) Publicación original

No te pierdas ninguna publicación de Databricks.

Suscríbete a nuestro blog y recibe las últimas publicaciones en tu bandeja de entrada.