Big Data en las nubes

Amazon Web Services, Google Cloud Platform y Azure se han convertido en los principales proveedores de tecnología Cloud hoy en día. En el blog ya hicimos una comparativa entre alguna de estas plataformas. Analizamos sus características en cuanto a almacenamiento y procesamiento y vimos sus diferencias y similitudes más destacadas sobre bases de datos, redes, herramientas de desarrollo y gestión, analytics y machine learning, entre otras.

Dentro del amplio abanico de soluciones IaaS y PaaS que ofrecen estos proveedores destacan los componentes que ofrecen soluciones específicas para el área Big Data.

En este post haremos un análisis de las principales herramientas orientadas a Big Data que nos ofrecen estos tres proveedores. Clasificaremos los diferentes componentes como soluciones de almacenamiento, procesamiento o inteligencia.

Amazon

aws

DynamoDB

Servicio gestionado de base de datos NoSQL, capaz de almacenar grandes volúmenes de datos, pero ofreciendo unas latencias inferiores a 10 milisegundos independientemente del volumen de almacenamiento. Estos sistemas siempre hacen uso de discos SSD para ofrecer este rendimiento.

Redshift

Es el servicio por excelencia de Datawarehouse, ideal para herramientas de Business Intelligence. Escalable hasta varios Petabytes. Ofrece un interfaz estándar ODBC/JDBC. Dispone de una integración sencilla para la carga de datos y backups desde S3.

S3

Sistema vertebral de almacenamiento de objetos de AWS que permite almacenar ficheros de hasta 5TB por fichero. Es un sistema altamente escalable y con posibilidad de encriptación. Con una durabilidad en este tipo de sistemas es muy alto llegando a 11 9s (99,999999999). Es el principal sistema utilizado para importar datos o almacenar resultados.

EMR

Es un método sencillo para el análisis de un gran volumen de datos a través un MapReduce clásico. Para ello Amazon usa Apache Hadoop o Spark para la distribución y procesamiento de los datos sobre instancias de EC2 permitiendo la ejecución de los trabajos tanto en batch en como real-time (spark streaming).

Kinesis

Es la plataforma que nos ofrece Amazon para la gestión de datos en tiempo real, dividida en tres componentes. Kinesis Firehose para la carga de datos en S3 o Redshift. Kinesis Streams gestión de flujos y comunicación con otras aplicaciones. Kinesis Analytics para la realización de analítica sencilla que permite transformaciones o agregaciones de los datos a través de lenguaje SQL en vuelo.

Data Pipeline

Data Pipeline nos ayuda en la orquestación de los datos entre los diferentes servicios que ofrece AWS. Durante dicha transición, nos permite ejecutar transformaciones sobre los datos. Este servicio, como otros de Amazon, dispone de un on-premise.

Machine Learning

Un servicio para desarrolladores que permite incluso crear modelos de forma sencilla sin tener que preocuparnos del algoritmo a utilizar. Nuestra tarea consiste en proporcionar los datos para el entrenamiento del modelo a través de S3, Redshift o RDS. Una vez tenemos el modelo entrenado sólo tenemos que mandar nuestras solicitudes de predicción.

QuickSight

Es el servicio de Business Intelligence con una alta integración con Redshift como capa de almacenamiento, aunque por supuesto permite integración con otras fuentes de datos. Orientada a usuarios de negocio y con un sistema in-memory de los datos llamado SPICE.

ELS

Este servicio nos ofrece un motor de Elasticsearch autogestionado. Viene incluido con el stack de Elasticsearch-Logstash-Kibana a modo de cliente y también nos ofrece el API de Elasticsearch para consultas más concretas o realizar la indexación de la información que necesitemos (logs, transacciones…).

Google Cloud

gcp-header-logo

Bigtable

Es el servicio NoSQL escalable y autogestionado que ofrece Google con una baja latencia y un alto rendimiento, incluso sometido a una alta carga. También es compatible con la interfaz de comunicación HBase además de vía API, permitiendo capacidad a nivel de Petabyte.

Datastore

Datastore nos ofrece un sistema de almacenamiento escalable NoSQL. Es un servicio gestionado que maneja automáticamente el sharding y la replicación. Ofrece transacciones ACID, índices y un interfaz de consultas SQL-like.

BigQuery

BigQuery ofrece un servicio gestionado de Datawarehouse que escala a nivel de Petabyte. Soporta queries a través de SQL 2011 y nos permite definir funciones a medida (UDFs) en Javascript. Es fácil cargar datos a través de Cloud Storage, Cloud Datastore, Cloud Dataflow o ficheros a través de ETLs serverless.

Dataproc

Dataproc nos permite gestionar de forma sencilla clusters de procesamiento Big Data basados en tecnología open source como Apache Hadoop o Apache Spark. Se apoya en Google Compute Engine para la ejecución, pero nos abstrae de la complejidad de manejar el cluster, para que nos centremos en el desarrollo y ejecución de los jobs.

Dataflow

Es una herramienta diseñada para la definición de pipelines de ejecución de forma distribuida, muy útil en el caso de ETLs, procesamiento batch y procesamiento continuo o en streaming. Está basado en Apache Beam y los ejecutores internamente serán Apache Spark o Apache Flink.

Pub/Sub

Ofrece un servicio de cola de mensajes de alto rendimiento, esto nos permite desacoplar los diferentes componentes de nuestro sistema a través de un procesamiento asíncrono. Está diseñado para ofrecer bajas latencias y es capaz de procesar más de 1.000.000 de mensajes por segundo. Internamente Google usa esta pieza en multitud de sus aplicaciones, desde Google Ads a Gmail.

Datalab

Datalab es una herramienta basada en Jupyter, que nos permite disponer de una potente herramienta interactiva para explorar, analizar y visualizar datos. Podemos conectarlo fácilmente con BigQuery o Cloud Storage. Con Datalab podemos combinar código, documentación, resultados y visualizaciones juntas en formato notebook.

Machine Learning

Google nos ofrece un servicio gestionado de Machine Learning, basado en su biblioteca open source TensorFlow. Nos permite entrenar modelos y hacer predicciones de una manera muy sencilla y sin preocuparnos de los recursos computacionales necesarios para ello. Se integra de forma natural con Google Datalab.

Natural Language API

Esta herramienta de alto nivel nos ofrece un API REST a través de la cual disponemos de una herramienta muy potente de análisis de texto. Podemos extraer información y hacer análisis de sentimiento, clasificación de contenido o grafos de relaciones. Internamente Google utiliza tecnología basada en Deep Learning para ofrecer este servicio.

Azure

azure

SQL Data Warehouse

SQL data warehouse es la solución gestionada de Microsoft para tener un almacén de datos orientada a realizar analítica. Nos ofrece un interfaz SQL para realizar consultas sobre los datos. Se integra fácilmente con el resto de componentes de Azure, como Azure Active Directory para gestionar la seguridad. También se puede integrar con otras herramientas de BI como Tableau o Qlik e incluso con Microsoft Excel.

Data Lake Store

El Data Lake de Azure nos ofrece un servicio gestionado basado en Hadoop HDFS en la nube. Podremos almacenar datos estructurados o desestructurados en su formato original. Gracias a su naturaleza distribuida obtendremos un alto rendimiento para realizar procesos batch, o queries en real-time. Internamente gestiona la replicación, lo que nos garantiza la durabilidad de los datos.

Stream Analytics

Es el producto existente para análisis de streams de datos en tiempo real, haciendo uso de sencillos scripts en SQL. Combinado con Event Hub, se pueden generar históricos de ventas o alertas de monitorización de sistemas.

HDInsight

Un servicio de procesamiento distribuido basado en tecnología open source como Apache Spark o Apache Storm. Nos permite escalar la capacidad del cluster bajo demanda y así poder procesar TB o PB de información. Nos permite desarrollar nuestros jobs en .Net o Java.

Cognitive Services

Estos servicios engloban una serie de APIs de alto nivel que nos simplifican la aplicación de Inteligencia Artificial en nuestros sistemas. Tenemos servicios orientados al procesamiento del lenguaje, al habla, a la visión, a las búsquedas y al conocimiento.

Machine Learning

Microsoft ofrece un sistema interactivo tipo workflow para análisis en vivo con set completo de transformaciones de datos o vía API para ser utilizado por aplicaciones externas. Para usuarios no profesionales provee un sistema automático para la generación de modelos óptimos.

 

Conclusión

En resumen, podemos afirmar que los principales proveedores de tecnología cloud cada vez están incluyendo un abanico mayor de herramientas orientadas a Big Data, aunque sin duda todavía están lejos de plataformas completas Big Data como Stratio, Cloudera o Hortonworks que cubren todas las necesidades de principio a fin de un flujo completo de ingestión, almacenamiento y procesamiento Big Data.

Por otro lado, estas plataformas Big Data siempre nos dan la posibilidad de ejecutarse on premise o en cloud vía IaaS, algo que no nos ofrecen las herramientas cloud. Pero en cualquier caso, las herramientas en la nube son una buena solución en muchas ocasiones y nos ofrecen la posibilidad de solucionar problemas concretos a un coste ajustado y con un “time to market” reducido.

Profesional que ha participado en la creación de productos digitales para diferentes sectores en diferentes sitios de Europa: desde el desarrollo de software para la optimización de estructuras aeronáuticas hasta proyectos de investigación sobre las interacciones neuronales en la corteza cerebral, trabajando en equipos multiculturales y multidisciplinares. Actualmente forma parte de Paradigma, dedicado a la definición técnica de productos en el sector de las telecomunicaciones.

Ver toda la actividad de Jaime Fernández Martín

Manuel Zaforas es Ingeniero Superior en Informática por la UPM. Está interesado en HPC, IoT, Cloud, NoSQL, Big Data, Data Science, Machine Learning y Agile. Apoya activamente la implantación de software libre, la calidad en los procesos de desarrollo de software a través de la mejora continua y la innovación en las metodologías de desarrollo y gestión de equipos. Actualmente trabaja en Paradigma como Scrum Master y Arquitecto Software.

Ver toda la actividad de Manuel Zaforas

Escribe un comentario