BigQuery y Python: Cómo optimizar la forma en que usas ambos

Analizar data de BigQuery con Python no es tan sencillo como podría serlo. Esto puede resumirse por tres factores:

Blog Option
Option.blog
Published in
3 min readSep 2, 2019

--

  1. Cargar los datos toma demasiado tiempo.
  2. No tienes visibilidad en tu query.
  3. Tú mismo tienes que gestionar la interfaz.

Estos tres problemas generan un cuello de botella para ti y tus colegas Data Scientists para poder entregar insights clave que impulsen a tu organización.

Esto se está resolviendo con el repositorio superPy, que se complementa con superQuery para BigQuery y simplifica el trabajo de los analistas utilizando Jupyter Notebook para acceder a la data de BigQuery.

Te contaremos más, pero primero veremos rápidamente los tres grandes problemas que los Python developers enfrentan con BigQuery.

  1. Transferencia lenta

Con Google BigQuery, puedes ejecutar consultas SQL en millones de filas y tener los resultados en segundos.

Aún así, no puedes decir los mismo cuando estás sacando data de BigQuery para procesamiento más complejo. La data que antes se cargaba en segundos puede tomar algunos minutos a horas en tu notebook de Jupyter.

Hay algunos atajos para hacer el proceso más rápido, como descargando los resultados a CSV y luego importando esta data en Jupyter. Pero después de un tiempo terminarás con una serie de outputs CSV en GCS buckets.

Irónicamente, atajos como éste sólo le añaden pasos extra a un proceso que debiese ser mucho más fluido.

2. Navegando tu data con los ojos vendados

Con cero estadísticas que den luces acerca de tus queries, estás navegando tu data en completa oscuridad. No hay forma de que sepas la cantidad de data procesada, el costo de tus consultas o alguna otra.

Sólo después de ejecutar tu query verás si tu trabajo le cuesta a tu empresa un brazo y una pierna.

3. Debes gestionar la interfaz tú mismo.

Cuando un equipo de datos conecta a su base de datos, hay bastante margen para errores. Por ejemplo, cada analista descarga su propio driver y en consecuencia existe una discordancia entre las experiencias de cada uno.

Luego debes crear métodos que se integren a través de filas, configurar una conexión y autenticarla. Muchas cosas pueden ir mal a lo largo del camino.

Sólo después de esto puedes finalmente comenzar a gestionar los resultados.

Como resultado, la experiencia no está normalizada.

Gánale al “cuello de botella” de BigQuery/Python

Con la librería superPy, los analistas ya no deben lidiar con estos problemas gracias a 3 capacidades clave.

Primero, los analistas disfrutan de la facilidad de la carga de datos. Ahora puedes desarrollar tu lógica a través de un subconjunto de filas. Una vez que está terminado, puedes descargar el resto de tu data.

Segundo, los desarrolladores tienen la capacidad de visualizar el “dry run” de Google BigQuery antes de la ejecución de una query. Esto significa que sabrás de la data escaneada y el costo de la consulta en forma previa. No más accidentes costosos.

También puedes explorar otras estadísticas que enriquecen la información acerca de tus queries: ¿Fue usado el caché?¿Qué porcentaje de tus resultados vinieron del caché?

Mejor aún: Dile a superQuery en qué estadísticas estás interesado y será considerado para que sea agregado.

Échale un vistazo a las estadísticas de queries que puedes ver con superPy:

Finalmente, gestionamos la interfaz para ti. Tu sólo necesitas importar tus datos y empezar a programar.

¿Cómo empezar utilizando superPy?

Para empezar, lee las cortas instrucciones en GitHub README de superPy, y verifica que tengas una cuenta en superQuery (¡es gratis empezar!).

--

--