Skip to main content

Apache

← Volver

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.

Procesamiento y computación distribuida

Apache Flink se especializa en el procesamiento de flujos de datos en tiempo real (streaming).

Apache Hadoop introdujo el sistema de archivos distribuido (HDFS) que permite almacenar archivos gigantescos repartidos en muchos servidores.

Apache Kylin fue diseñado por eBay para resolver un problema: ¿Cómo hacemos informes de BI sobre Hadoop sin esperar horas?

Esta herramienta proporciona una interfaz SQL y capacidades de cubos multidimensionales (OLAP) sobre datasets de tamaño masivo (big data).

«Pre-calcula» los resultados: si vas a preguntar por «Ventas por región y mes», Kylin lo calcula antes de que lo preguntes.

Permite que herramientas tradicionales como Tableau, Power BI o Excel se conecten a Hadoop y funcionen de forma fluida, como si estuvieran conectadas a una base de datos pequeña.

Apache Spark es un motor de procesamiento ultra rápido, que permite realizar análisis de datos y machine learning. Se ha diseñado para ser rápido, versátil y escalable en el análisis de big data (macrodatos) y por ello se utiliza en el campo de la ciencia de datos.

Emplea procesamiento en memoria RAM y un grafo acíclico dirigido (DAG) para lograr una ejecución optimizada, permitiendo el análisis en tiempo real, procesamiento por lotes, machine learning y consultas SQL.

Funciona en clústeres independientes o sobre Hadoop, ofreciendo APIs en Python (PySpark), Scala, Java y R.

Apache Superset es una plataforma moderna de exploración y visualización de datos. Sirve para crear dashboards interactivos con una interfaz muy visual.

Es cloud-native y puede conectarse a casi cualquier base de datos SQL. Además, tiene un editor SQL integrado llamado SQL Lab para que los analistas más técnicos preparen sus datos antes de traducirlos en gráficos.

Superset es gratuito y escalable para miles de personas sin costes de licencia.

Almacenamiento y gestión de bases de datos

Apache Cassandra es una base de datos NoSQL diseñada para manejar cantidades masivas de datos sin fallos.

Es utilizada por gigantes como Apple o Netflix.

Apache Doris es un sistema de análisis MPP (procesamiento masivo en paralelo) muy popular en empresas que necesitan informes ultra rápidos y sencillos de gestionar. Permite reportes de alta concurrencia (muchos usuarios consultando a la vez) y análisis ad hoc.

Es extremadamente fácil de instalar comparado con otros proyectos de Apache y no tiene dependencias externas complicadas.

Apache Hive permite consultar datos almacenados en Hadoop utilizando un lenguaje muy similar al SQL tradicional, facilitando la vida a los analistas.

Apache Parquet es un formato de almacenamiento en columnas que optimiza drásticamente el espacio y la velocidad de lectura.

Orquestación y flujo de datos

Apache Airflow es el «director de orquesta». Se usa para programar y monitorear flujos de trabajo (pipelines) complejos. Por ejemplo, para decirle al sistema: «Limpia estos datos a las 2 AM, entrena el modelo a las 3 AM y genera el reporte a las 4 AM».

Apache Kafka es un sistema de mensajería que permite que los datos viajen de un punto A a un punto B en tiempo real, ideal para aplicaciones que no pueden esperar.

Enlaces

Ir a Arriba