Almacenamiento de Predicciones con Google Cloud Storage y BigQuery

Clase 31 de 42Curso de Google Cloud Platform para E-commerce

Contenido del curso

Retail Store en Google Cloud Platform

Exposición de servicios con Apigee

Generación de modelos AI/ML

Consumo de servicios de AI/ML

Resumen

Cuando ya tienes un modelo de machine learning funcionando y generando predicciones, el siguiente paso lógico es almacenar esos resultados para que sean útiles. Existen múltiples destinos posibles, pero dos opciones destacan dentro del ecosistema de Google Cloud: Google Cloud Storage y BigQuery. Ambas permiten guardar datos de forma eficiente, aunque cada una responde a necesidades distintas.

¿Qué es Google Cloud Storage y por qué usarlo para guardar predicciones?

Google Cloud Storage es el servicio de almacenamiento de objetos en la nube de Google. Su principal característica es que no distingue entre tipos de archivo: imágenes, videos, PDFs o cualquier otro formato son simplemente bytes que se persisten para resguardo o consumo posterior [01:00].

Una ventaja importante son las clases de almacenamiento. No toda la información tiene la misma urgencia ni demanda:

  • Almacenamiento estándar: acceso rápido para cualquier usuario.
  • Almacenamiento frío (coldline): pensado para backups o archivo muerto, con un costo mucho menor.

Incluso en almacenamiento frío, la recuperación toma apenas milisegundos, sin penalizaciones extremas en tiempo [01:52]. Si sabes que las predicciones de tu modelo no se consultarán de inmediato, esta opción reduce costos significativamente.

Además, puedes aplicar reglas de ciclo de vida a tus datos: eliminar archivos tras cierto número de días o migrarlos automáticamente entre clases de almacenamiento [02:22].

¿Cómo exportar predicciones a Cloud Storage con Python?

El proceso en Python requiere definir tres elementos clave [02:48]:

  • El nombre del bucket, que es el espacio de almacenamiento donde persistirás la información.
  • El nombre del archivo de salida, que puede ser CSV, JSON u otro formato.
  • La referencia al proyecto y dataset de BigQuery de donde provienen los datos.

Se utiliza un objeto llamado extract job, que es más complejo que una simple query. Debes especificar la tabla de referencia, la destination URI (el identificador que Cloud Storage usa para localizar archivos) y la ubicación geográfica del bucket [03:18].

Un detalle crítico: la ubicación de los datos en BigQuery debe coincidir con la ubicación del bucket destino. Si tus datos están en la Unión Europea, el bucket también debe estar ahí. Lo mismo aplica para Estados Unidos o cualquier otra región [03:52].

¿Cómo guardar predicciones directamente en otra tabla de BigQuery?

Si prefieres seguir aprovechando las capacidades analíticas de BigQuery, guardar las predicciones en otra tabla dentro del mismo servicio resulta incluso más sencillo [04:30].

De manera predeterminada, BigQuery guarda los resultados de cualquier consulta en una tabla temporal que vive máximo veinticuatro horas [04:52]. Para convertirla en permanente, solo necesitas agregar la configuración de tabla destino.

¿Qué pasos seguir para persistir en una tabla permanente?

El flujo es directo [05:05]:

  • Define un identificador de tabla con tu proyecto, dataset y el nombre que prefieras.
  • Crea un objeto QueryJobConfig y asígnale la tabla destino.
  • Arma tu sentencia SQL incluyendo la instrucción PREDICT.
  • Ejecuta el job con el cliente de BigQuery, pasándole la consulta y el jobConfig.

python table_id = "proyecto.dataset.nombre_tabla" job_config = bigquery.QueryJobConfig(destination=table_id) sql = "SELECT * FROM ML.PREDICT(MODEL proyecto.dataset.modelo, TABLE proyecto.dataset.datos)" query_job = client.query(sql, job_config=job_config) query_job.result()

Dentro del QueryJobConfig puedes agregar muchos más parámetros; la documentación de BigQuery detalla todas las posibilidades disponibles [05:48].

El resultado es que tus predicciones quedan persistidas en una tabla permanente, lista para análisis posteriores sin límite de tiempo. Esto permite que cualquier persona del equipo pueda consultar, cruzar y analizar esos resultados con SQL estándar.

Si quieres ver cómo se ejecuta todo esto en la consola de Google Cloud con código real, comparte tu experiencia y cuéntanos qué destino de almacenamiento se adapta mejor a tu caso de uso.