Descripción general de Datastore

Datastore ya no se ofrece como un producto de base de datos independiente. Firestore es el sucesor de Datastore. Para seguir admitiendo las aplicaciones heredadas de App Engine compiladas en Datastore, Firestore ofrece una API de Datastore retrocompatible. Firestore proporciona todas las capacidades, el rendimiento y las características de escalabilidad de Datastore sin ninguna concesión, lo que incluye lo siguiente:
  • Transacciones atómicas: Ejecutan un conjunto de operaciones en las que todas se completan correctamente o no se realiza ninguna.
  • Alta disponibilidad de lecturas y escrituras: Las bases de datos se ejecutan en los centros de datos de Google, que usan la redundancia para minimizar el impacto de los puntos de falla.
  • Escalabilidad masiva con alto rendimiento: Una arquitectura distribuida administra automáticamente el escalamiento y mantiene el rendimiento bajo cargas pesadas.
  • Almacenamiento y consulta flexibles de datos: El modelo de datos de documentos se correlaciona de forma natural con los lenguajes orientados a objetos y de programación, y se expone a las aplicaciones a través de varios clientes. La API compatible con Datastore de Firestore también proporciona un lenguaje de consulta similar a SQL.
  • Coherencia sólida: Las consultas tienen coherencia sólida.
  • Encriptación en reposo: Los datos se encriptan automáticamente antes de escribirse en el disco y se desencriptan automáticamente cuando los lee un usuario autorizado. Para obtener más información, consulta Encriptación en el servidor.
  • Completamente administrado sin tiempo de inactividad planificado: Google controla la administración del servicio, de forma que puedas enfocarte en tu aplicación. Tu aplicación puede seguir usando Firestore cuando el servicio recibe una actualización planificada.

Comparación con las bases de datos relacionales

Aunque la interfaz de Datastore tiene muchas de las características similares a las bases de datos relacionales, como una base de datos NoSQL, la forma en que describe las relaciones entre los objetos de datos varía según la forma en que se describe. A continuación, se muestra una comparación de alto nivel entre los conceptos de las bases de datos relacionales y Datastore:

Concepto Datastore Firestore Base de datos relacional
Categoría del objeto Tipo Grupo de colección Tabla
Un objeto Entidad Documento Fila
Datos individuales de un objeto Propiedad Campo Columna
ID único de un objeto Clave ID de documento Clave primaria

A diferencia de las filas de una tabla de una base de datos relacional, las entidades de Datastore de la misma categoría pueden tener propiedades diferentes, y entidades distintas pueden tener propiedades con el mismo nombre, pero con tipos de valores diferentes. Puedes usar estas características únicas para diseñar y administrar datos para escalar automáticamente.

Dado que todas las consultas se entregan con índices creados previamente, los tipos de consultas que puede ejecutar la API de Datastore son más restrictivos que los permitidos en una base de datos relacional con SQL. En particular, Datastore no es compatible con las operaciones de unión, con el filtrado por desigualdad de varias propiedades ni con el filtrado de datos basado en los resultados de una subconsulta. Si tu aplicación requiere capacidades de consulta avanzadas, incluidas las uniones y las subconsultas, considera usar la API nativa de Firestore o la API compatible con MongoDB.

A diferencia de las bases de datos relacionales, que aplican un esquema, Datastore no usa esquemas. No requiere que las entidades del mismo tipo tengan un conjunto coherente de propiedades (pero puedes optar por aplicar este requisito en el código de tu propia aplicación).

Otras opciones de almacenamiento y base de datos

La API compatible con Datastore de Firestore está diseñada para admitir aplicaciones heredadas de App Engine. Si buscas una base de datos NoSQL orientada a documentos para una aplicación nueva, te recomendamos que uses una de las APIs de Firestore en lugar de la API de Datastore para aprovechar capacidades más avanzadas. Obtén más información sobre tus opciones.

Firestore es una base de datos de documentos altamente escalable que puede no ser ideal para todos los casos de uso. Por ejemplo, es posible que no sea el mejor reemplazo para una base de datos relacional. Estos son algunos casos comunes en los que podrías considerar una base de datos alternativa:

  • Si necesitas una base de datos relacional totalmente compatible con SQL para un sistema de procesamiento de transacciones en línea (OLTP), considera Cloud SQL.
  • Si no necesitas compatibilidad para transacciones ACID o tus datos no son altamente estructurados, considera Bigtable.
  • Si necesitas consultas interactivas con un sistema de procesamiento analítico en línea (OLAP), considera BigQuery.
  • Si necesitas almacenar grandes BLOB inmutables, como imágenes o películas de gran tamaño, considera usar Cloud Storage.

Para obtener más información sobre otras opciones de base de datos, consulta la descripción general de los servicios de base de datos.

¿Qué sigue?