Data ingestion con pandas y Google BigQuery

Patricia Carmona
2 min readMay 19, 2021

--

Photo by Sid Balachandran on Unsplash

En este post te presento pandas-gbq, una librería que permite la conexión de un notebook a Google BigQuery para traer en formato tabla una consulta directa de la base de datos de Google BigQuery.

pandas-gbq es un wrapper de análisis utilizando consultas de SQL de Google BigQuery.

Instalación

Comienza instalando la librería. Yo opté por la instalación en terminal desde la fuente:

$ pip install git+https://github.com/pydata/pandas-gbq.git

Esto te permitirá conectarte a tu base de datos en Google BigQuery.

Para la conexión a Google BigQuery, lanza en terminal la siguiente consulta con la que configurarás la conexión y seleccionar el dataset al que conectarte:

./google-cloud-sdk/bin/gcloud init

Para comenzar a trabajar con pandas-gbq

Si no tienes instalada la librería, también puedes instalarla directamente en el notebook:

import sys!{sys.executable} -m pip install pandas-gbq

Data Analysis con pandas-gbq

Éste es el momento en el que la librería es protagonista. Su rol básico es transformar el resultado de la consulta que tiene un formato string, en un DataFrame.

Lo primero es lanzar la consulta, ¿qué datos necesitas?:

q_table = f"""select *
from tabla
where condition;
"""

Esta tabla procede de una query, por ello el nombre de ‘q_table’. El formato es un string al que la librería gbq le da formato de dataframe.

Heads-Up! Es interesante filtrar al máximo la consulta a la base de datos porque esto reducirá el tamaño de la consulta y el tiempo que tarda en generarse el DataFrame. Algunos tips: selecciona los campos necesarios y reduce con el filtro where el volumen.

Para darle formato al string ‘q_table’ utiliza la función ‘read_gbq’:

df = pd.read_gbq(q_table, project_id='origen', dialect='standard', progress_bar_type='None')

El campo project_id indica el dataset de origen en tu base de datos de BigQuery.

Y a partir de aquí, ¡que empiece la exploración de datos!

--

--