La API de Datastore para Firestore ofrece una base de datos de documentos NoSQL creada para proporcionar ajuste de escala automático, alto rendimiento y facilidad para el desarrollo de aplicaciones.
Firestore incluye las siguientes funciones:
- 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?
- Obtén información para 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.