Data ingestion con pandas y Google BigQuery
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!