Firestore en modo Datastore (Datastore) es una base de datos de documentos NoSQL creada para proporcionar ajuste de escala automático, alto rendimiento y facilidad de desarrollo de aplicaciones. Entre las características de Datastore, se incluyen las siguientes:
- Transacciones atómicas. Datastore puede ejecutar un conjunto de operaciones, de las cuales se ejecutan todas correctamente o ninguna de ellas.
- Alta disponibilidad de lecturas y escrituras. Datastore se ejecuta en los centros de datos de Google, que usan la redundancia para reducir el impacto de los puntos de falla.
- Escalabilidad masiva con alto rendimiento. Datastore utiliza una arquitectura distribuida para administrar el escalamiento de forma automática. Datastore usa una combinación de índices y restricciones de consulta para que tus consultas se escalen con el tamaño de tu conjunto de resultados y no con el tamaño de tu conjunto de datos.
- Almacenamiento flexible y consulta de datos. Datastore guarda una correlación natural con los lenguajes orientados a objetos y de programación, y se expone a las aplicaciones a través de varios clientes. También proporciona un lenguaje de consulta similar a SQL.
- Coherencia sólida Datastore garantiza que todas las consultas tengan una coherencia sólida.
- Encriptación en reposo. Datastore encripta de forma automática todos los datos antes de que se escriban en el disco y los desencripta automáticamente cuando los lee un usuario autorizado. Para obtener más información, consulta Encriptación en el lado del 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 Datastore 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. Estas características únicas implican una forma diferente de diseñar y administrar datos para aprovechar la capacidad de escalar automáticamente. En particular, Datastore difiere de una base de datos relacional tradicional en los siguientes aspectos importantes:
- Datastore está diseñado para escalar de forma automática a conjuntos de datos muy grandes, lo que permite a las aplicaciones mantener un alto rendimiento cuando reciben más tráfico.
- Las escrituras de Datastore se escalan 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 (a diferencia del conjunto de datos). Esto significa que una consulta cuyo conjunto de resultados contenga 100 entidades tendrá el mismo rendimiento si busca entre cien entidades o entre un millón. Esta propiedad es la razón principal por la que algunos tipos de consultas no son compatibles.
- Debido a que índices ya compilados entregan todas las consultas, existen más limitaciones en cuanto a los tipos de consultas que pueden ejecutarse en comparación con 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.
- 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).
Usos ideales
Datastore es ideal para aplicaciones que dependen de datos estructurados con alta disponibilidad a gran escala. Puedes usar Datastore para almacenar y consultar los siguientes tipos de datos:
- Catálogos de productos que proporcionan un inventario en tiempo real y detalles de productos de un minorista
- Perfiles de usuario que ofrecen una experiencia personalizada basada en las actividades y preferencias pasadas de los usuarios
- Transacciones basadas en propiedades ACID. Por ejemplo, la transferencia de fondos de una cuenta bancaria a otra.
Otras opciones de almacenamiento y base de datos
Datastore no es ideal para todos los casos de uso. Por ejemplo, Datastore no es una base de datos relacional ni una solución eficaz para datos estadísticos.
Estas son algunas situaciones comunes en las que es posible que debas considerar una alternativa a Datastore:
- 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?
- Obtén información sobre cómo almacenar y consultar datos con la consola de Google Cloud
- Obtén más información sobre el modelo de datos de Datastore
- Consulta las prácticas recomendadas para Datastore
Conéctate a Datastore con App Engine
El entorno de ejecución estándar de Go en App Engine se conecta a Datastore mediante la API de Datastore para Go. Para obtener una lista completa del contenido del paquete datastore
, consulta la referencia del paquete datastore
.
No puedes usar la biblioteca cliente de Cloud Datastore con las aplicaciones de Go en el entorno estándar de App Engine.