Está en la página 1de 43

Big Data y Analytics

Óscar García

Ingeniería de Procesado de Datos


Objetivos
► Comprender las motivaciones que nos llevan a necesitar el uso de las
tecnologías big data en el contexto actual de IoT e Industria 4.0.

► Conocer algunos de los frameworks más importantes para el procesamiento


de datos masivos dentro del ecosistema Apache Hadoop, incluyendo HDFS y
Apache Spark.

► Entender el funcionamiento básico del paradigma de programación


MapReduce en el proceso de datos de forma distribuida.

► Presentar algunos escenarios reales de Industria 4.0 e IoT donde las


anteriores tecnologías han sido aplicadas.

Big Data y Analytics – Óscar García 2


Introducción
► Inmensa cantidad de datos que inunda la web – Estimaciones IBM
– 294,000 millones de emails diarios.
– Facebook: 100 terabytes de datos diariamente.
– Se generan 5 exabytes (millones de terabytes) cada dos días.
– Existen en el universo digital 2.7 zettabytes (miles de millones de
terabytes) de datos.
► Múltiples y nuevos sistemas que generan datos: Redes Sociales, IoT,
Sistemas de Información, Robótica…
► Mejora de la interacción ente humanos y máquinas.
► Origen de datos:
– Interacción entre humanos
– Interacción humano máquina
– M2M – Machine to Machine

Big Data y Analytics – Óscar García 3


Introducción

$581 billones de gasto en TIC en 2021 1M dispositivos por km2


$123 en IoT

41.600.000.000 79,4 ZB 10k dispositivos por km2


Dispositivos en 2025 Información generada en 2025
(79.400.000.000.000 GB)

Iconos de Freepik: www.flaticon.com

Big Data y Analytics – Óscar García 4


Introducción
► Día tras día: Más personas y dispositivos conectados.

► Desafíos que afronta la Ingeniería de Procesado de Datos


– Recopilación
– Almacenamiento
– Indexación - Clasificación
– Procesamiento
– Búsqueda
– Análisis
– Presentación

Big Data y Analytics – Óscar García 5


Hadoop

► Proyecto de software libre - https://hadoop.apache.org/


► Licencia Apache
► Framework para la gestión y persistencia de datos distribuidos.
► ¿Cómo se relacionan Hadoop y Big Data?
– Big data es el término clave - Hadoop es un framework de tecnología específico.
– Hadoop es la puerta de entrada a trabajar con grandes cantidades de datos en
entornos distribuidos – Big Data.
– Supera las limitaciones de los sistemas de bases de datos relacionales (RDBMS)
para procesar grandes datos.
► ¿Qué no es Hadoop?
– Hadoop es un framework para procesar grandes cantidades de datos (Big Data),
pero no es Big Data aunque se utilicen los términos de forma indistinta.
– Hadoop no es un sistema operativo.
– Hadoop no es una aplicación software.
► Distribuido | Escalable | Tolerante a fallos | Open Source

Fuente de la imagen del logo: http://hadoop.apache.org

Big Data y Analytics – Óscar García 6


Hadoop
► Provee servicios y métodos para almacenar, acceder y administrar datos que son
almacenados en una infraestructura de tipo clúster.
► Cómo framework de trabajo: ¿Qué módulos forman Hadoop?
– Hadoop Common: Utilidades que soportan el resto de módulos de Hadoop.
– Hadoop Distributed File System (HDFS™): Sistema de archivos distribuido de alto
rendimiento de datos. Provee acceso a los datos. Hadoop también puede trabajar
con otros sistemas de ficheros como S3 de Amazon, Windows Azure Storage Blobs
(WASB), FTP u otros.
– Hadoop YARN: Entorno para programación de trabajos y gestión de recursos del
cluster.
– Hadoop MapReduce: Sistema basado en YARN para procesado masivo de datos
en paralelo.
– Hadoop Ozone: Almacén de objetos semánticos (usa Hadoop Distributed Data
Storage (HDDS)).
► Aplicaciones que utilizan Hadoop: https://wiki.apache.org/hadoop/PoweredBy:
– Adobe
– LinkedIn
– Spotify

Big Data y Analytics – Óscar García 7


Hadoop

► ¿Cómo se relaciona Hadoop con otras tecnologías Big Data?


– Ambari™: Herramienta web para aprovisionamiento, gestión y monitorización de clusters
Hadoop. Soporta HDFS, MapReduce, Hive, HCatalog, HBase, ZooKeeper, Oozie, Pig y Sqoop.
– Avro™: Sistema de serialización de datos – Ficheros Big Data.
– Cassandra™: Sistema de base de datos NoSQL escalable, de alto rendimiento.
– Chukwa™: Sistema de recogida de datos para grandes sistemas distribuidos.
– HBase™: Base de datos NoQSL escalable y distribuida basada en Google Big Table y que
funciona sobre HDFS. Admite almacenamiento de datos estructurados para tablas grandes.
– Hive™: Infraestructura de almacenamiento de datos que provee resúmenes de datos y consultas
ad-hoc.
– Mahout™: Librería de Machine Learning y Data Mining.
– Pig™: Lenguaje de alto nivel para el flujo de datos y la ejecución de operaciones en paralelo.
– Spark™: Motor de computación para datos Hadoop. Facilita las operaciones a través de un
modelo de programación fácil y expresivo que permite desplegar aplicaciones ETL (Extract +
Transform + Load), Machine Learning, procesamiento de flujo y gráficos.
– ZooKeeper™: Servicio de coordinación de alto rendimiento para aplicaciones distribuidas.

Big Data y Analytics – Óscar García 8


Ecosistema Hadoop

Fuente de la imagen: https://techvidvan.com/tutorials/hadoop-ecosystem-tutorial/

Big Data y Analytics – Óscar García 9


Ecosistema Hadoop

Fuente de la imagen: https://subscription.packtpub.com/book/big_data_and_business_intelligence/9781783553396/1/ch01lvl1sec08/apache-hadoop-s-ecosystem

Big Data y Analytics – Óscar García 10


Hadoop

► Ejemplos de aplicación de Hadoop:


– Gestión de clientes: Usado en aplicaciones de diverso tamaño para analizar datos
estructurados y desestructurados con el fin de entender mejor el comportamiento de
los clientes.
– Entornos Industriales: Mantenimiento predictivo, recogida de datos en entornos IoT
que alimentan sistemas Big Data, gestión de activos, etc.
– Servicios financieros: Evaluación de riesgos, creación de modelos de inversión,
creación de algoritmos de negociación, etc.
– Servicios públicos: Cálculos estadísticos varios: pandemias, niveles de
criminalidad, investigaciones fiscales, etc.
– Empresas de telecomunicaciones: Mantenimientos predictivos de infraestructura,
mejora en el enrutamiento de datos, mejoras en la instalación física, mejora de las
operaciones relacionadas con los clientes, etc.
– Sistemas de contabilidad: Detección/Predicción de pagos e impagos, gestión de
múltiples puntos de análisis de precios, etc.

Big Data y Analytics – Óscar García 11


HDFS

► Hadoop Distributed File System – Sistema de ficheros distribuido.


► Es parte del proyecto Apache Hadoop.
► Altamente tolerante a fallos.
► Puede implementarse en hardware de bajo coste.
► Proporciona acceso de alto rendimiento a los datos de la aplicación.
► Proporciona procesamiento de datos desestructurados.
► Es adecuado para aplicaciones que tienen grandes conjuntos de datos.
► HDFS se creó originalmente como infraestructura para el proyecto del
motor de búsqueda web Apache Nutch.

Fuente de la imagen del logo: https://blogs.mulesoft.com/dev/anypoint-platform-dev/open-for-big-data-when-mule-meets-the-elephant/attachment/hdfs-logo-square/

Big Data y Analytics – Óscar García 12


HDFS

► Características principales:
– Similares a las de otros sistemas de archivos distribuidos.
– Procesamiento cerca de los datos en lugar de mover los datos a la aplicación.
– Sólo una escritura a la vez en los datos.
– Almacenamiento de flujo de datos en el orden escrito.
– Tolerancia a fallos: detección y recuperación rápida y automática.
– Acceso a datos a través de MapReduce.
– Modelo de coherencia simple y robusto.
– Portabilidad a través de hardware y sistemas operativos heterogéneos.
– Escalabilidad para almacenar y procesar de manera fiable grandes cantidades de
datos.
– Procesamiento en clústeres de hardware de bajo coste.
– Distribución de datos lógica para procesarlos en paralelo en los nodos de ubicación.
– Backup y redistribución del procesamiento de los datos.

Fuente de la imagen del logo: https://blogs.mulesoft.com/dev/anypoint-platform-dev/open-for-big-data-when-mule-meets-the-elephant/attachment/hdfs-logo-square/

Big Data y Analytics – Óscar García 13


HDFS - Arquitectura

► Dos componentes básicos: NameNodes y DataNodes


► NameNodes:
– Nodos maestros – Nodos de gestión – Son SPOF.
– Están interconectados entre sí – Federación HDFS – Alta disponibilidad.
– Administra el espacio de nombres del sistema de archivos y regula el acceso de los
clientes.
– Almacena los metadatos necesarios para el sistema de ficheros a partir de los datos
que almacenan los DataNodes. Almacena esta información en RAM.
– Gestiona cómo se almacenan los bloques.
► DataNodes:
– Nodos esclavos – Nodos de trabajo.
– Se despliegan en cada máquina y son los que almacenan los datos.
– Atienden las solicitudes de lectura y escritura de los clientes.
► Bloques:
– Unidad mínima de lectura y escritura (128 MB).
– Almacenamiento en diferentes máquinas: ficheros mayores que la capacidad +
lectura paralela.
Fuente de la imagen del logo: https://blogs.mulesoft.com/dev/anypoint-platform-dev/open-for-big-data-when-mule-meets-the-elephant/attachment/hdfs-logo-square/

Big Data y Analytics – Óscar García 14


HDFS - Arquitectura

Fuente: https://www.ibm.com/developerworks/library/wa-introhdfs/index.html

Fuente de la imagen del logo: https://blogs.mulesoft.com/dev/anypoint-platform-dev/open-for-big-data-when-mule-meets-the-elephant/attachment/hdfs-logo-square/

Big Data y Analytics – Óscar García 15


HDFS - Heartbeat

► Tolerancia a fallos – Heartbeat


– Si un DataNode deja de
estar disponible, el
NameNode lo detecta
mediante un proceso de
heartbeat y vuelve a
replicar los bloques perdidos
en otras máquinas que sí
estén disponibles.
– El nodo muerto es
eliminado del sistema y ya
no estará disponible para
ese NameNode.
– Factor de replicación: Si
este cae por debajo del
mínimo, el NameNode
Fuente: https://www.ibm.com/developerworks/library/wa-introhdfs/index.html
comienza un proceso de
replicación adicional hasta
alcanzar un nivel normal.
Fuente de la imagen del logo: https://blogs.mulesoft.com/dev/anypoint-platform-dev/open-for-big-data-when-mule-meets-the-elephant/attachment/hdfs-logo-square/

Big Data y Analytics – Óscar García 16


HDFS – Lectura

1. El cliente solicita al NameNode que le proporcione un fichero.


2. El NameNode consulta en la tabla de metadatos los bloques que componen el fichero y
su localización en el clúster.
3. El NameNode devuelve al cliente una lista de bloques, así como los equipos en los que
puede encontrar cada uno de ellos.
4. El cliente contacta con un equipo para obtener cada bloque.
5. El cliente compone el archivo.

Fuente de la imagen del logo: https://blogs.mulesoft.com/dev/anypoint-platform-dev/open-for-big-data-when-mule-meets-the-elephant/attachment/hdfs-logo-square/

Big Data y Analytics – Óscar García 17


HDFS – Escritura
1. El cliente solicita al NameNode realizar una escritura de un archivo.
2. NameNode: comprueba que se puede escribir el fichero y que el cliente tiene permisos para hacerlo.
3. El cliente particiona el fichero en bloques, que escribirá de forma secuencial. Para cada bloque, el
NameNode le proporciona una lista de DataNodes en los que se escribirá.
4. El cliente contacta con el primer DataNode para pedirle que escriba el bloque. Este DataNode se
encargará de propagar el bloque al segundo, etc.
5. El último DataNode en escribir el bloque devolverá una confirmación (ACK) hacia atrás, hasta que el
primer DataNode mandará la confirmación al cliente.

6. Una vez que el cliente ha


escrito todos los bloques,
manda una confirmación al
NameNode de que el
proceso se ha completado.

Fuente de la imagen del logo: https://blogs.mulesoft.com/dev/anypoint-platform-dev/open-for-big-data-when-mule-meets-the-elephant/attachment/hdfs-logo-square/

Big Data y Analytics – Óscar García 18


HDFS – Escritura

► ¿Cómo guardan la información los NameNodes?


– Imagen del sistema de ficheros (FS): Imagen del NameNode
cuando éste es iniciado.
– Edit Logs: Secuencia de cambios hechos en el sistema de
ficheros después de que el NameNode se haya iniciado.
► El reinicio de los nodos es algo que no ocurre con frecuencia.
► Edit Logs muy grandes – Muchos datos a fusionarse.
► Mucho tiempo para actualizarla imagen FS → Bloqueo → SPOF!
► Nodos secundarios

Fuente de la imagen del logo: https://blogs.mulesoft.com/dev/anypoint-platform-dev/open-for-big-data-when-mule-meets-the-elephant/attachment/hdfs-logo-square/

Big Data y Analytics – Óscar García 19


HDFS – Escritura

Solicitud de los Edit Logs


NameNode en intervalos regulares
NameNode
Secundario

Actualiza la imagen FS
con los Edit Logs

Imagen FS Imagen FS
Actualiza la imagen FS
en el NameNode

Fuente de la imagen del logo: https://blogs.mulesoft.com/dev/anypoint-platform-dev/open-for-big-data-when-mule-meets-the-elephant/attachment/hdfs-logo-square/

Big Data y Analytics – Óscar García 20


HDFS - Monitorización

Dashboard de Ambari

Fuente de la imagen del logo: https://blogs.mulesoft.com/dev/anypoint-platform-dev/open-for-big-data-when-mule-meets-the-elephant/attachment/hdfs-logo-square/

Big Data y Analytics – Óscar García 21


MapReduce

► Necesidad de Google de procesar grandes cantidades de datos.


► Paso natural tras GFS para procesar datos de manera eficiente en
paralelo.
► Dos rutinas
– map()
Toma un conjunto de datos y los convierte en otro en el que los elementos
individuales se dividen en tuplas (pares clave-valor).
– reduce()
Toma la salida de map() como una entrada y combina esas tuplas de
datos (pares clave-valor) en un conjunto más pequeño de tuplas.
► Todos los tipos de datos, ya sean estructurados o no estructurados, deben
convertirse a esta unidad básica (tupla) antes de enviar los datos al modelo
MapReduce.

Fuente de la imagen del logo: https://medium.com/@tejasghalsasi/hadoop-101-getting-started-5d27e7210bb7

Big Data y Analytics – Óscar García 22


MapReduce

► Entrada de datos: el Record Reader traduce cada registro en un archivo de entrada y


envía los datos parseados al Mapper en forma de pares clave-valor.
► map(): función definida por el usuario que toma una serie de pares clave-valor y procesa
cada uno de ellos para generar cero o más pares clave-valor.
► Claves intermedias: los pares clave-valor generados por el Mapper se conocen como
claves intermedias.
► Combiner: Opcional. Un Combiner es un tipo de reductor local que agrupa datos
similares de la fase map() en conjuntos identificables. Toma las claves intermedias del
Mapper como entrada y aplica un código definido por el usuario para agregar los valores
en un pequeño ámbito de un Mapper.

Fuente de la imagen del logo: https://medium.com/@tejasghalsasi/hadoop-101-getting-started-5d27e7210bb7

Big Data y Analytics – Óscar García 23


MapReduce

► Orden aleatorio y ordenado: la tarea del Reducer comienza con el paso Shuffle and
Step. Se descargan los pares de clave-valor agrupados en la máquina local en la que se
está ejecutando el Reducer. Los pares clave-valor individuales se ordenan por clave en
una lista de datos más grande. La lista de datos agrupa las claves equivalentes para que
sus valores puedan ser iterados fácilmente en la tarea del Reducer.
► reduce(): el Reducer toma los datos agrupados de clave-valor agrupados como entrada
y ejecuta una función reduce() a cada uno de ellos. En esta fase los datos se pueden
agregar, filtrar y combinar de varias formas. Una vez que finaliza la ejecución, la salida
proporcionará cero o más pares clave-valor a la fase de salida.
► Fase de salida: en la fase de salida se traducen los pares clave-valor de la función
reduce() y se escriben en un fichero.

Fuente de la imagen del logo: https://medium.com/@tejasghalsasi/hadoop-101-getting-started-5d27e7210bb7

Big Data y Analytics – Óscar García 24


MapReduce

Fuente: https://www.oreilly.com/library/view/distributed-computing-in/9781787126992/5fef6ce5-20d7-4d7c-93eb-7e669d48c2b4.xhtml

Fuente de la imagen del logo: https://medium.com/@tejasghalsasi/hadoop-101-getting-started-5d27e7210bb7

Big Data y Analytics – Óscar García 25


Apache Spark

► Framework específico para el procesamiento de datos masivos:


– Facilidad de uso
– Rapidez – En memoria
– Analítica avanzada
► Permite ejecutar trabajos en tiempo real y por lotes
► Mantiene las abstracciones HDFS y MapReduce mejorando
deficiencias existentes: 10-100 veces más rápido
► Ventajas sobre Hadoop:
– Más rápido.
– Las transformaciones y acciones sobre los datos son más sencillas.
– Componentes integrados en el propio sistema.

Fuente de la imagen del logo: https://spark.apache.org/

Big Data y Analytics – Óscar García 26


Apache Spark

► Puede trabajar con su propio sistema de gestión del clúster o con otros (YARN,
Kubernetes).
► Acepta múltiples sistemas de ficheros distribuidos: HDFS, MapR-FS, Amazon S3,
Cassandra, etc.
► Es compatible con un conjunto muy amplia de librerías, APIs, aplicaciones, etc.

Fuente de la imagen del logo: https://spark.apache.org/


Fuente de la imagen: https://towardsdatascience.com/apache-spark-101-3f961c89b8c5

Big Data y Analytics – Óscar García 27


Apache Spark

► Spark está basado en una arquitectura maestro-esclavo:


– Driver:
• Coordina el trabajo distribuido de los executors.
• Divide el trabajo y lo planifica en tareas que serán llevadas a cabo por los
executors en los nodos de trabajo.
• El Clúster Manager gestiona la ubicación de las tareas.
– Executors
• Proceso lanzado para una aplicación en un nodo de trabajo
• Cada aplicación tiene sus propios ejecutores.
• Ejecutan las tareas. Mantiene los datos en memoria o almacenamiento en disco
• Arrancan y apagan en cada tarea – Escritura en memoria.
► Comunicación:
– Broadcast: El driver transmite los datos necesarios a cada executor. Para conjuntos
de datos mayores de un millón de registros (1GB).
– Take action: El driver recoge datos de cada executor. ¡Peligrosa!
– DAG (Directed Acyclic Graph): Utiliza lógica de control de flujo.

Fuente de la imagen del logo: https://spark.apache.org/

Big Data y Analytics – Óscar García 28


Apache Spark

Fuente de la imagen del logo: https://spark.apache.org/


Fuente de la imagen: https://spark.apache.org/docs/latest/cluster-overview.html

Big Data y Analytics – Óscar García 29


Apache Spark

► DAG (Directed Acyclic Graph)


– Confía en plataformas de scripting: HIVE o PIG.
– Spark administra de forma activa DAG lo que permite optimizar los flujos de trabajo
para un rendimiento óptimo.
– Facilita tareas de redundancia y retroceso (rollback).
– Permite las funciones de reversión y redundancia de trabajos.
► RDD (Resilient Distributed Datasets)
– Conjuntos de datos esenciales (en memoria) que no pueden modificarse.
– Se crea uno cada vez que se realiza una transformación – Redundancia.
– No tienen un esquema – DataFrames para datos relacionales.

Etapa 1 Etapa 2 Etapa 3 Etapa 4

• Paralelizar • Filtrado • Paralelizar • Agrupar


• Filtrado por clave • Filtrar por clave
• Mapeo • Mapeo • Mapear • Join
• Reducción
por clave
Fuente de la imagen del logo: https://spark.apache.org/

Big Data y Analytics – Óscar García 30


Apache Spark
Operaciones iterativas

Hadoop

Spark

Fuente de la imagen del logo: https://spark.apache.org/


Fuente de la imagen: https://www.tutorialspoint.com/apache_spark/apache_spark_rdd.htm#:~:text=Formally%2C%20an%20RDD%20is%20a,be%20operated%20on%20in%20parallel .

Big Data y Analytics – Óscar García 31


Apache Spark
Operaciones interactivas

Hadoop

Spark

Fuente de la imagen del logo: https://spark.apache.org/


Fuente de la imagen: https://www.tutorialspoint.com/apache_spark/apache_spark_rdd.htm#:~:text=Formally%2C%20an%20RDD%20is%20a,be%20operated%20on%20in%20parallel .

Big Data y Analytics – Óscar García 32


Apache Spark

Fuente de la imagen del logo: https://spark.apache.org/


Fuente de la imagen: https://d2h0cx97tjks2p.cloudfront.net/blogs/wp-content/uploads/sites/2/2017/06/internals-of-job-execution-in-apache-spark.jpg

Big Data y Analytics – Óscar García 33


Apache Spark - Ecosistema

► Spark Core – Procesamiento por lotes


– Núcleo de Spark.
– Principal abstracción del RDD.
– Múltiples operaciones que se pueden realizar sobre los datos para procesar lotes.
► Spark Streaming – Procesamiento en tiempo real
– Micro-batching: Procesamiento de conjuntos de datos muy pequeños.
– El procesamiento se hace sobre el flujo de datos en función a una serie de tareas.
– Evita cuellos de botella, balancea mejor la carga, reduce el tiempo de recuperación
ante fallos, etc.

Fuente: https://databricks.com/blog/2015/07/30/diving-into-apache-spark-streamings-execution-model.html Fuente de la imagen del logo: https://spark.apache.org/

Big Data y Analytics – Óscar García 34


Apache Spark - Ecosistema

► Spark Core – Procesamiento por lotes


– Núcleo de Spark.
– Principal abstracción del RDD.
– Múltiples operaciones que se pueden realizar sobre los datos para procesar lotes.
► Spark Streaming – Procesamiento en tiempo real
– Micro-batching: Procesamiento de conjuntos de datos muy pequeños.
– El procesamiento se hace sobre el flujo de datos en función a una serie de tareas.
– Evita cuellos de botella, balancea mejor la carga, reduce el tiempo de recuperación
ante fallos, etc.

Fuente: https://databricks.com/blog/2015/07/30/diving-into-apache-spark-streamings-execution-model.html Fuente de la imagen del logo: https://spark.apache.org/

Big Data y Analytics – Óscar García 35


Apache Spark - Ecosistema

► Spark SQL – Consultas analíticas


– Módulo de Spark para trabajar con datos estructurados mediante consultas SQL.

► Spark Mlib – Aprendizaje Automático


– Librería para ejecutar trabajos de Aprendizaje Automático.
– Permite aprenden modelos para realizar clasificaciones o regresiones.
– Permite la construcción de sistemas de recomendación.

► Spark GraphX – Análisis de Grafos


– Librería de Spark para realizar operaciones sobre grafos (redes de datos)
– Trabaja de forma distribuida.

Fuente de la imagen del logo: https://spark.apache.org/

Big Data y Analytics – Óscar García 36


Procesado de Datos en Industria 4.0 e IoT

► Logística
► Procesado de datos energéticos
► Business Intelligence
► Sistemas de localización
► Gestión de almacén robotizado
► Agricultura
► Detección de fallos en entornos de trabajo

Big Data y Analytics – Óscar García 37


Procesado de Datos en Industria 4.0 e IoT

Fuente: https://www.kai-waehner.de/blog/2020/09/17/apache-kafka-manufacturing-industry-4-0-rami-iot-iiot-automation-use-cases/

Big Data y Analytics – Óscar García 38


Procesado de Datos en Industria 4.0 e IoT

Fuente: https://community.cloudera.com/t5/Community-Articles/Edge-to-AI-IoT-Sensors-and-Images-Streaming-Ingest-and/ta-p/249474/

Big Data y Analytics – Óscar García 39


Procesado de Datos en Industria 4.0 e IoT

Fuente: https://community.cloudera.com/t5/Community-Articles/IoT-Edge-Use-Cases-with-Apache-Kafka-and-Apache-NiFi-MiniFi/ta-p/249232

Big Data y Analytics – Óscar García 40


Procesado de Datos en Industria 4.0 e IoT

Fuente: https://community.cloudera.com/t5/Community-Articles/IoT-Edge-Use-Cases-with-Apache-Kafka-and-Apache-NiFi-MiniFi/ta-p/249232

Big Data y Analytics – Óscar García 41


Gracias por vuestra atención
¿Dudas?

Imagen por Peggy und Marco Lachmann-Anke


Licencia: Creative Commons Zero

Big Data y Analytics – Óscar García 42


www.unir.net

También podría gustarte