Apache
Grupo de herramientas de software open source para el análisis de datos, big data, ciencia de datos e inteligencia de negocios.
Descripción
En el mundo del big data el nombre Apache no se refiere a una sola herramienta, sino a la Fundación de Software Apache (ASF), una organización sin fines de lucro que cobija los proyectos de código abierto más importantes del mundo para el manejo de datos masivos.
Ciencia de datos
En ciencia de datos, nos podemos encontrar con que Python o R por sí solos no pueden manejar el volumen de información de una empresa moderna.
Las soluciones que nos ofrece Apache incluyen:
-
Escalabilidad: Si nuestros datos crecen, solo tendremos que añadir más ordenadores al clúster.
-
Costo cero de licencia: Al ser open source, las empresas pueden usarlos sin pagar costosas licencias.
-
Comunidad: Al ser el estándar de la industria, siempre encontraremos documentación y librerías compatibles.
Inteligencia de negocios
La fundación Apache también tiene herramientas diseñadas específicamente para business intelligence.
Estas herramientas se encargan de la «última milla»: convertir esos petabytes de datos en gráficos, cuadros de mando (dashboards) e informes que la gerencia o los stakeholders puedan comprender.
Ventajas
Python y R -los dos lenguajes de programación más populares en data science- fueron diseñados originalmente para la computación local, mientras que las empresas modernas generan datos a una escala distribuida. Esto puede derivar «cuellos de botella», que, sin embargo, pueden desbloquearse gracias a la introducción de herramientas de Apache.
El límite de la memoria RAM
Por defecto, cuando abrimos un archivo en Python o en R, el lenguaje intenta cargar todo el conjunto de datos en la memoria RAM.
El problema
Si mi laptop tiene 16 GB de RAM y quiero analizar un dataset de 50 GB, mi ordenador simplemente se «congelará» o el programa arrojará un error tipo Memory Error.
La solución Apache
Herramientas como Apache Spark no cargan todo a la vez. Dividen el archivo en trozos pequeños y los procesan por partes, o incluso los reparten entre 10, 100 o 1.000 ordenadores diferentes.
El procesamiento en un solo núcleo (single-core)
Muchos de los algoritmos tradicionales de Python o R están diseñados para ejecutarse de forma secuencial en un solo núcleo de la CPU.
El problema
Aunque yo cuente con un ordenador potente con 12 núcleos, Python podría estar usando solo uno al 100% mientras los otros 11 estarán descansando. Esto hace que procesar millones de filas tome horas.
La solución Apache
El ecosistema Apache está diseñado para el procesamiento paralelo.
La «Ley de los datos locales»
Python y R suelen trabajar con archivos que están en el disco duro (.csv, .xlsx, .json).
El problema
En una empresa moderna, los datos no están en un solo archivo; están esparcidos en data lakes o en servidores en la nube. Mover esos datos hacia un script de Python sería lento y costoso.
La solución Apache
Tecnologías como Apache Hadoop (HDFS) o Apache Hive permiten llevar el código hacia donde están los datos, en lugar de mover los datos hacia el código.
Ejemplos de proyectos Apache
Podemos dividir los proyectos principales de Apache según la etapa del flujo de trabajo, ya sea en ciencia de datos, en inteligencia de negocios u otras materias en las que haga falta trabajar con grandes volúmenes de datos.