Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
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.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-09-05 (UTC)"],[[["\u003cp\u003eDatastore is a NoSQL document database designed for automatic scaling, high performance, and easy application development, offering features like atomic transactions and high availability.\u003c/p\u003e\n"],["\u003cp\u003eUnlike relational databases, Datastore is schemaless, automatically scales to large datasets, and supports queries that scale with the result set size, not the dataset size.\u003c/p\u003e\n"],["\u003cp\u003eDatastore excels in applications requiring highly available structured data at scale, such as product catalogs, user profiles, and ACID-compliant transactions.\u003c/p\u003e\n"],["\u003cp\u003eDatastore is not ideal for relational database needs, analytic data, or storing large, immutable blobs; alternatives like Cloud SQL, Bigtable, BigQuery, and Cloud Storage are recommended for these use cases.\u003c/p\u003e\n"],["\u003cp\u003eDatastore provides a fully managed service, encrypts data at rest, and offers strong consistency across all queries.\u003c/p\u003e\n"]]],[],null,["# Datastore Overview\n\nFirestore in Datastore mode (Datastore) is a NoSQL document database built for automatic scaling, high performance,\nand ease of application development. Datastore features include:\n\n- **Atomic transactions**. Datastore can execute a set of operations where either all succeed, or none occur.\n- **High availability of reads and writes**. Datastore runs in Google data centers, which use redundancy to minimize impact from points of failure.\n- **Massive scalability with high performance**. Datastore uses a distributed architecture to automatically manage scaling. Datastore uses a mix of indexes and query constraints so your queries scale with the size of your result set, not the size of your dataset.\n- **Flexible storage and querying of data** . Datastore maps naturally to object-oriented and scripting languages, and is exposed to applications through multiple clients. It also provides a SQL-like [query language](/datastore/docs/apis/gql/gql_reference).\n- **Strong consistency**. Datastore ensures that all queries are strongly consistent.\n- **Encryption at rest** . Datastore automatically encrypts all data before it is written to disk and automatically decrypts the data when read by an authorized user. For more information, see [Server-Side Encryption](/datastore/docs/concepts/encryption-at-rest).\n- **Fully managed with no planned downtime**. Google handles the administration of the service so you can focus on your application. Your application can still use Datastore when the service receives a planned upgrade.\n\nComparison with relational databases\n------------------------------------\n\nWhile the Datastore interface has many of the same features\nsimilar to relational databases, as a NoSQL database, it varies in how it\ndescribes the relationships between data objects. Here's a high-level comparison\nof Datastore and relational database concepts:\n\nUnlike rows in a relational database table, Datastore entities of\nthe same kind can have different properties, and different entities can have\nproperties with the same name but different value types. These unique\ncharacteristics imply a different way of designing and managing data to take\nadvantage of the ability to scale automatically. In particular,\nDatastore differs from a traditional relational database in the\nfollowing important ways:\n\n- Datastore is designed to automatically scale to very large data sets, allowing applications to maintain high performance as they receive more traffic:\n - Datastore writes scale by automatically distributing data as necessary.\n - Datastore reads scale because the only queries supported are those whose performance scales with the size of the result set (as opposed to the data set). This means that a query whose result set contains 100 entities performs the same whether it searches over a hundred entities or a million. This property is the key reason some types of queries are not supported.\n- Because all queries are served by previously built indexes, the types of queries that can be executed are more restrictive than those allowed on a relational database with SQL. In particular, Datastore does not include support for join operations, inequality filtering on multiple properties, or filtering on data based on results of a subquery.\n- Unlike relational databases which enforce a schema, Datastore is schemaless. It doesn't require entities of the same kind to have a consistent set of properties (although you can choose to enforce such a requirement in your own application code).\n\nWhat it's good for\n------------------\n\nDatastore is ideal for applications that rely on highly available structured data at scale. You can use Datastore to store and query all of the following types of data:\n\n- Product catalogs that provide real-time inventory and product details for a retailer.\n- User profiles that deliver a customized experience based on the user's past activities and preferences.\n- Transactions based on [ACID](https://en.wikipedia.org/wiki/ACID) properties. For example, transferring funds from one bank account to another.\n\nOther storage and database options\n----------------------------------\n\nDatastore is not ideal for every use case. For example, Datastore is not a relational database, and it is not an effective solution for analytic data.\n\nHere are some common scenarios where you should probably consider an alternative to Datastore:\n\n- If you need a relational database with full SQL support for an online transaction processing (OLTP) system, consider [Cloud SQL](/sql).\n- If you don't require support for ACID transactions or if your data is not highly structured, consider [Bigtable](/bigtable).\n- If you need interactive querying in an online analytical processing (OLAP) system, consider [BigQuery](/bigquery).\n- If you need to store large immutable blobs, such as large images or movies, consider [Cloud Storage](/storage).\n\n\nFor more information about other database options, see the [overview\nof database services](/products/databases).\n\nWhat's next\n-----------\n\n- [Learn how to store and query data using the Google Cloud console](/datastore/docs/store-query-data)\n- [Learn about the Datastore data model](/datastore/docs/concepts/entities)\n- [View best practices for Datastore](/datastore/docs/best-practices)"]]