Google Cloud Datastore era un servicio de base de datos NoSQL proporcionado por Google Cloud Platform . Ahora ha sido reemplazado por Firestore , que ofrece un modo de compatibilidad con Datastore para garantizar que las aplicaciones heredadas creadas con Datastore sigan funcionando sin problemas. La API de Google Cloud Datastore organiza los datos en entidades y propiedades, donde las entidades se agrupan por tipo. Este concepto es similar al de las tablas en las bases de datos relacionales; sin embargo, al tratarse de una base de datos NoSQL, carece de las restricciones de esquema . Cada entidad en Datastore se identifica de forma única mediante una clave. Esta clave puede tener un identificador personalizado definido por el usuario o ser generada automáticamente por el sistema.
Historia
Google Cloud Datastore se anunció el 11 de abril de 2013 como una base de datos de documentos NoSQL totalmente administrada y diseñada para admitir aplicaciones web a gran escala. Se basaba en el Datastore original utilizado en Google App Engine desde 2008, pero se diseñó para ofrecer características como escalabilidad, mayor disponibilidad y replicación automática de datos en múltiples centros de datos .
Antes del lanzamiento de Cloud Datastore, los desarrolladores de Google App Engine trabajaban con una base de datos integrada que solo funcionaba con aplicaciones de App Engine. Cuando Google Cloud Platform empezó a crecer en el mercado, los desarrolladores buscaban una base de datos que pudieran usar fuera de App Engine para integrarla con sus aplicaciones. Necesitaban mayor flexibilidad y amplia disponibilidad. Cloud Datastore satisfizo esta necesidad al añadir funciones como la fragmentación automática , la indexación y la compatibilidad con la consistencia eventual.
Google lanzó Cloud Firestore en 2018 como una nueva base de datos NoSQL con características como actualizaciones en tiempo real, soporte sin conexión y una ejecución de consultas más rápida. Se recomienda a los nuevos usuarios que utilicen Firestore. Firestore ofrece un modo de "compatibilidad con Datastore" para que los usuarios existentes puedan seguir utilizando la API y las características de Datastore, con la opción de actualizar a Firestore cuando sea necesario para beneficiarse de capacidades empresariales, consistencia sólida, transacciones multidocumento compatibles con ACID y un motor de consultas avanzado que admite filtros complejos, agregaciones, uniones y subconsultas [ 1 ] [ 2 ] . Google Cloud continúa brindando soporte a estos sistemas heredados para que sigan siendo confiables y completamente funcionales incluso en el futuro.
Descripción general
Organización de datos
En Google Cloud Datastore, los datos se organizan en entidades, similares a los registros individuales. Estas entidades se agrupan por tipos, al igual que las tablas en una base de datos tradicional. Sin embargo, a diferencia de las bases de datos relacionales, las entidades del mismo tipo no tienen que seguir una estructura fija (como un esquema predefinido). Pueden tener diferentes conjuntos de propiedades.
Entidades y propiedades
Cada entidad representa un conjunto estructurado de propiedades. Las propiedades son pares clave-valor. Algunos ejemplos de valores son cadenas de texto, números, valores booleanos, marcas de tiempo, matrices y puntos geográficos. La flexibilidad de las propiedades permite a los desarrolladores modelar estructuras de datos complejas sin un esquema rígido.
Claves de entidad
Cada entidad en Datastore se identifica de forma única mediante una clave . Una clave incluye:
- Un ID de proyecto (el identificador del proyecto de Google Cloud),
- Un espacio de nombres opcional (utilizado para multitenencia),
- Un tipo (que define el tipo de entidad),
- Y un nombre o un identificador numérico que distinga a la entidad dentro de su tipo.
Opcionalmente, las entidades pueden agruparse en grupos de entidades para permitir actualizaciones transaccionales que involucren a varias entidades.
Tipos de datos
La API de Datastore admite una variedad de tipos de datos de propiedades, como se muestra a continuación:
- Cadena
- Entero
- Flotar
- Booleano
- Marca de tiempo
- Matriz (Lista)
- Entidad incrustada
- GeoPoint (coordenadas geográficas)
- Datos binarios (Blob)
Esta variedad permite modelar datos estructurados y semiestructurados en diversos tipos de datos.
GQL
GQL (Google Cloud Datastore Query Language) es un lenguaje de consulta similar a SQL, diseñado para interactuar con Google Cloud Datastore. GQL permite a los usuarios consultar el servicio Datastore mediante sentencias similares a las de SQL, pero específicamente adaptado a la naturaleza NoSQL de esta plataforma. GQL ofrece maneras de filtrar, ordenar y realizar operaciones en las entidades de Datastore sin necesidad de escribir consultas complejas en las API subyacentes de Datastore.
A diferencia de SQL, GQL tiene limitaciones en cuanto a los tipos de uniones [ 3 ] y relaciones que puede manejar. Sin embargo, admite consultas por propiedades, incluyendo igualdad y desigualdad, así como consultas de rango. Los usuarios pueden utilizar GQL para consultar entidades según múltiples condiciones. Esto hace que GQL sea adecuado para una amplia gama de casos de uso, como la recuperación de datos de usuario, catálogos de productos e incluso la actualización de la base de datos.
GQL también admite consultas de ancestros. Esto permite a los usuarios obtener entidades relacionadas según su posición en una jerarquía. Esto es fundamental para aplicaciones que requieren la gestión de datos jerárquicos, como sistemas de gestión de contenido o modelos de datos con relaciones padre-hijo. Si bien GQL simplifica las consultas, opera dentro de las limitaciones del modelo de consistencia eventual de Datastore.
Ejemplo de consulta GQL:
SELECCIONAR * DE Tarea DONDE estado = 'completado' Y prioridad = 'alta' ORDENAR POR creado DESCEsta consulta obtendrá todas las entidades de Tarea con estado "completado" y prioridad "alta". Además, las ordenará por fecha de creación en orden descendente.
Aunque GQL tiene una interfaz fácil de usar para consultar Google Cloud Datastore, al trabajar con consultas y uniones más complejas, necesitamos usar las API nativas de Datastore, como la API de Google Cloud Datastore. Esta API ofrece mayor flexibilidad y control para los desarrolladores. [ 4 ] Por ejemplo, no podemos realizar la siguiente operación de unión:
SELECT * FROM Customer JOIN `Order` ON Customer . customer_id = `Order` . customer_idPodemos implementar una lógica como la del siguiente código. Básicamente, es un proceso de dos pasos. Primero, usamos la API de Datastore para obtener el cliente por su ID. Luego, usamos ese ID de cliente para crear otra consulta y recuperar los pedidos relacionados.
from google.cloud import datastorecliente = almacén de datos.Cliente ()# paso 1 customerkey = client . key ( "Customer" , "C123456" ) customer = client . get ( customerkey )# paso 2 consulta = cliente . consulta ( tipo = "Orden" ) consulta . agregar_filtro ( "id_cliente" , "=" , "C123456" ) pedidos = lista ( consulta . obtener ())Buenas prácticas para desarrolladores
Limitaciones de consulta
Datastore no admite uniones, subconsultas ni operaciones de agregación como las que se encuentran en bases de datos relacionales, como MS SQL y MySQL. Por ello, el diseño de aplicaciones suele requerir la desnormalización . Se trata de un proceso que consiste en almacenar datos relacionados juntos dentro de una única entidad o utilizar grupos de entidades para mantener relaciones jerárquicas. Se requieren filtros de consulta para que coincidan con los índices existentes, y ciertas combinaciones de operaciones de desigualdad y ordenación pueden requerir índices personalizados. El sucesor de Datastore, Firestore, admite una API de canalización de consultas avanzada [ 1 ] que admite agregaciones, uniones y subconsultas [ 2 ] .
Soporte de lenguaje y API
Las API de Google Cloud Datastore constan de una interfaz RESTful y una API gRPC. [ 5 ] Esto resulta muy útil para los desarrolladores que necesitan diseñar aplicaciones distribuidas. Estas API ofrecen acceso directo a las funcionalidades de Datastore, como transacciones, consultas y gestión de entidades. Las bibliotecas cliente se basan en estas API y ocultan los detalles complejos. Facilitan el uso de diferentes lenguajes como Python, Java, Go, Node.js y C# al gestionar aspectos como la gestión de conexiones, los reintentos y la serialización. [ 6 ] La API de Datastore también está optimizada para ofrecer un acceso de alto rendimiento y baja latencia. Además, admite operaciones por lotes, consultas de ancestros y lecturas con consistencia fuerte dentro de grupos de entidades. Gracias a estas funcionalidades, los desarrolladores pueden crear aplicaciones escalables sin necesidad de gestionar por sí mismos una infraestructura de base de datos compleja.
Compromisos en el modelado de datos
Google Cloud Datastore está diseñado para escalar fácilmente y simplificar las operaciones, pero esto conlleva algunas desventajas inevitables. Especialmente en lo que respecta a características como uniones y transacciones que involucran múltiples filas. Para lograr una alta escalabilidad, Datastore requiere que los desarrolladores desnormalicen sus datos y diseñen su esquema en torno a patrones de lectura, en lugar de centrarse en la normalización. Este enfoque ayuda a reducir la complejidad y mejora el rendimiento, especialmente cuando los desarrolladores trabajan en aplicaciones con muchas lecturas. Por lo tanto, al diseñar la base de datos, los desarrolladores deben planificar sus modelos de datos asumiendo que Cloud Datastore no ofrecerá operaciones de unión. Para operaciones aún más complejas, como agregaciones o búsqueda de texto completo, los desarrolladores a menudo necesitan integrar Datastore con otros servicios como GCP BigQuery para análisis o Elasticsearch para capacidades de búsqueda. Esto significa que los desarrolladores necesitan diseñar un sistema que conecte múltiples herramientas para lograr sus objetivos. Sin embargo, las nuevas aplicaciones pueden usar Firestore , que ofrece capacidades de búsqueda de texto completo integradas [ 2 ] .
Comparación con otras bases de datos
Almacenamiento de datos en la nube frente a MongoDB
Cloud Datastore y MongoDB son ambas bases de datos de documentos NoSQL, pero difieren en cuanto a su estructura y capacidades. Cloud Datastore impone un modelo de documentos más estructurado con grupos de entidades y prioriza la escalabilidad y la simplicidad sobre las funciones de consulta avanzadas. Por otro lado, MongoDB ofrece un modelo de documentos flexible ( BSON ), que es una potente canalización de agregación, y tiene capacidades de unión limitadas. [ 7 ] Cloud Datastore está estrechamente integrado con Google Cloud Platform (GCP), pero MongoDB puede autoalojarse o utilizarse como un servicio gestionado a través de MongoDB Atlas [ 8 ] en diferentes plataformas en la nube. El sucesor de Google Cloud Datastore, Firestore, ofrece una API compatible con MongoDB [ 9 ] para permitir migraciones de lift-shift.
Almacenamiento de datos en la nube frente a bases de datos relacionales
Las bases de datos relacionales como MySQL y PostgreSQL siguen un esquema normalizado con soporte para uniones complejas y transacciones ACID completas. Son ideales para crear aplicaciones que requieren una fuerte consistencia y lógica relacional. En contraste, Cloud Datastore sigue un enfoque NoSQL desnormalizado y sin esquema, donde los datos se estructuran en torno a patrones de acceso para optimizar el rendimiento de lectura a gran escala. Los sistemas de gestión de bases de datos relacionales tradicionales (RDBMS) son mejores para sistemas transaccionales [ 10 ] y consultas complejas, mientras que Cloud Datastore es más eficaz para aplicaciones a gran escala que necesitan alta disponibilidad y escalabilidad horizontal. Para aplicaciones que requieren capacidades de consulta complejas, se recomienda encarecidamente el uso de las API de Firestore .
Almacenamiento de datos en la nube frente a Redis
Redis es una base de datos NoSQL con almacenamiento clave-valor en memoria, diseñada para un acceso extremadamente rápido. Es una opción ideal para sistemas de caché, publicación/suscripción y análisis en tiempo real. Prioriza la velocidad sobre la durabilidad, [ 11 ] pero también ofrece opciones de persistencia. [ 12 ] Cloud Datastore es una base de datos de documentos persistente y basada en disco que admite consultas estructuradas. Además, está optimizada para el almacenamiento y la recuperación de datos a largo plazo. Redis es excelente para operaciones rápidas y transitorias, pero Cloud Datastore es más adecuada para datos de aplicaciones estructurados y de larga duración que requieren escalado e indexación gestionados. Redis se suele utilizar en combinación con una base de datos como Cloud Datastore, no como reemplazo.
Véase también
Referencias
- 1 2 "Potencia tus aplicaciones con el nuevo motor de consultas avanzado de Firestore" . Blog de Google Cloud . 21 de enero de 2026.
- 1 2 3 "Firestore sube de nivel: Llevando el poder de la búsqueda y las uniones a NoSQL" . El blog de Firebase . 27 de abril de 2026.
- ↑ itCraft. Lo que NoSQL no puede hacer: primera experiencia con Google Cloud Datastore.
- ↑ Google Cloud. Cliente Python para la API de Google Cloud Datastore.
- ↑ Google Cloud. gRPC vs REST: Entendiendo gRPC, OpenAPI y REST y cuándo usarlos en el diseño de API.
- ↑ API de Google en GitHub.
- ↑ MongoDB. Tipos BSON.
- ↑ MongoDB. ¿Qué es MongoDB Atlas?
- ↑ "Firestore con compatibilidad con MongoDB ya está disponible para el público en general" . Blog de Google Cloud . 26 de agosto de 2025.
- ↑ PostgreSQL. Capítulo 3. Funcionalidades avanzadas, Transacciones.
- ↑ Redis. Redis 8 ya está disponible de forma general, con nuevas funciones y más de 30 mejoras de rendimiento.
- ↑ Redis. Persistencia de Redis.
Enlaces externos
- Sitio web oficial
- Sitio web de Firestore
- Sitio web de Google Cloud Platform
- Google Cloud
- Almacenamiento en la nube
- bases de datos en la nube