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.
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:
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.
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.
Construido teniendo en cuenta la apertura y la capacidad de composición, Spark Declarative Pipelines ofrece:
Y lo más importante, es Apache Spark hasta el final, sin envoltorios ni cajas negras.
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

"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°

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
