Por Yoav Étsion, Co-fundador y CTO de Speedata


En los últimos años, Apache Spark, un motor de procesamiento de código abierto para grandes conjuntos de datos que distribuye las tareas de procesamiento en varias unidades de hardware dedicadas, se ha disparado en popularidad entre los desarrolladores y científicos de datos, convirtiéndose rápidamente en el estándar de la industria para consultas analíticas de big data.

En comparación con otros marcos de procesamiento por lotes, Spark admite múltiples lenguajes de programación y puede procesar cantidades de datos mucho mayores a velocidades más rápidas, lo que le permite escalar junto con el crecimiento de una empresa. De hecho, prácticamente todos los principales proveedores de la nube, incluidos AWS, Microsoft Azure y GCP, han optado por ofrecer variantes de Spark como SaaS dentro de sus propias plataformas en la nube, y los servicios administrados como Snowflake, Athena y Redshift también han agregado conectores a Spark.

Aunque sus capacidades de rendimiento son notables, la gran cantidad de datos que analizan las empresas de todo el mundo es cada vez mayor, por lo que, naturalmente, las velocidades de procesamiento de consultas de Spark son cada vez menos eficientes. Desafortunadamente, las mejoras generadas por varias soluciones de software y ajuste de hardware han tenido un beneficio limitado y no serán escalables a largo plazo a medida que los datos continúen con su sólida trayectoria de crecimiento.

Enfoques de software

A pesar de lo cruciales que se han vuelto los datos para la inteligencia empresarial, el descubrimiento científico y la innovación, la velocidad a la que se generan supera las velocidades de procesamiento. Resolver este problema sigue siendo un gran desafío para los ingenieros de software y hardware, a pesar de los considerables recursos y mano de obra que los gigantes tecnológicos tienen y están dedicando a ello.

No solo los gigantes tecnológicos se han involucrado. La comunidad de análisis de datos también desarrolló una serie de marcos de código abierto, sobre todo Hadoop en 2006, Presto en 2013 y Spark en 2014. Esto permitió que las empresas públicas y privadas de todo el mundo ayudaran a impulsar el rendimiento y la escala del análisis de datos. Sin embargo, avance rápido hasta 2022, y el problema aún persiste.

El año pasado, Intel y Kyligence presentaron el sucesor del motor SQL nativo de Intel, Gazelle, Project Gluten , un complemento de código abierto que acelera moderadamente las consultas de Spark SQL mediante la descarga de cargas de trabajo a otros motores de ejecución de software. Más tarde ese año, Databricks hizo lo mismo y lanzó su propio motor C++ de próxima generación, Photon, que acelera el procesamiento al doble en comparación con su motor de consulta anterior. En marzo pasado, Meta se lanzó al ruedo y lanzó Velox , un motor C++ similar diseñado para mejorar su procesamiento analítico, que también se integró en Spark como parte del Proyecto Gluten.

Pero optimizar el software viene con una compensación. Cuanto más software se optimice para permitir un mejor rendimiento en cargas de trabajo de nicho, más se obstaculizan las eficiencias de otras cargas de trabajo, lo que limita la generalidad de cada marco de software.

Enfoques de hardware

Algunos innovadores han intentado abordar el problema desde la perspectiva del hardware. Intel, por ejemplo, ofrece guías sobre compresión de datos para acelerar Spark en sus procesadores Xeon; Asimismo, Nvidia implementó la aceleración de GPU para Spark.

Más allá de las propias unidades de procesamiento, las empresas tecnológicas han intentado mejorar el rendimiento de las cargas de trabajo analíticas a través de áreas de computación, incluidas la memoria, el almacenamiento y las redes. Dichas tácticas han implicado el intercambio de discos duros basados ​​en rotación por unidades de estado sólido, el aumento de la población de DIMM (módulo de memoria dual en línea) para maximizar el ancho de banda de la memoria y el establecimiento de redes más rápidas.

A pesar de lo metódicos y laboriosos que han sido estos esfuerzos, los resultados no parecen estar a la altura del incalculable crecimiento de los datos. Si bien Databricks se jactó de un aumento del rendimiento de 3X de 2016 a 2021, un aumento interanual del 25 por ciento, una vez más estamos alcanzando los límites del rendimiento del procesamiento de consultas, ya que el efecto de las optimizaciones de software solo se estabiliza.

Adoptar el enfoque personalizado

Las consultas Spark son esenciales para el desarrollo y la innovación en todas las industrias, incluidas las farmacéuticas, las telecomunicaciones y muchas otras. Si no encontramos una manera de procesar y analizar big data a un ritmo más rápido, estas industrias vitales se perderán innovaciones clave.

En lugar de gastar recursos desproporcionados en mejoras de procesamiento de datos incrementales, puede ser el momento de centrarse en mejorar el rendimiento computacional del análisis de datos mediante la inversión en hardware personalizado.

Cualquiera que sea la solución, es hora de repensar cómo lograr mayores capacidades de procesamiento que vayan de la mano o, si nos atrevemos, incluso superen la inmensa tasa de crecimiento de los datos.