Está en la página 1de 15

BIG DATA & ANALYTICS

Actividad 1: Cloud Computing, bases de datos en la nube y ETL

Lander Bonilla Viana

Alejandro Cruz Suárez

Anton Agueda Oyarzabal

Manuel Ribes Escámez

Jaime Villarejo Crespo


Pregunta 1. ¿Qué diferencias existe entre BigQuery y una base de datos MySQL? ¿Y en el
caso de BigQuery y MongoDB Atlas?

MySQL es un sistema de gestión de bases de datos relacionales. En una base de datos


relacional los valores se almacenan en tablas, de las cuales las columnas son los diferentes
campos y las filas los diferentes registros de datos, cualquier operación que se haga en estas
bases de datos dará como resultado una nueva tabla. Estas bases de datos se utilizan para
almacenar y recuperar datos de manera rápida y eficiente, aunque la cantidad de datos a
almacenar es limitada. Por otro lado, BigQuery es una base de datos en la nube de Google
que se utiliza para almacenar y analizar grandes cantidades de datos en tiempo real.

En cuanto a la diferencia entre BigQuery y MongoDB Atlas, MongoDB Atlas es una base de
datos en la nube que utiliza el modelo de datos NoSQL. Esto significa que los datos se
almacenan en documentos en lugar de en tablas como en una base de datos relacional como
MySQL. La diferencia con BigQuery es que esta se utiliza principalmente para el análisis de
datos en grandes volúmenes y a gran escala, mientras que MongoDB Atlas se utiliza para
aplicaciones que requieren flexibilidad en el modelado de datos y un rendimiento escalable.

Pregunta 2. ¿Qué diferencias existen entre Cloud Storage y BigQuery?

Cloud Storage es un servicio de almacenamiento en la nube que se utiliza para almacenar


archivos como imágenes, videos, audio y otros datos no estructurados. Por otro lado,
BigQuery es una base de datos en la nube que se utiliza para almacenar y analizar grandes
cantidades de datos en tiempo real.

En general, Cloud Storage se utiliza para almacenar y acceder a archivos desde cualquier lugar,
mientras que BigQuery se utiliza principalmente para el análisis de datos a gran escala. Otra
diferencia importante es que Cloud Storage es un servicio de almacenamiento, mientras que
BigQuery es una base de datos, lo que significa que los datos almacenados en BigQuery están
estructurados y se pueden consultar mediante consultas SQL.
Pregunta 3. ¿Cómo se relacionan entre sí las tablas artist y artist_credit_name en el modelo
de datos? ¿En qué te basas a nivel técnico para argumentar tu respuesta? ¿Qué significan
los modos REQUIRED y NULLABLE en los esquemas de las tablas?

Un campo requerido artist_credit_name es la tabla artist.

Nos hemos basado en la relación de uno a muchos (1-N). Esta se establece entre dos tablas
cuando un registro en una tabla se puede relacionar con varios registros en la otra tabla. Por
ejemplo, en esta base de datos, se puede tener una tabla de canciones y una tabla de autores.
Cada canción puede tener uno o más autores, por lo que existe una relación de uno a muchos
entre la tabla de canciones y la tabla de autores.

Una columna en modo Requiered no puede contener valores nulos. Por otro lado, una
columna en modo Nullable puede contener valores nulos. Esto se usa para garantizar la
integridad de datos en la tabla y que cumpla restricciones impuestas en el esquema.

Pregunta 4. ¿Cómo puedes realizar una consulta de la nueva tabla creada en la que se
muestren las 100 primeras entradas?

Para realizar una consulta de la nueva tabla creada y mostrar las 100 primeras entradas,
primero debes seleccionar la tabla en la que deseas realizar la consulta. Luego, puedes
utilizar la siguiente consulta SQL para seleccionar las 100 primeras entradas:

SELECT * FROM musicbrainz.recordings_by_artists_manual LIMIT 100;

Esta consulta seleccionará todas las columnas de la tabla y mostrará las 100 primeras
entradas. Si deseas seleccionar solo algunas columnas en particular, puedes especificarlas
en lugar de usar "*" en la consulta. Por ejemplo:

SELECT columna1, columna2, columna3 FROM musicbrainz.recordings_by_artists_manual


LIMIT 100;

Esta consulta seleccionará solo las columnas "columna1", "columna2" y "columna3" de la


tabla y mostrará las 100 primeras entradas.
Pregunta 5. ¿En qué consiste DataFlow? ¿Sobre qué tecnología open-source está
implementado?

DataFlow es un servicio de Google Cloud que se utiliza para procesar y analizar grandes
conjuntos de datos en tiempo real. DataFlow es escalable y puede manejar conjuntos de datos
de varios terabytes de manera eficiente. Esto se hace mediante gráficos dirigidos, donde los
diferentes nodos son los encargados de hacer los cálculos y los datos fluyen a lo largo de estos

DataFlow está implementado en Apache Beam, que es una tecnología open-source que
proporciona un marco unificado para el procesamiento de datos en diferentes sistemas de
back-end, como Apache Flink y Google Cloud Dataflow. Apache Beam se utiliza para definir el
flujo de trabajo de procesamiento de datos de manera declarativa, lo que permite a los
desarrolladores enfocarse en la lógica de negocio en lugar de en los detalles de
implementación.

Pregunta 6. Echa un vistazo al código que se indica. ¿Dónde se ejecuta este código en
realidad? ¿En qué componente y con qué lenguaje de programación?

Ese código se está ejecutando en realidad en un bucket público de Cloud Storage en una
PCollection de strings. El lenguaje de programación utilizado para ello es Java.

Pregunta 7. ¿Qué es Google Cloud Shell? ¿Dónde se ejecutan las órdenes que realizamos en
dicho Shell? ¿Qué zona de Google Cloud has elegido y por qué?

Google Cloud Shell es una consola en línea que se ejecuta en la nube y se proporciona como
parte de la plataforma Google Cloud. La consola de Google Cloud Shell se utiliza para realizar
tareas administrativas y desarrollo en la plataforma Google Cloud.

Cuando utilizamos Google Cloud Shell, las órdenes que realizamos se ejecutan en un entorno
de ejecución en la nube proporcionado por Google Cloud. Esto significa que no necesitas
instalar ningún software en tu propio ordenador para utilizar la consola de Google Cloud Shell.

En cuanto a la zona de Google Cloud elegida para el desarrollo de la actividad es Council Bluffs,
Iowa, Norteamérica a través de us-central1. Hemos seleccionado esta zona debido a que
contiene GPU y emite menos CO2 que otras zonas.
Pregunta 8. ¿Qué significan estos límites por cuotas a qué son debidos? ¿Cuál es el recurso
que está siendo limitado por las cuotas e impide que el trabajo se ejecute adecuadamente?

Las cuotas hacen referencia a cuanto de un recurso compartido de se puede usar en el


proyecto, haciendo referencia a los elementos de red, software y hardware. Están
establecidos para supervisar y controlar los picos de uso de la plataforma Google Cloud, de
forma que mantienen la equidad. En este caso ninguno de los recursos es limitante, puesto
que tenemos porcentajes de uso muy bajos por usuario, siendo el servicio de mayor consumo
“Compute Engine API” donde sus cuotas de Network son del 20% o menos.

Pregunta 9. ¿Qué significa la query SQL que estás ejecutando? Es decir, describe qué datos
se van a solicitar, a qué tabla y bajo qué condiciones.

La query SQL que se ejecuta en un Select de varios campos de la tabla


musicbrainz.recordings_by_artists_dataflow, los cuales son “artist_name”, “artist_gender”,
“artist_area”, “recording_name”, “recording_length”. Las condiciones bajo las cuales se
solicitan son las puestas después del “WHERE”, que significan que tanto “artist_area” como
“artist_gender” no pueden ser nulos (el valor debe de existir). Además, esta query solo sacará
los primeros 1000 registros de la base de datos.

Pregunta 10. Has visto en el tutorial dos enfoques diferentes. ¿En qué consiste cada uno de
ellos? ¿Qué ventajas e inconvenientes presenta cada uno de ellos? Propón un ejemplo de
escenarios reales en los que se puede aplicar cada uno de los dos.

Enfoque 1. ETL en BigQuery, es un servicio de almacenamiento y análisis de datos en la nube


de Google que puede ser usado para realizar consultas y análisis. Los conjuntos de datos de
BigQuery pueden contener una gran cantidad de datos, y se pueden usar para realizar
consultas complejas en un tiempo muy corto.

Enfoque 2. ETL en BigQuery con DataFlow es similar al proceso ETL en BigQuery, pero utiliza
DataFlow como marco de procesamiento de datos en lugar de realizar el proceso ETL
manualmente. DataFlow es un servicio de Google Cloud que se utiliza para procesar y analizar
grandes conjuntos de datos en tiempo real mediante un gráfico dirigido.

La principal diferencia entre usar BigQuery con Dataflow y usar BigQuery sin Dataflow es la
capacidad de procesar y analizar grandes conjuntos de datos de manera eficiente y escalable.
Cuando se usa BigQuery sin Dataflow, las consultas y análisis deben ser realizados
directamente en BigQuery, lo que puede ser ineficiente y limitado en términos de capacidad
de procesamiento y escalabilidad. En cambio, cuando se usa BigQuery con Dataflow, los datos
pueden ser procesados y analizados en paralelo en la nube, lo que permite realizar consultas
y análisis más complejos y con una mayor cantidad de datos en menos tiempo. Además, con
Dataflow se pueden crear flujos de trabajo que automatizan el procesamiento y el análisis de
datos, lo que puede ahorrar tiempo y esfuerzo en la gestión de los conjuntos de datos de
BigQuery.

Ejemplos de escenarios reales:

• BigQuery sin dataflow: Realizar consultas en conjuntos de datos de investigación


médica para identificar posibles correlaciones entre ciertas condiciones de salud y
factores de riesgo, con el fin de mejorar el tratamiento de enfermedades.
• BigQuery con dataflow: Crear un flujo de trabajo que procese y analice datos de log
de servidores de aplicaciones web en BigQuery, para identificar posibles problemas
de rendimiento y enviar alertas en caso de que se detecten, todo ello a tiempo real.

Pregunta 11. ¿Por qué es importante limpiar los recursos utilizados? ¿Qué implicaciones
existen si no lo hacemos?

Es importante limpiar los recursos utilizados para liberar los recursos y evitar cargos
innecesarios en tu cuenta de Google Cloud. Cuando utilizas recursos como máquinas
virtuales, bases de datos y otros servicios en la nube, estos recursos consumen recursos de la
plataforma y generan costos. Si dejas estos recursos sin limpiar después de utilizarlos,
seguirán consumiendo recursos y generando cargos en tu cuenta, lo que puede resultar en
un gasto innecesario.

Además, si no limpias los recursos utilizados, estos recursos pueden interferir con tus futuras
actividades en la plataforma. Por ejemplo, si dejas máquinas virtuales sin limpiar, pueden
ocupar espacio en la plataforma y dificultar la creación de nuevas máquinas virtuales.

En general, es importante limpiar los recursos utilizados para liberar recursos y evitar cargos
innecesarios en tu cuenta de Google Cloud. También puede ayudar a mantener la plataforma
limpia y libre de recursos no utilizados que pueden interferir con tus futuras actividades.
REFERENCIAS

Realiza operaciones ETL desde una base de datos relacional en BigQuery con Dataflow |
Cloud Architecture Center |. (s. f.). Google Cloud.
https://cloud.google.com/architecture/performing-etl-from-relational-database-
into-bigquery?hl=es-419

ANEXO

Figura 1

Esquema de la tabla Artist


Figura 2

Esquema de la tabla artist_credit_name

Figura 3

Esquema de la tabla recording


Figura 4

Consulta SQL realizada con tabla recordings_by_artists_manual

Figura 5

Consulta realizada para mostrar solo las 100 primeras entradas de la tabla
recordings_by_artists_manual
Figura 6

Resultado final del script tras el paso 11 del tutorial

Figura 7

Gráfico de componentes del trabajo en ejecución


Figura 8

Aumento de cuota solicitado


Figura 9

Query SQL de tutorial ejecutada


Figura 10

Flujo de datos entre los componentes del enfoque 1 (ETL BigQuery)


Figura 11

Flujo de datos entre los componentes del enfoque 2 (ETL BigQuery con DataFlow)
Nombres componentes:

• Lander Bonilla Viana


• Manuel Ribes Escámez
• Jaime Villarejo Crespo
• Antón Águeda Oyarzabal
• Alejandro Cruz Suárez

Sí No A veces
Todos los miembros se han integrado al trabajo del grupo X
Todos los miembros participan activamente X
Todos los miembros respetan otras ideas aportadas X
Todos los miembros participan en la elaboración del informe X
Me he preocupado por realizar un trabajo cooperativo con mis compañeros X
Señala si consideras que algún aspecto del trabajo en grupo no ha sido
X
adecuado

También podría gustarte