Petya Petrova - Fotolia
Las 18 mejores herramientas y tecnologías de big data que debe conocer
Numerosas herramientas están disponibles para usar en aplicaciones de big data. Aquí hay un vistazo a 18 tecnologías populares de código abierto, además de información adicional sobre bases de datos NoSQL.
El mundo de los grandes datos solo se está haciendo más grande: las organizaciones de todo tipo están produciendo más datos, en diversas formas, año tras año. El volumen y la variedad de datos cada vez mayores están impulsando a las empresas a invertir más en herramientas y tecnologías de big data, ya que buscan utilizar todos esos datos para mejorar las operaciones, comprender mejor a los clientes, entregar productos más rápido y obtener otros beneficios comerciales a través de aplicaciones de análisis.
Los líderes de datos empresariales tienen una multitud de opciones en tecnologías de big data, con numerosos productos comerciales disponibles para ayudar a las organizaciones a implementar una gama completa de iniciativas de análisis basadas en datos, desde informes en tiempo real, hasta aplicaciones de aprendizaje automático.
Además, existen muchas herramientas de big data de código abierto, algunas de las cuales también se ofrecen en versiones comerciales o como parte de plataformas de big data y servicios administrados. Aquí hay 18 herramientas y tecnologías populares de código abierto para administrar y analizar big data, enumeradas en orden alfabético con un resumen de sus características y capacidades clave.
1. Airflow
Airflow es una plataforma de gestión de flujos de trabajo para programar y ejecutar canalizaciones de datos complejas en sistemas de big data. Permite que los ingenieros de datos y otros usuarios se aseguren de que cada tarea en un flujo de trabajo se ejecute en el orden designado y tenga acceso a los recursos del sistema requeridos. Airflow también se promociona como fácil de usar: los flujos de trabajo se crean en el lenguaje de programación Python y se pueden usar para construir modelos de aprendizaje automático, transferir datos y otros propósitos.
La plataforma se originó en Airbnb a finales de 2014 y se anunció oficialmente como tecnología de código abierto a mediados de 2015; se unió al programa de incubadoras de Apache Software Foundation al año siguiente y se convirtió en un proyecto de alto nivel de Apache en 2019. Airflow también incluye las siguientes características clave:
- una arquitectura modular y escalable basada en el concepto de gráficos acíclicos dirigidos (DAG), que ilustran las dependencias entre las diferentes tareas en los flujos de trabajo;
- una interfaz de usuario de aplicación web para visualizar canalizaciones de datos, monitorear su estado de producción y solucionar problemas; e
- integraciones listas para usar con las principales plataformas en la nube y otros servicios de terceros.
2. Delta Lake
Databricks Inc., un proveedor de software fundado por los creadores del motor de procesamiento Spark, desarrolló Delta Lake y luego abrió la tecnología basada en Spark en 2019 a través de Linux Foundation. La compañía describe a Delta Lake como "una capa de almacenamiento de formato abierto que brinda confiabilidad, seguridad y rendimiento en su lago de datos para operaciones de transmisión y por lotes".
Delta Lake no reemplaza los lagos de datos; más bien, está diseñado para situarse encima de ellos y crear un hogar único para datos estructurados, semiestructurados y no estructurados, eliminando los silos de datos que pueden obstaculizar las aplicaciones de big data. Además, el uso de Delta Lake puede ayudar a prevenir la corrupción de datos, permitir consultas más rápidas, aumentar la actualización de los datos y respaldar los esfuerzos de cumplimiento, según Databricks. La tecnología también viene con las siguientes características:
- soporte para transacciones ACID, es decir aquellas con atomicidad, consistencia, aislamiento y durabilidad;
- la capacidad de almacenar datos en un formato Apache Parquet abierto; y
- un conjunto de API compatibles con Spark.
3. Drill
El sitio web de Apache Drill lo describe como "un motor de consulta distribuido de baja latencia para conjuntos de datos a gran escala, incluidos datos estructurados y semiestructurados/anidados". Drill puede escalar a través de miles de nodos de clúster y es capaz de consultar petabytes de datos mediante SQL y API de conectividad estándar.
Diseñado para explorar conjuntos de big data, Drill se sitúa en una capa sobre múltiples fuentes de datos, lo que permite a los usuarios consultar una amplia gama de datos en diferentes formatos, desde archivos de secuencia de Hadoop y registros del servidor hasta bases de datos NoSQL y almacenamiento de objetos en la nube. También puede hacer lo siguiente:
- acceder a la mayoría de las bases de datos relacionales a través de un complemento;
- trabajar con herramientas de BI de uso común, como Tableau y Qlik; y
- se ejecuta en cualquier entorno de clúster distribuido, aunque requiere el software ZooKeeper de Apache para mantener la información sobre los clústeres.
4. Druid
Druid es una base de datos de análisis en tiempo real que ofrece baja latencia para consultas, alta simultaneidad, capacidades multiusuario y visibilidad instantánea de la transmisión de datos. Varios usuarios finales pueden consultar los datos almacenados en Druid al mismo tiempo sin afectar el rendimiento, según sus defensores.
Escrito en Java y creado en 2011, Druid se convirtió en una tecnología Apache en 2018. Generalmente, se considera una alternativa de alto rendimiento a los almacenes de datos tradicionales que se adapta mejor a los datos basados en eventos. Al igual que un almacén de datos, utiliza almacenamiento orientado a columnas y puede cargar archivos en modo por lotes. Pero también incorpora funciones de sistemas de búsqueda y bases de datos de series temporales, entre las que se incluyen las siguientes:
- índices nativos de búsqueda invertida para acelerar las búsquedas y el filtrado de datos;
- particionamiento y consulta de datos basados en el tiempo; y
- esquemas flexibles con soporte nativo para datos semiestructurados y anidados.
5. Flink
Flink, otra tecnología de código abierto de Apache, es un marco de procesamiento de flujo para aplicaciones distribuidas, de alto rendimiento y siempre disponibles. Admite cálculos con estado sobre flujos de datos tanto limitados como ilimitados y se puede utilizar para procesamiento por lotes, gráfico e iterativo.
Uno de los principales beneficios promocionados por los defensores de Flink es su velocidad: puede procesar millones de eventos en tiempo real para una baja latencia y un alto rendimiento. Flink, que está diseñado para ejecutarse en todos los entornos de clúster comunes, también incluye las siguientes características:
- cálculos en memoria con la capacidad de acceder al almacenamiento en disco cuando sea necesario;
- tres capas de API para crear diferentes tipos de aplicaciones; y
- un conjunto de bibliotecas para procesamiento de eventos complejos, aprendizaje automático y otros casos de uso comunes de big data.
6. Hadoop
Hadoop, un marco distribuido para almacenar datos y ejecutar aplicaciones en clústeres de hardware básico, se desarrolló como una tecnología pionera de big data para ayudar a manejar los volúmenes crecientes de datos estructurados, no estructurados y semiestructurados. Lanzado por primera vez en 2006, fue casi sinónimo de big data desde el principio; desde entonces ha sido parcialmente eclipsado por otras tecnologías, pero todavía se usa ampliamente.
Hadoop tiene cuatro componentes principales:
- el sistema de archivos distribuido de Hadoop (HDFS), que divide los datos en bloques para almacenarlos en los nodos de un clúster, utiliza métodos de replicación para evitar la pérdida de datos y administra el acceso a los datos;
- YARN, abreviatura de Yet Another Resource Negotiator, que programa trabajos para que se ejecuten en nodos de clúster y les asigna recursos del sistema;
- Hadoop MapReduce, un motor de procesamiento por lotes incorporado que divide grandes cálculos y los ejecuta en diferentes nodos para velocidad y equilibrio de carga; y
- Hadoop Common, un conjunto compartido de utilidades y bibliotecas.
Inicialmente, Hadoop se limitaba a ejecutar aplicaciones por lotes de MapReduce. La adición de YARN en 2013 lo abrió a otros motores de procesamiento y casos de uso, pero el marco todavía está estrechamente asociado con MapReduce. El ecosistema más amplio de Apache Hadoop también incluye varias herramientas de big data y marcos adicionales para procesar, administrar y analizar big data.
7. Hive
Hive es un software de infraestructura de almacenamiento de datos basado en SQL para leer, escribir y administrar grandes conjuntos de datos en entornos de almacenamiento distribuido. Fue creado por Facebook pero luego abierto a Apache, que continúa desarrollando y manteniendo la tecnología.
Hive se ejecuta sobre Hadoop y se usa para procesar datos estructurados; más específicamente, se utiliza para resumir y analizar datos, así como para consultar grandes cantidades de datos. Aunque no se puede utilizar para el procesamiento de transacciones en línea, actualizaciones en tiempo real y consultas o trabajos que requieren recuperación de datos de baja latencia, los desarrolladores describen a Hive como escalable, rápido y flexible.
Otras características clave incluyen lo siguiente:
- funcionalidad estándar de SQL para consultas y análisis de datos;
- un mecanismo incorporado para ayudar a los usuarios a imponer estructuras en diferentes formatos de datos; y
- acceso a archivos HDFS y almacenados en otros sistemas, como la base de datos Apache HBase.
8. HPCC Systems
HPCC Systems es una gran plataforma de procesamiento de datos desarrollada por LexisNexis antes de ser de código abierto en 2011. Fiel a su nombre completo –High-Performance Computing Cluster Systems– la tecnología es, en esencia, un grupo de computadoras construidas a partir de hardware básico para procesar, administrar y entregar big data.
Una plataforma de lago de datos lista para la producción que permite un rápido desarrollo y exploración de datos, HPCC Systems incluye tres componentes principales:
- Thor, un motor de refinería de datos que se utiliza para limpiar, fusionar y transformar datos y para perfilarlos, analizarlos y prepararlos para su uso en consultas;
- Roxie, un motor de entrega de datos que se utiliza para entregar datos preparados de la refinería; y
- Enterprise Control Language, o ECL, un lenguaje de programación para desarrollar aplicaciones.
9. Hudi
Hudi (pronunciado hoodie) es la abreviatura de Hadoop Upserts Deletes and Incrementals. Otra tecnología de código abierto mantenida por Apache, se utiliza para administrar la ingesta y el almacenamiento de grandes conjuntos de datos analíticos en sistemas de archivos compatibles con Hadoop, incluidos HDFS y servicios de almacenamiento de objetos en la nube.
Desarrollado por primera vez por Uber, Hudi está diseñado para proporcionar capacidades de preparación e ingesta de datos eficientes y de baja latencia. Además, incluye un marco de gestión de datos que las organizaciones pueden usar para hacer lo siguiente:
- simplificar el procesamiento de datos incrementales y el desarrollo de canalizaciones de datos;
- mejorar la calidad de los datos en los grandes sistemas de datos; y
- gestionar el ciclo de vida de los conjuntos de datos.
10. Iceberg
Iceberg es un formato de tabla abierta que se utiliza para administrar datos en lagos de datos, lo que hace en parte al rastrear archivos de datos individuales en tablas en lugar de rastrear directorios. Creado por Netflix para usar con las tablas del tamaño de un petabyte de la compañía, Iceberg ahora es un proyecto de Apache. Según el sitio web del proyecto, Iceberg generalmente "se usa en producción donde una sola tabla puede contener decenas de petabytes de datos".
Diseñado para mejorar los diseños estándar que existen en herramientas como Hive, Presto, Spark y Trino, el formato de tabla Iceberg tiene funciones similares a las tablas SQL en bases de datos relacionales. Sin embargo, también admite varios motores que funcionan con el mismo conjunto de datos. Otras características notables incluyen las siguientes:
- evolución de esquemas para modificar tablas sin tener que reescribir o migrar datos;
- partición oculta de datos que evita la necesidad de que los usuarios mantengan particiones; y
- una capacidad de "viaje en el tiempo" que admite consultas reproducibles utilizando la misma instantánea de la tabla.
11. Kafka
Kafka es una plataforma de transmisión de eventos distribuidos que, según Apache, es utilizada por más del 80 % de las empresas Fortune 100 y miles de otras organizaciones para canalizaciones de datos de alto rendimiento, análisis de transmisión, integración de datos y aplicaciones de misión crítica. En términos más simples, Kafka es un marco para almacenar, leer y analizar datos de transmisión.
La tecnología desacopla los flujos de datos y los sistemas, manteniendo los flujos de datos para que luego puedan usarse en otros lugares. Se ejecuta en un entorno distribuido y utiliza un protocolo de red TCP de alto rendimiento para comunicarse con sistemas y aplicaciones. Kafka fue creado por LinkedIn antes de pasar a Apache en 2011.
Los siguientes son algunos de los componentes clave de Kafka
- un conjunto de cinco API principales para Java y el lenguaje de programación Scala;
- tolerancia a fallas para servidores y clientes en clústeres de Kafka; y
- escalabilidad elástica hasta 1000 intermediarios o servidores de almacenamiento por clúster.
12. Kylin
Kylin es una plataforma de almacenamiento y análisis de datos distribuidos para big data. Proporciona un motor de procesamiento analítico en línea (OLAP) diseñado para admitir conjuntos de datos extremadamente grandes. Debido a que Kylin se basa en otras tecnologías de Apache –incluidas Hadoop, Hive, Parquet y Spark– puede escalar fácilmente para manejar esas grandes cargas de datos, según sus patrocinadores.
También es rápido y ofrece respuestas a consultas medidas en milisegundos. Además, Kylin proporciona una interfaz ANSI SQL para el análisis multidimensional de big data y se integra con Tableau, Microsoft Power BI y otras herramientas de BI. Kylin fue desarrollado inicialmente por eBay, que lo aportó como tecnología de código abierto en 2014; se convirtió en un proyecto de alto nivel dentro de Apache al año siguiente. Otras características que proporciona incluyen las siguientes:
- cálculo previo de cubos OLAP multidimensionales para acelerar el análisis;
- funciones de supervisión y gestión de trabajos; y
- soporte para construir interfaces de usuario personalizadas sobre el núcleo de Kylin.
13. Pinot
Pinot es un almacén de datos OLAP distribuido en tiempo real creado para admitir consultas de baja latencia por parte de usuarios de análisis. Su diseño permite el escalado horizontal para ofrecer esa baja latencia incluso con grandes conjuntos de datos y alto rendimiento. Para proporcionar el rendimiento prometido, Pinot almacena datos en formato de columnas y utiliza varias técnicas de indexación para filtrar, agregar y agrupar datos. Además, los cambios de configuración se pueden realizar dinámicamente sin afectar el rendimiento de las consultas o la disponibilidad de los datos.
Según Apache, Pinot puede manejar billones de registros en general mientras ingiere millones de eventos de datos y procesa miles de consultas por segundo. El sistema tiene una arquitectura tolerante a fallas sin un punto único de falla y asume que todos los datos almacenados son inmutables, aunque también funciona con datos mutables. Iniciado en 2013 como un proyecto interno en LinkedIn, Pinot fue de código abierto en 2015 y se convirtió en un proyecto de nivel superior de Apache en 2021.
Las siguientes características también son parte de Pinot:
- ingesta de datos casi en tiempo real desde fuentes de transmisión, además de la ingesta por lotes de HDFS, Spark y servicios de almacenamiento en la nube;
- una interfaz SQL para consultas interactivas y una API REST para consultas de programación; y
- soporte para ejecutar algoritmos de aprendizaje automático contra conjuntos de datos almacenados para la detección de anomalías.
14. Presto
Anteriormente conocido como PrestoDB, este motor de consulta SQL de código abierto puede manejar simultáneamente consultas rápidas y grandes volúmenes de datos en conjuntos de datos distribuidos. Presto está optimizado para consultas interactivas de baja latencia y se escala para admitir aplicaciones de análisis en varios petabytes de datos en almacenes de datos y otros repositorios.
El desarrollo de Presto comenzó en Facebook en 2012. Cuando sus creadores abandonaron la empresa en 2018, la tecnología se dividió en dos ramas: PrestoDB, que todavía estaba dirigida por Facebook, y PrestoSQL, que lanzaron los desarrolladores originales. Eso continuó hasta diciembre de 2020, cuando PrestoSQL pasó a llamarse Trino y PrestoDB volvió al nombre de Presto. El proyecto de código abierto de Presto ahora está supervisado por la Fundación Presto, que se creó como parte de la Fundación Linux en 2019.
Presto también incluye las siguientes características:
- soporte para consultar datos en Hive, varias bases de datos y almacenes de datos propietarios;
- la capacidad de combinar datos de múltiples fuentes en una sola consulta; y
- tiempos de respuesta de consultas que normalmente oscilan entre menos de un segundo y minutos.
15. Samza
Samza es un sistema de procesamiento de flujo distribuido creado por LinkedIn y ahora es un proyecto de código abierto administrado por Apache. Según el sitio web del proyecto, Samza permite a los usuarios crear aplicaciones con estado que pueden procesar datos en tiempo real de Kafka, HDFS y otras fuentes.
El sistema puede ejecutarse sobre Hadoop YARN o Kubernetes y también ofrece una opción de implementación independiente. El sitio de Samza dice que puede manejar "varios terabytes" de datos de estado, con baja latencia y alto rendimiento para un análisis de datos rápido. A través de una API unificada, también puede usar el mismo código escrito para trabajos de transmisión de datos para ejecutar aplicaciones por lotes. Otras características incluyen lo siguiente:
- integración incorporada con Hadoop, Kafka y varias otras plataformas de datos;
- la capacidad de ejecutarse como una biblioteca integrada en aplicaciones Java y Scala; y
- características tolerantes a fallas diseñadas para permitir una recuperación rápida de fallas del sistema.
16. Spark
Apache Spark es un motor de análisis y procesamiento de datos en memoria que puede ejecutarse en clústeres administrados por Hadoop YARN, Mesos y Kubernetes o en modo independiente. Permite transformaciones y análisis de datos a gran escala y se puede utilizar tanto para aplicaciones por lotes como de transmisión, así como para casos de uso de aprendizaje automático y procesamiento de gráficos. Todo eso es compatible con el siguiente conjunto de módulos y bibliotecas integradas:
- Spark SQL, para el procesamiento optimizado de datos estructurados a través de consultas SQL;
- Spark Streaming y Structured Streaming, dos módulos de procesamiento de flujo;
- MLlib, una biblioteca de aprendizaje automático que incluye algoritmos y herramientas relacionadas; y
- GraphX, una API que agrega soporte para aplicaciones gráficas.
Se puede acceder a los datos desde varias fuentes, incluidas HDFS, bases de datos relacionales y NoSQL, y conjuntos de datos de archivos sin formato. Spark también admite varios formatos de archivo y ofrece un conjunto diverso de API para desarrolladores.
Pero su tarjeta de presentación más importante es la velocidad: los desarrolladores de Spark afirman que puede funcionar hasta 100 veces más rápido que su contraparte tradicional MapReduce en trabajos por lotes cuando se procesa en la memoria. Como resultado, Spark se ha convertido en la mejor opción para muchas aplicaciones por lotes en entornos de big data, al mismo tiempo que funciona como un motor de propósito general. Desarrollado por primera vez en la Universidad de California, Berkeley, y ahora mantenido por Apache, también puede procesar en disco cuando los conjuntos de datos son demasiado grandes para caber en la memoria disponible.
17. Storm
Storm, otra tecnología de código abierto de Apache, es un sistema de cómputo en tiempo real distribuido que está diseñado para procesar de manera confiable flujos de datos ilimitados. Según el sitio web del proyecto, se puede usar para aplicaciones que incluyen análisis en tiempo real, aprendizaje automático en línea y computación continua, así como trabajos de extracción, transformación y carga.
Los clústeres de Storm son similares a los de Hadoop, pero las aplicaciones continúan ejecutándose de forma continua a menos que se detengan. El sistema es tolerante a fallas y garantiza que los datos serán procesados. Además, el sitio de Apache Storm dice que se puede usar con cualquier lenguaje de programación, sistema de cola de mensajes y base de datos. Storm también incluye los siguientes elementos:
- una función Storm SQL que permite ejecutar consultas SQL en conjuntos de datos de transmisión;
- Trident y Stream API, otras dos interfaces de alto nivel para procesamiento en Storm; y
- uso de la tecnología Apache ZooKeeper para coordinar clústeres.
18. Trino
Como se mencionó anteriormente, Trino es una de las dos ramas del motor de consulta de Presto. Conocido como PrestoSQL hasta que fue renombrado en diciembre de 2020, Trino "funciona a una velocidad ridícula", en palabras de Trino Software Foundation. Ese grupo, que supervisa el desarrollo de Trino, se formó originalmente en 2019 como Presto Software Foundation; su nombre también se cambió como parte del cambio de marca.
Trino permite a los usuarios consultar datos independientemente de dónde estén almacenados, con compatibilidad para ejecutar consultas de forma nativa en Hadoop y otros repositorios de datos. Al igual que Presto, Trino también está diseñado para lo siguiente:
- tanto análisis interactivo ad hoc como consultas por lotes de larga duración;
- combinar datos de múltiples sistemas en consultas; y
- trabajar con Tableau, Power BI, el lenguaje de programación R y otras herramientas de BI y análisis.
También disponibles para usar en sistemas de big data: bases de datos NoSQL
Las bases de datos NoSQL son otro tipo importante de tecnología de big data. Rompen con el diseño convencional de bases de datos relacionales basadas en SQL al admitir esquemas flexibles, lo que las hace muy adecuadas para manejar grandes volúmenes de todo tipo de datos, en particular datos no estructurados y semiestructurados que no se ajustan bien a los esquemas estrictos que se usan en las bases de datos relacionales. sistemas
El software NoSQL surgió a fines de la década de 2000 para ayudar a abordar las crecientes cantidades de datos diversos que las organizaciones generaban, recopilaban y buscaban analizar como parte de las iniciativas de big data. Desde entonces, las bases de datos NoSQL se han adoptado ampliamente y ahora se utilizan en empresas de todos los sectores. Muchas son tecnologías de código abierto que los proveedores también ofrecen en versiones comerciales, mientras que algunas son productos patentados controlados por un solo proveedor.
Además, las propias bases de datos NoSQL vienen en varios tipos que admiten diferentes aplicaciones de big data. Estas son las cuatro categorías principales de NoSQL, con ejemplos de las tecnologías disponibles en cada una:
- Bases de datos de documentos. Almacenan elementos de datos en estructuras similares a documentos, utilizando formatos como JSON. Los ejemplos incluyen Couchbase Server, CouchDB y MongoDB.
- Bases de datos de gráficos. Conectan "nodos" de datos en estructuras similares a gráficos para enfatizar las relaciones entre los elementos de datos. Los ejemplos incluyen AllegroGraph, Amazon Neptune, ArangoDB y Neo4j.
- Almacenes de clave-valor. Emparejan claves únicas y valores asociados en un modelo de datos relativamente simple que se puede escalar fácilmente. Los ejemplos incluyen Aerospike, Amazon DynamoDB, Redis y Riak.
- Bases de datos de columna ancha. Almacenan datos en tablas que pueden contener un gran número de columnas para manejar muchos elementos de datos. Los ejemplos incluyen Cassandra, Google Cloud Bigtable y HBase.
También se han creado bases de datos multimodelo con soporte para diferentes enfoques NoSQL, así como SQL en algunos casos; MarkLogic Server y Azure Cosmos DB de Microsoft son ejemplos. Muchos otros proveedores de NoSQL han agregado soporte multimodelo a sus bases de datos. Por ejemplo, MongoDB admite ahora datos gráficos, geoespaciales y de series temporales, y Redis ofrece módulos de documentos y series temporales. Estas dos tecnologías y muchas otras también incluyen ahora capacidades de bases de datos vectoriales para soportar funciones de búsqueda vectorial en aplicaciones de IA generativa.
Nota del editor: Al investigar exhaustivamente las tecnologías de big data, los editores de TechTarget se centraron en 18 herramientas populares de código abierto por sus capacidades de gestión y análisis de datos. Nuestra investigación incluyó informes de mercado y cobertura de noticias relevantes, así como datos y análisis de respetadas firmas de investigación, como Capterra, Forrester Research, Gartner y G2. La lista está ordenada alfabéticamente.
Mary K. Pratt es una periodista independiente galardonada que se centra en la gestión de la ciberseguridad y las TI empresariales.