Spotify Stats con BigQuery y Data Studio - 2: Visualización de datos

En este artículo veremos cómo almacenar nuestro historial de reproducción en Google BigQuery y visualizarlo con Google Data Studio.

Spotify Stats con BigQuery y Data Studio - 2: Visualización de datos

En este artículo veremos cómo almacenar nuestro historial de reproducción en Google BigQuery y visualizarlo con Google Data Studio. Estos datos los hemos obtenido de Spotify y tratado siguiendo los pasos descritos en:

Spotify Stats con BigQuery y Data Studio - 1: Acceso a Datos
En este artículo veremos cómo obtener nuestro historial de reproducción de Spotify, para luego almacenarlo en Google BigQuery y visualizarlo con Google Data Studio.

Subida de datos a Cloud Storage

Una vez tengamos los archivos JSON preparados, debemos subirlos a un segmento en Google Cloud Storage para poder después "alimentar" BigQuery con ellos.

En mi caso, al estar trabajando en Google Cloud Platform y con segmentos de Storage también ha sido muy interesante utilizar el comando gsutil. Este comando permite interactuar con archivos y segmentos de Storage como si estuvieran en la máquina conectados. De esta forma podemos copiar los archivos alojados en Storage para trabajar con ellos en “local” (entrecomillo, pues en el caso de Cloud Shell trabajamos en una máquina virtual) y luego volver a subirlos. En la siguiente imagen se puede ver la interfaz de trabajo.

El comando gsutil es realmente sencillo:

pablo@cloudshell:~$ gsutil cp \ gs://XXXXXXXX-spotify-streaming-XXXXXXXX/sin-procesar/FullHistory/endsong_4_mod.json .

Copying gs://XXXXXXXX-spotify-streaming-XXXXXXXX/sin-procesar/FullHistory/endsong_4_mod.json...
/ [1 files][  4.0 MiB/  4.0 MiB]

Operation completed over 1 objects/4.0 MiB.

También podremos gestionar los archivos desde la interfaz web de GCP:

Carga de datos en Google BigQuery

Ya tenemos disponibles los datos, los hemos tratado de forma que sea sencillo para el software trabajar con ellos. Si bien podríamos desplegar un servidor de MySQL o postgresql, tendríamos que gestionar demasiada “infraestructura”. Se han elegido aplicaciones Cloud SaaS, Cloud Software as a Service, o más concretamente DBaaS para el alojamiento de los datos.

La herramienta utilizada es BigQuery al ser sencilla, no necesitar de administración, capacidad de almacenamiento al nivel de Petabytes e interfaz SQL. Además, tiene una capa gratuita que permite almacenar 10GB y analizar 1TB al mes sin ningún coste.

Interfaz de BigQuery

La interfaz de trabajo, accesible desde este enlace nos permite realizar todas las tareas necesarias.

El bucket de Storage en el que hemos cargado los archivos JSON  será el origen de los datos para BigQuery. Google Cloud Platform se organiza por proyectos. En BigQuery, cada proyecto tiene conjuntos de datos. Cada conjunto de datos puede tener tablas y vistas.

La interfaz se organiza de la siguiente manera:

Si es la primera vez que accedemos, debemos aceptar los términos. Procedemos a crear un conjunto de datos siguiendo estos pasos teniendo en cuenta la ubicación y el nombre. Si no activamos la facturación en el proyecto las tablas tienen una caducidad predeterminada de 60 días, que es suficiente en la mayoría de los casos. En cualquier caso, como se ha comentado anteriormente podemos disfrutar de la capa gratuita siempre.

Siguiendo estos pasos podemos crear una tabla. En cualquier caso, la configuración será similar a la siguiente. Podemos definir, y de hecho es lo más recomendable, como que BigQuery detecte el esquema de los datos. Al estar todos normalizados no tendremos problemas. A continuación vemos un ejemplo de la configuración para crear la tabla:

Una vez creada podremos consultarla desde la propia interfaz, en una imagen anterior tienes un ejemplo. Es muy simple, como podemos ver:

SELECT * FROM [PROYECT].[DATASET].[TableName]
	WHERE conn_country != 'ES'
	ORDER BY ts ASC
	LIMIT 10;

Visualización de datos en Data Studio

Ya tenemos los datos en nuestra base de datos, ¡genial! Pero son solo eso, datos almacenados. 70,324 entradas (filas, tuplas) y 21 columnas.

Pero hoy en día los datos sobran, somos “máquinas” generadoras de datos. Lo importante con los datos no es generarlos, sino almacenarlos, normalizarlos, presentarlos y obtener conclusiones.

Para ayudarnos a la visualización se ha elegido Google Data Studio. Esta herramienta es comparable a Microsoft Power BI o Tableau. Lo bueno es que tenemos integración total con BigQuery y la gestión de permisos con las cuentas de Google.

En esta página se puede obtener información general sobre Data Studio y la documentación del producto se encuentra en este enlace.

A continuación veremos algunas visualizaciones de ejemplo que se hemos generado a partir de los datos

Visualización: Página principal y resumen

En esta primera página vemos de un vistazo cómo han aumentado las reproducción a partir de 2018. De hecho, los años anteriores son prácticamente despreciables. Vemos a simple vista las canciones y los artistas más escuchados. Realmente fue una decepción ver las dos primeras canciones. En mi defensa se puede decir que ya no son escuchadas esas canciones y que la cuenta era compartida. En cualquier caso, es interesante.

Tenemos las opciones de filtrar por canción y artista. Tenemos dos formas, escribiendo directamente o utilizando la lista desplegable. En tanto al periodo de los datos, podemos seleccionarlo por año o por días utilizando los filtros de fecha creados para ello.

En tanto al gráfico inferior, podemos agrupar por mes y año, en vez de por días. Hacer esto nos ofrecerá datos mucho más normalizados y extrapolables.

En la siguiente imagen podemos los siguientes filtros aplicados:

  • Años 2018 - 2021
  • Solo se muestran los 6 primeros artistas en los gráficos y tablas. Es completamente dinámico. De forma que si filtramos por un artista en las canciones más escuchadas solo nos aparecerán canciones suyas. Y el gráfico de evolución de reproducción sólo mostrará los de dicho artista.
  • En el gráfico inferior los datos se muestran normalizados y agrupados por mes y año.

Visualización: Pódcasts

La visualización principal no muestra las reproducciones de los pódcasts, para este tipo de contenido se dispone de la siguiente visualización:

Visualización: Gráfico de rectángulos, simple

En la siguiente página del informe veremos las canciones más escuchadas agrupadas por artista.

Visualización: tendencias

Por último tenemos un gráfico de tendencias. Por defecto, mostrará los 5 artistas más escuchados del periodo, pero podemos indicarlos manualmente.

Según vamos seleccionando artistas y acotando fechas, las métricas se actualizan en tiempo real:

Gráfico de tendencias

¿Alguna duda?

No dudes en ponerte en contacto conmigo para cualquier duda, sugerencia, queja o aclaración que creas necesaria. ¡Será un placer hablar contigo!