Laboratorio 11: Integración con Python y API de BigQuery

Laboratorio 11: Integración con Python y API de BigQuery

Objetivos del Laboratorio

  • Establecer canales de comunicación programáticos y automatizados con BigQuery utilizando su biblioteca cliente oficial de Python.
  • Implementar el protocolo de credenciales por defecto de la aplicación (ADC) para evitar almacenar y arriesgar archivos de claves físicas en el repositorio.
  • Optimizar drásticamente la transferencia de datos en memoria serializando registros de BigQuery a objetos Pandas DataFrame de forma paralela.
  • Estructurar scripts automatizados con control de excepciones nativo de GCP para exportar información analítica localmente de manera segura.

Herramientas y APIs Utilizadas

  • Google Cloud BigQuery Python SDK: Biblioteca cliente de Python que encapsula y administra la interacción remota con el almacén de datos.
  • Apache Arrow (pyarrow): Biblioteca de serialización en memoria empleada por el SDK para transferir datos binarios en columnas de forma rápida.
  • db-dtypes: Biblioteca de soporte empleada para mapear de manera nativa los tipos de datos de BigQuery (como marcas de tiempo) hacia estructuras de Pandas.
  • BigQuery API: Servicio programático encargado de recibir, auditar y procesar las peticiones asíncronas de consulta enviadas desde nuestro código.

Estructura del Código Desarrollado

  • requirements.txt: Archivo de especificación de dependencias y versiones de librerías Python requeridas para la ejecución.
  • query_to_dataframe.py: Script lógico de automatización que inicializa el cliente de BigQuery, ejecuta el query job, convierte la salida a Pandas DataFrame y guarda el archivo resultante.

Paso a Paso del Despliegue

Fase 1: Preparación del Entorno Virtual

  • Creación de un espacio de trabajo dedicado en local y aislamiento de librerías inicializando un entorno virtual con python3 -m venv venv.
  • Declaración y fijación de dependencias estrictas en el archivo de requerimientos del proyecto.
  • Instalación asíncrona de las librerías necesarias ejecutando la orden de terminal pip install -r requirements.txt.

Fase 2: Diseño del Script de Automatización

  • Instanciación del cliente de Google Cloud declarando la llamada segura bigquery.Client() dentro de un bloque de control de excepciones.
  • Construcción de la variable SQL que interroga un dataset público referente a la capacidad de estaciones de bicicletas en Londres.
  • Ejecución asíncrona del trabajo analítico mediante client.query() y bloqueo programado del hilo hasta recibir confirmación del motor de BigQuery.
  • Serialización del resultado asimilándolo directamente como un DataFrame mediante el método optimizado results.to_dataframe().
  • Uso del método describe() de Pandas para generar métricas estadísticas descriptivas de manera instantánea sobre la muestra.
  • Persistencia y escritura local del DataFrame resultante en formato de archivo de texto de tipo CSV.

Fase 3: Autenticación y Ejecución del Pipeline

  • Inicio seguro de sesión de credenciales locales ejecutando en la consola el comando de GCP gcloud auth application-default login.
  • Lanzamiento del programa de automatización ETL llamando a la instrucción python scripts/query_to_dataframe.py.
  • Inspección de las métricas numéricas descriptivas impresas de manera directa en la terminal y verificación del archivo CSV generado de forma local.
Newsletter GCP
¿Quieres estar al día con las últimas novedades de Google Cloud Platform? ¡Suscríbete y no te pierdas nada!