[Cloud Running – I] Creando un dashboard en QuickSight con los datos de Strava

A lo largo de los últimos meses he estado trabajando casi a diario utilizando QuickSight, una herramienta de AWS que nos permite visualizar datos de manera sencilla, completamente SAAS y con la capacidad de acceder a un montón de orígenes de datos, ah, es gratis como parte de la capa gratuita de AWS y tiene su interfaz localizada tanto en castellano como en otros idiomas.

QuickSight no es tan conocido como otras herramientas como Tableau o PowerBI, ya que está menos extendida y presenta una manera muy simple de trabajar con datos, así que quería aprovechar lo aprendido en estos últimos meses y compartirlo en el blog, ya que me parece una herramienta muy interesante sobre todo por la simplicidad de uso.

En este capítulo y a lo largo de esta serie que he llamado Cloud Running, veremos cómo podemos crear un análisis de QuickSight utilizando un conjunto de datos simple, revisando las limitaciones que podamos tener, creando campos calculados y generando nuestras dashboards, y mi plan es continuar la serie complicando el conjunto de datos, jugando con actualizaciones, y finalmente trabajando con orígenes de datos adicionales.

El resultado final de este artículo será el dashboard, o panel como lo denomina QuickSight en su traducción al castellano, que te muestro a continuación:

Subiendo nuestro conjunto de datos de ejemplo

Todo en QuickSight empieza por el conjunto de datos. Un conjunto de datos no deja de ser una información tabulada que analizaremos posteriormente, que puede ir desde ficheros separados por comas, bases de datos relacionales, o fuentes de datos utilizando APIs como Twitter, como podemos ver a continuación en el menú de Administrar datos -> Nuevo conjunto de datos:

Para este ejemplo usaremos un fichero separado por comas que tiene este aspecto:

Este fichero lo obtuve de Strava, que permite una opción de descargar toda nuestra información en un fichero ZIP como parte del proceso de eliminación de nuestra cuenta. Podemos obtener el fichero sin eliminar la cuenta, y es suficientemente completo como para usarlo en este ejemplo.

Una vez subimos nuestro fichero separado por comas a QuickSight, veremos la pantalla de edición de nuestro conjunto de datos:

En esta pantalla podemos cambiar el nombre de los campos, el tipo de dato, seleccionar el separador de nuestro conjunto de datos, así como generar campos calculados, que veremos más adelante.

Un apunte importante: Una de las claves de la rapidez de QuickSight es su motor en memoria SPICE, que permite cargar un conjunto de datos en memoria y acceder a él con gran rapidez, de modo que, al manipular nuestro conjunto de datos no necesitamos acceder a los datos originales, sino que estamos accediendo a una proyección de dichos datos. Esto significa que no siempre tendremos los datos más actualizados, aunque discutiremos actualización en el próximo artículo.

Una vez estemos satisfechos con nuestro conjunto de datos, el siguiente paso es crear un análisis, lo cual nos presenta una pantalla como la siguiente:

Para empezar a generar gráficos, tan solo tenemos que pulsar en los campos que queremos combinar, y el tipo de gráfico que queremos mostrar. Para crear gráficos adicionales, podemos hacer click en el botón + situado en la barra de herramientas:

Si tenemos seleccionada la opción de AutoGraph marcada por el rayo, QuickSight generará un tipo de gráfico adecuado a cada tipo de datos.

Por ejemplo, seleccionar un único campo como distance nos generará un campo de totales:

Una selección de type nos puede generar un gráfico de barras:

Y finalmente la combinación de los campos distance y date nos generaría una serie de tiempo:

Personalizando nuestros gráficos

Además de utilizar la función AutoGraph, podemos seleccionar el tipo de gráfico que queremos, así como los valores que queremos para las diferentes dimensiones, que varía en función del tipo de gráfico:

Tenemos además diferentes opciones de personalización, que podemos ver haciendo click en los diferentes desplegables con forma de V.

A la hora de personalizar las dimensiones, por ejemplo, en los campos de fecha podemos cambiar la granularidad de la agregación o el formato en el que se muestra la información. En el campo valor, podemos utilizar suma, media, contar, contar excluyendo duplicados, max y min, entre otros, así como personalizar el número de decimales y la escala en la que mostramos nuestros datos, teniendo miles, millones, miles de millones y billones, lo que permite mostrar el K que vemos en el gráfico original.

Además de las dimensiones podemos personalizar los gráficos, seleccionando Formato del elemento visual en el desplegable con forma de V. En el caso que nos ocupa, podemos personalizar valores como el intervalo a mostrar, qué hacer cuando faltan datos, el numero de líneas que tienen los ejes, o las etiquetas de los propios datos.

Enriqueciendo nuestros datos con campos calculados

Otra de las posibilidades que nos aporta QuickSight es el uso de campos calculados tanto a nivel de conjunto de datos como de análisis.

Importante: Las funciones que están a nivel de conjunto de datos son diferentes de las que encontramos a nivel de análisis!

Además de las operaciones aritméticas como suma, resta, multiplicación y división, tenemos un conjunto de funciones lógicas como ifelse, matemáticas como round, floor o ceil y de manejo de cadenas de caracteres como trim, replace, concat u otras.

Un ejemplo de estas funciones, ha sido el tiempo total en minutos, que he hecho con la siguiente fórmula simple: {elapsed_time} / 60 y el ritmo (en min/km), que he utilizado el campo calculado anteriormente: {elapsed time in minutes}/{distance}*1000

A nivel de análisis, el conjunto de funciones que podemos utilizar es diferente, ya que incluye, funciones que podemos aplicar al conjunto total, y no fila a fila, entre los que podemos encontrar count, avg, max, min, percentile así como funciones de manejo de fechas, entre otras.

Limitaciones

Una de las limitaciones con las que me he encontrado a la hora de hacer este ejemplo es el soporte limitado para campos de tipo tiempo. Si bien es cierto que podemos manipular fechas, en el ejemplo que estaba buscando, uno de los valores que quería conseguir era ritmo en minutos por kilómetro, utilizando formato de minutos y segundos, algo que en estos momentos no podemos conseguir en QuickSight.

Creando un dashboard o panel

Los análisis nos permiten editar los campos, moverlos y desplazarlos a nuestro antojo, y compartirlos con otros miembros de nuestro equipo para modificarlo. Sin embargo, habrá situaciones en las que queramos un modo de “solo lectura” para compartir con otros perfiles de nuestra empresa.
Para ello podemos publicar un dashboard o panel, donde podemos publicar uno nuevo o reemplazar existentes. Una vez publicado, lo podemos hacer disponible a todos los miembros de la cuenta o bien invitar solamente a personas específicas.

Otras características

QuickSight tiene más características de las que hemos visto en este artículo pero que se me quedan fuera de este, entre las que destacan:

  • Filtros, que nos permiten ver un subconjunto de datos en un gráfico, en un conjunto de gráficos o en todo el análisis.
  • Parámetros, que permiten modificar nuestro análisis utilizando una lista de valores predeterminados o dinámicos, y que podemos asociar a filtros y controles para modificar nuestro análisis de manera sencilla.
  • Acciones de URL, que permiten enlazar una página web externa utilizando un formato que especifiquemos, por ejemplo, podríamos enlazar el ID de actividad de Strava para que nos llevara directamente a la URL de la misma.
  • Historia en la cual podemos definir varias etapas del mismo análisis, útil cuando queremos tener varios tipos de filtros aplicados en cada una de las historias, y queremos hacer una narrativa de cómo han cambiado los números por trimestre fiscal, por ejemplo.

Conclusiones

QuickSight como hemos visto es una herramienta bastante versátil para análisis de datos, completamente online, y que nos permite crear conjuntos de datos, utilizar campos calculados a nivel de conjuntos de datos y de análisis, crear gráficos y personalizarlos a nuestro gusto, así como cómo guardar y compartir las vistas que creamos.

En el próximo artículo de la serie, siguiendo con la temática de Running, veremos qué pasa cuando tenemos nuevos datos a lo largo del tiempo, y cómo podemos hacer que estos cambios se vean reflejados en QuickSight.

Lecturas adicionales

La tecnología detrás de mi primera carrera popular

Hoy, arrastrado por mi querida Patricia Vasco, participé en mi primera carrera popular, llamada Ponle Freno, que consistía en una ruta de 10 kilómetros por el centro de Madrid, a cubrir en… bueno… lo antes posible.

Podría dedicarme a contar lo dura que ha sido para mí, y que tengo agujetas en músculos aún por descubrir por la medicina moderna, sin embargo me gustaría comentaros la tecnológica que ví (y usé) en esta carrera.

Dorsales con chip

2014-11-30 19.01.51

En la parte trasera de nuestro dorsal nos podemos encontrar un chip RFID que se encarga de notificar quienes somos a la antena del punto de control cuando pasamos por el mismo.

Como la información a transmitir es muy poca, se alimenta de las ondas recibidas de la antena, de tal menera que no necesita baterías.

Este sistema permite a la organización saber los tiempos totales de cada asistente, así como saber si hemos pasado por todas las etapas de la carrera, y luego poder verlo en su página web.

Drones

31

Espero (para mi bien) que el día que Skynet sea consciente de sí mismo no sea en una carrera popular, ya que en la salida pudimos ver varios drones filmando.

Son más prácticos que un brazo telescópico de una cámara y es menos complicado que recurrir a un helicóptero, además, por lo que he visto en algunos vídeos hechos con drones, la calidad de la imagen es muy buena y bastante estable.

Música, olvidate del streaming

windows_phone_zune_pass_streaming_icon_by_revengexx14-d4oupr5

El problema de meter 20.000 personas en una parrilla de salida (y luego durante el resto de la carrera) es que las antenas de telefonía no están preparadas para tanta carga, con lo cual la velocidad de datos se reduce hasta ser completamente inusable. Esto también lo podemos apreciar en eventos muy concurridos y manifestaciones.

Lo mejor para ello es, o bien utilizar nuestra propia aplicación offline de música para nuestro teléfono preferido, o si usamos servicios como Spotify recurrir a su modo offline.

Trackers: Endomondo, Nike Plus, Runkeeper, etc.

Estas herramientas nos permiten tener un control más exhaustivo de cómo nos está iendo y cómo ha ido ha ido la carrera. Durante la misma, la aplicación nos muestra estadísticas como velocidad, tiempo, distancia, y combinaciones de las mismas.

Después de la carrera podemos ver, en el dispositivo o en la web, más estadísticas sobre la misma. Para los aficionados como yo no deja de ser un juguete divertido, pero los profesionales pueden tener una visión más completa durante y después de la carrera.

En mi caso recomiendo Endomondo, una herramienta gratuita (con posibilidad de suscripción para ventajas adicionales) que lleva varios años en el mercado y que, entre otras cosas, nos va “chivando” cada vez que completamos una etapa, por ejemplo un número determinado de kilómetros.

Pebble + Endomondo

endomondo-pebble

El reloj Pebble es EL smartwatch. Con una batería que puede durar una semana, nos permite controlar la música de nuestro móvil, recibir notificaciones y, más importante para el tema que comentamos ahora, Endomondo ofrece soporte a través de una aplicación oficial.

Esto nos permite controlar nuestros tiempos y velocidad sin tener que sacar el móvil de nuestro bolsillo (o mochila) para hacerlo, además de recibir algunas notificaciones de “Ánimo” y poder cambiar la canción que suena en ese momento.

Baterías extra

XTPower-XT-2600-Powerbank-mobiler-USB-Akku-mit-2600mAh-fuer-Handy-Smartphone-iPhone-iPod-PDA-MP3-Player-Navi-und-viele-mehr-mit-7-Adaptern

Una de las mejores decisiones jamás tomada para este evento. si estamos usando el GPS y el bluetooth constantemente, además de la música, la batería se nos puede terminar antes de acabar la carrera. LA solución a esto es una batería compacta y un cable corto (cortesía de Microsoft Ibérica) para que no se nos acabe la energía.

Conclusiones

Cuando estamos en eventos técnicos, de vez en cuando teorizamos sobre cómo sería la vida de la gente con la tecnología que creamos o para la que desarrollamos. Resulta increible poder ir a una carrera y ver la cantidad de tecnología que nos rodea hoy, y que habría sido impensable tener hace unos años. Los wearables son una realidad, y estoy seguro que en la siguiente carrera veré más pebbles, Microsoft Bands o, quién sabe, tal vez veo algún corredor con el Watch de Apple.

¿Hay alguna tecnología más que hayas visto o usado en una carrera de este tipo?

Keep coding, keep running :)