Integración de Google Cloud Datastore con NDB

Clase 10 de 29Curso de Google App Engine

Contenido del curso

Resumen

Google Cloud Datastore simplifica el almacenamiento de datos a escala con alta confiabilidad. Aquí verás cómo integrarlo con App Engine usando NDB, desde el despliegue hasta las consultas, siguiendo un flujo probado y claro. Conecta conceptos como entidad, kind, propiedad y key con ejemplos prácticos y comandos esenciales de GCloud para producción.

¿Qué es Google Cloud Datastore y cómo se estructura?

Datastore es una base de datos no SQL pensada para backends: altamente escalable, replicada entre zonas de cómputo y confiable. Soporta transacciones ACID, acceso vía APIs REST, autoescalado y autenticación. Así, la escritura de datos queda distribuida para disponibilidad y rendimiento.

¿Por qué Datastore es una base de datos no SQL escalable?

  • Replica información en varias zonas de cómputo para resiliencia.
  • Exposición vía APIs REST de uso sencillo.
  • Soporta transacciones ACID para consistencia.
  • Autoescalado transparente para cargas variables.

¿Qué significan entidad, kind, propiedad y key?

  • Entidad: un objeto o registro almacenado.
  • Kind: la categoría del objeto, equivalente conceptual a una tabla en SQL.
  • Propiedad: un atributo o campo dentro de la entidad.
  • Key: la llave única (ID) de cada entidad.

¿Qué aporta la librería NDB en App Engine?

NDB es la librería de Google para Python en App Engine. Permite:

  • Crear y consultar entidades con clases y métodos simples.
  • Controlar indexación por propiedad para acelerar consultas.
  • Usar métodos como put (almacenar) y get (recuperar).

¿Cómo desplegar en App Engine con GCloud y app.yaml?

El flujo inicia en la consola de Google: console.cloud.google.com. Desde Google Cloud Shell se descarga el código, se configura con app.yaml y se hace deploy a producción.

¿Cómo preparar el entorno en Google Cloud Shell?

  • Abrir Cloud Shell y ubicarse en el directorio preferido.
  • Clonar el repositorio desde GitHub; si faltan permisos, usar sudo.
git clone <URL-del-repositorio> cd <carpeta-del-repo>
  • Listar archivos y confirmar que existe app.yaml.

¿Qué contiene el archivo app.yaml?

  • Variables y configuración para el despliegue en App Engine.
  • Definición del servicio por defecto y parámetros básicos.

Puntos clave:

  • Usar el ID del proyecto correcto al desplegar.
  • Mantener variables preconfiguradas para evitar errores en producción.

¿Cómo ejecutar gcloud app deploy y abrir la URL?

  • Desplegar indicando el proyecto.
gcloud app deploy app.yaml --project <ID-del-proyecto>
  • Confirmar el descriptor y la ruta del proyecto.
  • Abrir la URL sugerida por GCloud.
gcloud app browse
  • Verificar que la aplicación responda correctamente en producción.

¿Cómo se almacena y consulta información en Datastore con NDB?

La aplicación implementa un flujo de solicitud de crédito: primero registra un usuario y luego procesa la solicitud con reglas simples, persistiendo todo en Datastore.

¿Cómo fluye el registro y la solicitud de crédito?

  • Formulario 1: identificación, nombre, apellido y email.
  • Si el usuario no existe, se registra y se confirma.
  • Formulario 2: NIT y salario.
  • Se calcula el resultado y se muestra aprobación con un valor.

¿Dónde ver entidades y datos en Datastore?

  • Ir a Storage > Datastore > Entidades en el proyecto.
  • Entidad usuario: nombre, apellido, identificación y correo.
  • Entidad solicitud: fecha de solicitud, identificación de usuario, NIT, salario, estatus aprobado y valor aprobado. Campos opcionales como fecha de ingreso pueden declararse según necesidad.

¿Cómo funcionan las consultas NDB y el método put?

  • Modelo usuario: atributos indexables como identificación (entero), nombre, apellido y email.
  • Consulta “obtener usuario por ID”: query por la propiedad identificación y uso de get para el objeto completo.
  • Registro de usuario: crear objeto usuario, asignar propiedades y ejecutar put para guardar (retornar con get si se requiere el objeto).
  • Modelo solicitud: incluye fecha de solicitud y demás campos del proceso.
  • Consulta de solicitudes recientes: ordenar por fecha de solicitud en forma descendente y limitar resultados con fetch (por ejemplo, cinco registros).
  • Registro de solicitud: persistencia con put y recuperación con get.

En conjunto, NDB ofrece una integración rápida y sencilla con Datastore en Python, especialmente cuando el entorno ya cuenta con las librerías de App Engine y el Cloud SDK instalado.

¿Tienes dudas o ideas para mejorar el flujo de datos? Comparte tu comentario y conversemos.

      Integración de Google Cloud Datastore con NDB