La API de almacenamiento de BigQuery proporciona acceso rápido a los datos almacenados en BigQuery. Usa la API de almacenamiento de BigQuery para descargar datos almacenados en BigQuery y usarlos en herramientas de estadísticas como la biblioteca de Pandas para Python.
Objetivos
En este instructivo, harás lo siguiente:
- Descargar los resultados de las consultas en un DataFrame de Pandas mediante la API de almacenamiento de BigQuery desde los comandos mágicos de IPython para BigQuery en un notebook de Jupyter
- Descargar los resultados de las consultas a un DataFrame de Pandas mediante la biblioteca cliente de BigQuery para Python
- Descargar los datos de las tablas de BigQuery a un DataFrame de Pandas mediante la biblioteca cliente de BigQuery para Python
- Descargar los datos de las tablas de BigQuery a un DataFrame de Pandas mediante la biblioteca cliente de la API de almacenamiento de BigQuery para Python
Costos
BigQuery es un producto pago que generará costos de uso de BigQuery por las consultas que ejecutes. Tienes 1 TB gratis de procesamiento de datos de consulta por mes. Para obtener más información, consulta la página de precios de BigQuery.
La API de almacenamiento de BigQuery es un producto pago que generará costos de uso por los datos de tabla que escanees cuando descargues un DataFrame. Para obtener más información, consulta la página de precios de BigQuery.
Antes de comenzar
Antes de comenzar este instructivo, usa Google Cloud Platform Console para crear o seleccionar un proyecto y habilitar la facturación.
-
Accede a tu Cuenta de Google.
Si todavía no tienes una cuenta, regístrate para obtener una nueva.
-
Selecciona o crea un proyecto de GCP.
-
Asegúrate de tener habilitada la facturación para tu proyecto.
- BigQuery se habilita de forma automática en proyectos nuevos. Para activar BigQuery en un proyecto preexistente, Habilita las BigQuery, API de almacenamiento de BigQuery API necesarias.
- Configura un entorno de desarrollo de Python.
Configurar Python - Configura la autenticación para tu entorno de desarrollo.
Configurar la autenticación
Antes de completar este instructivo, también debes estar familiarizado con los comandos mágicos de IPython para BigQuery, la biblioteca cliente de BigQuery y el uso de la biblioteca cliente con Pandas.
Instala las bibliotecas cliente
Instala la versión 1.9.0 o superior de la biblioteca cliente de BigQuery para Python y la biblioteca cliente de la API de almacenamiento de BigQuery para Python.
PIP
Instala los paquetes google-cloud-bigquery
y google-cloud-bigquery-storage
.
pip install --upgrade google-cloud-bigquery[bqstorage,pandas]
Conda
Instala los paquetes de Conda correspondientes a BigQuery y la API de almacenamiento de BigQuery desde el canal administrado por la comunidad conda-forge
.
conda install -c conda-forge google-cloud-bigquery \
google-cloud-bigquery-storage \
pandas \
pyarrow
Descarga los resultados de las consultas mediante los comandos mágicos de IPython para BigQuery
Inicia el servidor de notebooks de Jupyter y crea un notebook nuevo. Carga los comandos mágicos de IPython para BigQuery mediante el comando mágico %load_ext
.
%load_ext google.cloud.bigquery
Agrega el argumento --use_bq_storage_api
a los comandos mágicos %%bigquery
para descargar los resultados de las consultas grandes con la API de almacenamiento de BigQuery.
Cuando este argumento se usa con resultados de consultas pequeñas, los comandos mágicos usan la API de BigQuery para descargar los resultados.
Establece la propiedad context.use_bqstorage_api
en True
para usar la API de almacenamiento de BigQuery de forma predeterminada.
Después de establecer la propiedad context.use_bqstorage_api
, ejecuta los comandos mágicos %%bigquery
sin argumentos adicionales para usar la API de almacenamiento de BigQuery a fin de descargar resultados grandes.
Usa las bibliotecas cliente de Python
Crea clientes de Python
Usa el siguiente código para crear un objeto Client
de BigQuery y un BigQueryStorageClient
.
Usa la biblioteca de Python google-auth a fin de crear credenciales que tengan el alcance suficiente para ambas API. Pasa un objeto de credenciales a cada constructor con el fin de evitar que la autenticación se realice dos veces.
Descarga los resultados de las consultas con la biblioteca cliente de BigQuery
Ejecuta una consulta con el método query
. Llama al método to_dataframe
para esperar a que finalice la consulta y descarga los resultados mediante la API de almacenamiento de BigQuery.
Descarga los datos de las tablas mediante la biblioteca cliente de BigQuery
Descarga todas las filas de una tabla con el método list_rows
, que muestra un objeto RowIterator
. Descarga las filas con la API de almacenamiento de BigQuery mediante una llamada al método to_dataframe
con el argumento bqstorage_client
.
Descarga los datos de las tablas mediante la biblioteca cliente de la API de almacenamiento de BigQuery
Usa la biblioteca cliente de la API de almacenamiento de BigQuery directamente para obtener un control detallado sobre los filtros y el paralelismo. Cuando solo se necesitan filtros de fila simples, se puede usar una sesión de lectura de la API de almacenamiento de BigQuery en lugar de una consulta.
Crea un objeto TableReference con la tabla que se debe leer. Crea un objeto TableReadOptions para seleccionar columnas o filtrar filas. Crea una sesión de lectura con el método create_read_session
.
Si hay alguna transmisión en la sesión, comienza la lectura de filas desde ella con el método read_rows
. Llama al método to_dataframe
en el lector para escribir toda la transmisión en un DataFrame de Pandas. Para obtener un mejor rendimiento, se debe leer desde múltiples transmisiones en paralelo, aunque este ejemplo de código lee desde una transmisión única para simplificar.
Código fuente de todos los ejemplos
Mira el código fuente completo de todos los ejemplos de biblioteca cliente.
Limpieza
Sigue estas instrucciones para evitar que se apliquen cargos a tu cuenta de Google Cloud Platform por los recursos que usaste en este instructivo:
Borra tu proyecto. No creaste ningún recurso de BigQuery en este instructivo, pero, si borras tu proyecto, se quitan todos los demás recursos que creaste.- En la GCP Console, dirígete a la página Proyectos.
- En la lista de proyectos, selecciona el proyecto que deseas borrar y haz clic en Borrar.
- En el cuadro de diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.
Pasos siguientes
- Explora la referencia de las bibliotecas cliente de Python: