Está en la página 1de 23

Universidad ORT Uruguay

Facultad de Ingeniería
Bernard Wand Polak

Obligatorio - Herramientas de
software para Big Data
Diciembre - 2023

Integrantes:

Ramiro Gallego N°- 135385


Cristian Palma N°- 208443
Índice

Contents
Arquitectura del DataLake ......................................................................................................... 3
Estudio del dataset .................................................................................................................... 5
Carga de datos........................................................................................................................... 6
Refinado de datos ...................................................................................................................... 9
Modelado de datos .................................................................................................................. 10
Consultas ................................................................................................................................. 13
Visualizaciones ........................................................................................................................ 14
Pandas.................................................................................................................................. 15
Superset ............................................................................................................................... 19
Arquitectura del DataLake

1- NiFi (Apache NiFi):

● NiFi (Apache NiFi) es una herramienta de código abierto desarrollada por la Apache
Software Foundation que se utiliza para la extracción, transformación y carga de datos
(ETL).
● Se utilizó para la ingestión y carga de datos desde diversas fuentes a Hadoop HDFS.
● Beneficios: Facilita el flujo de datos entre sistemas heterogéneos, asegurando la
transferencia segura y eficiente de datos.

2- Hadoop HDFS (Hadoop Distributed File System):

● Hadoop es un framework de software de código abierto que proporciona un entorno


para el procesamiento y almacenamiento distribuido de grandes volúmenes de datos.
● Es el sistema de archivos distribuido que almacena grandes cantidades de datos.
● Beneficios: Proporciona almacenamiento escalable y tolerancia a fallos para grandes
conjuntos de datos.

3- Spark (Apache Spark):

● Spark es una plataforma de procesamiento de datos distribuida que proporciona una


API para trabajar con DataFrames y realizar operaciones de transformación y
manipulación en datos a gran escala.
● Se utilizó para el refinamiento y modelado de datos.
● Beneficios: Permite el procesamiento distribuido de datos a gran escala, facilitando
operaciones complejas como transformaciones y análisis.

4- Hive (Apache Hive):

● Hive es la aplicación que permite leer los datos almacenados en Hadoop y ejecutar
un MapReduce a través de una consulta con una sintaxis similar a SQL.
● Se empleó para crear tablas externas y realizar consultas en un formato similar a SQL.
● Beneficios: Simplifica el acceso y análisis de datos almacenados en HDFS,
proporcionando una interfaz SQL-like para consultas.
5- Superset (Apache Superset):

● Superset se utiliza para la creación y exploración de visualizaciones de datos


interactivas y dashboards. Superset es parte del proyecto Apache y se conoce como
Apache Superset.
● Herramienta de visualización de datos conectada directamente a las tablas de Hive.
● Beneficios: Proporciona una interfaz amigable para la creación de paneles interactivos
y dashboards, permitiendo la exploración visual de datos.

Beneficios generales del enfoque:

● Escalabilidad: La arquitectura es escalable, permitiendo manejar grandes volúmenes


de datos.
● Flexibilidad: El uso de herramientas diversas permite adaptarse a diferentes
necesidades y casos de uso.
● Procesamiento Distribuido: El uso de Spark y Hadoop permite aprovechar la
capacidad de procesamiento distribuido para tareas de big data.
● Interoperabilidad: La combinación de herramientas ofrece interoperabilidad entre
diferentes componentes del ecosistema de big data.

Flujo General de Proceso:

● Ingestión: NiFi facilita la ingestión de datos desde diversas fuentes.


● Almacenamiento: Hadoop HDFS almacena los datos de manera distribuida.
● Refinamiento y Modelado: Spark procesa y refina los datos, generando modelos
normalizados.
● Creación de Tablas Externas: Hive crea tablas externas para facilitar el acceso a los
datos refinados.
● Consulta y Transformación: Spark utiliza las tablas externas para responder consultas
y realizar transformaciones adicionales.
● Visualización: Pandas y herramientas de visualización como Superset permiten
explorar y presentar los resultados.

Para la realización del trabajo hemos elegido un dataset llamado Famous Paintings
(https://www.kaggle.com/datasets/mexwell/famous-paintings/data?select=artist.csv)
El cual consta de 7 tablas (artist, canvas_size, image_link, museum, museum_hours,
product_size, subject, work). El dataset contiene datos de pinturas, sus artistas, su tamaño y
el museo donde se exhiben.
Estudio del dataset

ARTISTAS

• artist_id: Identificación única del artista.


• full_name: Nombre completo del artista.
• first_name: Primer nombre del artista.
• middle_names: Nombres intermedios del artista.
• last_name: Apellido del artista.
• nationality: Nacionalidad del artista.
• style: Estilo artístico del artista.
• birth: Fecha de nacimiento del artista.
• death: Fecha de fallecimiento del artista.

MUSEOS

• museum_id: Identificación única del museo.


• name: Nombre del museo.
• address: Dirección del museo.
• city: Ciudad donde se encuentra el museo.
• state: Estado o provincia donde se encuentra el museo.
• postal: Código postal del museo.
• country: País donde se encuentra el museo.
• phone: Número de teléfono del museo.
• url: URL o enlace del museo.

TAMAÑO DE LIENZO

• size_id: Identificación única del tamaño de lienzo.


• width: Ancho del lienzo.
• height: Altura del lienzo.
• label: Etiqueta o descripción del tamaño de lienzo.
• HORARIO DEL MUSEO
• museum_id: Identificación única del museo.
• day: Día de la semana.
• open: Hora de apertura del museo.
• close: Hora de cierre del museo.

TAMAÑO DE OBRA

• work_id: Identificación única de la obra.


• size_id: Identificación del tamaño de la obra.
• sale_price: Precio de venta de la obra.
• regular_price: Precio regular de la obra.
CATEGORÍA

• work_id: Identificación única de la obra.


• subject: Tema o categoría de la obra.

OBRA

• work_id: Identificación única de la obra.


• name: Nombre de la obra.
• artist_id: Identificación del artista de la obra.
• style: Estilo artístico de la obra.
• museum_id: Identificación del museo donde se encuentra la obra.

Carga de datos

Creamos una estructura para guardar los datos en HDFS

Mediante Filezilla cargamos las tablas que utilizaremos en la VM para poder transformarlas
con Nifi
A través de Nifi generamos un flujo que hará un Get de todos los archivos .csv en el origen,
luego actualiza el atributo “filename” para mantener el nombre original, y finalmente se
guardaran como Hdfs en la ubicación “datos_crudos”
Verificamos la correcta creación de los archivos.

Refinado de datos

El próximo paso será el refinado de datos con spark, para ello crearemos un notebook en
jupyter y crearemos dataframes a partir de los datos crudos.

• Se estudió que no existan duplicados y en caso de existir la acción a tomar fue


eliminar los duplicados.
• Se analizó que los tipos de datos fueran correctos.
• Se realizó estudio de valores nulos.
• Se podrá ver el análisis detallado realizado en el notebook adjunto.
• Una vez refinados, los guardaremos para luego modelar.
Modelado de datos

El próximo paso será el modelado con spark, para ello volveremos a cargar dataframes a
partir de los datos refinados previamente.

• Los dataframes, ya tienen su forma normalizada desde el origen.

Modelo original:
• Adecuamos los tipos de datos

• Una vez finalizado el modelado guardaremos cada tabla en una locación diferente
para poder cargar tablas en hive.

El modelo final de los datos quedó de la siguiente forma:


Ahora utilizaremos la herramienta hive, crearemos una base de datos y cargaremos los
modelos de datos en tablas.

Desde las ubicaciones que definimos en el paso anterior, crearemos las tablas y a la vez
haremos el load de datos:
repetimos esto con el resto de las tablas.

Consultas

A partir de las tablas de Hive se contestarán las preguntas seleccionadas en un nuevo


notebook ya que Hive traduce las consultas SQL en tareas de MapReduce que se ejecutan
en el clúster de Hadoop.

Procederemos a crear un nuevo notebook de jupyter para responder las preguntas


formuladas, en nuestro caso hemos elegido las siguientes:

1- Análisis de la Distribución Geográfica de los Artistas y Museos:


Explora la distribución geográfica de los artistas y museos, identificando los países con la
mayor concentración de artistas y museos.

2- Segmentación de Obras por Tamaño y Estilo Artístico:


Realiza un análisis de segmentación para clasificar las obras de arte según su tamaño y estilo
artístico, identificando patrones en la creación artística.

3- Exploración de Temas Populares en Museos de Diferentes Países:


¿Cuáles son los temas más populares representados en las obras de arte exhibidas en
museos de diferentes países? Proporciona una lista de temas y su frecuencia en museos de
distintos lugares.

4- Análisis de la Longevidad Artística por Nacionalidad:


Examina la longevidad artística de artistas según su nacionalidad, proporcionando
información sobre la cantidad de artistas, su nacionalidad y la duración promedio de sus
carreras.

5- Análisis de la Relación entre el Tamaño de las Obras y su Precio:


¿Existe una correlación entre el tamaño físico de las obras de arte y su precio de venta?
Visualizaciones
Crearemos una sesión de spark habilitando el soporte de hive:

Luego crearemos vistas a partir de las tablas en hive

Ahora podremos realizar las consultas en lenguaje SQL sobre las vistas creadas
ejemplo:

Una vez realizadas las consultas, guardaremos las tablas resultados:


Pandas
1- Análisis de la Distribución Geográfica de los Artistas y Museos:

a) La mayor cantidad de artistas tienen nacionalidad francesa


b) La mayor cantidad de museos es en Estados Unidos
c) Coincide que los tops 4 en ambas son los mismos países (Francia, USA, Holanda,
UK)
2- Segmentación de Obras por Tamaño y Estilo Artístico:

a) No encontramos una relación directa entre ambas variables.


3- Exploración de Temas Populares en Museos de Diferentes Países:

a) En la gráfica podemos ver los temas más populares representados en las obras de
arte exhibidas en museos de diferentes países.
b) Los temas con más obras son Portraits, Marine Art/Maritime, Still-life y Nude.

4- Análisis de la Longevidad Artística por Nacionalidad

a) En la gráfica anterior se muestra la longevidad de artistas según su nacionalidad, y


se proporciona información sobre la cantidad de artistas, su nacionalidad y la
duración promedio de su vida en promedio.
5- Análisis de la Relación entre el Tamaño de las Obras y su Precio

a) Existe una correlación entre el tamaño físico de las obras de arte y el promedio de
precio de venta.
Superset

Para la utilización de superset hemos escogido crear una nueva base de datos en hive y
crear una tabla por cada resultado de las consultas del paso anterior

Al crear las tablas también le haremos un load:

Desde superset generamos la conexión con nuestro Apache Hive:


Agregaremos Datasets a partir de las tablas que creamos:

Ahora generamos charts a partir de estos datasets:

Debemos decidir cuáles serán las dimensiones y que métrica estaremos analizando para
generar visualizaciones que puedan transmitir en forma correcta los resultados.
1- Análisis de la Distribución Geográfica de los Artistas y Museos:

a) Podemos observar que la mayor concentración de artistas se da en Francia, seguido


por Rusia (colores más oscuros).

2- Segmentación de Obras por Tamaño y Estilo Artístico:

a) No observamos una relación correlativa entre tamaño y estilo artístico, vemos que un
tipo de estilo como el impresionismo tiene más relevancia que los otros en todos los
tamaños.
3- Exploración de Temas Populares en Museos de Diferentes Países:

a) Vemos que, de la cantidad de obras exhibidas en museos, aproximadamente la mitad


se encuentran en museos estadounidenses, en ese país los retratos es el estilo más
abundante, mientras que, en Reino Unido, el estilo más común son los relacionados
al mar.

4- Análisis de la Longevidad Artística por Nacionalidad

a) Vemos que los noruegos tienen un promedio de vida 15 años mayor que el resto de
nacionalidades aproximadamente.
5- Análisis de la Relación entre el Tamaño de las Obras y su Precio

a) El área de los círculos representa el área de las obras, y el eje de las ordenadas es el
precio de venta, vemos que los círculos más grandes se ubican más arriba en la tabla
lo que indica que existe una relación entre el tamaño y el precio.

Una vez generamos chart para cada pregunta, creamos un dashboard y las incluimos:

También podría gustarte