Firestore en modo Datastore (Datastore) es una base de datos de documentos NoSQL creada para el escalado automático, el alto rendimiento y la facilidad de desarrollo de aplicaciones. Entre las funciones de Datastore se incluyen las siguientes:
- Transacciones atómicas. Datastore puede ejecutar un conjunto de operaciones en las que todas se completan correctamente o ninguna se lleva a cabo.
- Alta disponibilidad de lecturas y escrituras. Datastore se ejecuta en centros de datos de Google, que usan la redundancia para minimizar el impacto de los puntos de fallo.
- Gran escalabilidad con un alto rendimiento. Datastore usa una arquitectura distribuida para gestionar el escalado automáticamente. Datastore usa una combinación de índices y restricciones de consulta para que tus consultas se escalen en función del tamaño del conjunto de resultados, no del tamaño del conjunto de datos.
- Almacenamiento y consulta de datos flexibles. Datastore se asigna de forma natural a lenguajes de programación orientados a objetos y de scripting, y se expone a las aplicaciones a través de varios clientes. También proporciona un lenguaje de consulta similar a SQL.
- Coherencia inmediata. Datastore asegura que todas las consultas sean coherentes.
- Cifrado en reposo. Datastore cifra automáticamente todos los datos antes de que se escriban en el disco y los descifra automáticamente cuando los lee un usuario autorizado. Para obtener más información, consulta Cifrado del lado del servidor.
- Totalmente gestionado y sin periodos de inactividad programados. Google se encarga de la administración del servicio para que puedas centrarte en tu aplicación. Tu aplicación podrá seguir usando Datastore cuando el servicio reciba una actualización programada.
Comparación con bases de datos relacionales
Aunque la interfaz de Datastore tiene muchas de las mismas funciones que las bases de datos relacionales, como base de datos NoSQL, varía en la forma en que describe las relaciones entre los objetos de datos. A continuación, se muestra una comparación general de los conceptos de Datastore y de las bases de datos relacionales:
Concepto | Datastore | Firestore | Base de datos relacional |
---|---|---|---|
Categoría del objeto | Tipo | Grupo de colecciones | Tabla |
Un objeto | Entidad | Documento | Acceso |
Datos individuales de un objeto | Propiedad | Campo | Columna |
ID único de un objeto | Clave | ID de documento | Clave principal |
A diferencia de las filas de una tabla de una base de datos relacional, las entidades de Datastore del mismo tipo pueden tener propiedades diferentes, y las entidades diferentes pueden tener propiedades con el mismo nombre, pero con tipos de valor distintos. Estas características únicas implican una forma diferente de diseñar y gestionar los datos para aprovechar la capacidad de escalado automático. En concreto, Datastore se diferencia de una base de datos relacional tradicional en los siguientes aspectos importantes:
- Datastore se ha diseñado para escalarse automáticamente a conjuntos de datos muy grandes, lo que permite que las aplicaciones mantengan un rendimiento alto a medida que reciben más tráfico:
- Las operaciones de escritura del almacén de datos se pueden escalar mediante la distribución automática de los datos, según sea necesario.
- Las lecturas de Datastore se escalan porque las únicas consultas admitidas son aquellas cuyo rendimiento se escala con el tamaño del conjunto de resultados (en lugar del conjunto de datos). Esto significa que una consulta cuyo conjunto de resultados contenga 100 entidades se comportará igual tanto si busca entre 100 entidades como si lo hace entre un millón. Esta propiedad es el principal motivo por el que no se admiten algunos tipos de consulta.
- Como todas las consultas se sirven mediante índices creados previamente, los tipos de consultas que se pueden ejecutar son más restrictivos que los permitidos en una base de datos relacional con SQL. En concreto, Datastore no admite operaciones de unión, filtros de desigualdad en varias propiedades ni filtros de datos basados en los resultados de una subconsulta.
- A diferencia de las bases de datos relacionales, que aplican un esquema, Datastore no tiene esquema. No es necesario que las entidades del mismo tipo tengan un conjunto de propiedades coherente (aunque puedes aplicar este requisito en el código de tu aplicación).
¿Para qué sirve?
Datastore es ideal para aplicaciones que dependen de datos estructurados de alta disponibilidad a gran escala. Puedes usar Datastore para almacenar y consultar todos los siguientes tipos de datos:
- Catálogos de productos que proporcionan información sobre el inventario y los productos en tiempo real a un comercio.
- Perfiles de usuario que ofrecen una experiencia personalizada basada en las actividades y preferencias anteriores del usuario.
- Transacciones basadas en las propiedades ACID. Por ejemplo, transferir fondos de una cuenta bancaria a otra.
Otras opciones de almacenamiento y bases de datos
Datastore no es ideal para todos los casos prácticos. Por ejemplo, Datastore no es una base de datos relacional y no es una solución eficaz para los datos analíticos.
A continuación se indican algunos casos habituales en los que probablemente deberías considerar una alternativa a Datastore:
- Si necesitas una base de datos relacional con compatibilidad total con SQL para un sistema de procesamiento de transacciones online (OLTP), te recomendamos Cloud SQL.
- Si no necesitas compatibilidad con transacciones ACID o tus datos no están muy estructurados, considera usar Bigtable.
- Si necesitas hacer consultas interactivas en un sistema de procesamiento analítico online (OLAP), te recomendamos que uses BigQuery.
- Si necesitas almacenar blobs grandes e inmutables, como imágenes o películas de gran tamaño, considera la opción de Cloud Storage.
Para obtener más información sobre otras opciones de bases de datos, consulta la descripción general de los servicios de bases de datos.
Siguientes pasos
- Consulta cómo almacenar y consultar datos mediante la Google Cloud consola.
- Información sobre el modelo de datos de Datastore
- Ver prácticas recomendadas de Datastore