Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
O Firestore no modo Datastore (Datastore) é uma base de dados de documentos NoSQL criada para escala automática, elevado desempenho e facilidade de programação de aplicações. As funcionalidades do Datastore incluem:
Transações atómicas. O Datastore pode executar um conjunto de operações em que todas são bem-sucedidas ou nenhuma ocorre.
Alta disponibilidade de leituras e escritas. O Datastore é executado nos centros de dados da Google, que usam a redundância para minimizar o impacto dos pontos de falha.
Escalabilidade em massa com elevado desempenho. O Datastore usa uma arquitetura distribuída para gerir automaticamente a escalabilidade. O Datastore usa uma combinação de índices e restrições de consultas para que as suas consultas se ajustem à dimensão do seu conjunto de resultados e não à dimensão do seu conjunto de dados.
Armazenamento e consulta flexíveis de dados. O Datastore mapeia naturalmente para linguagens orientadas para objetos e de scripting, e é exposto a aplicações através de vários clientes. Também oferece uma linguagem de consulta semelhante a SQL.
Consistência forte. O Datastore garante que todas as consultas são fortemente consistentes.
Encriptação em repouso. O Datastore encripta automaticamente todos os dados antes de serem escritos no disco e desencripta automaticamente os dados quando são lidos por um utilizador autorizado. Para mais informações, consulte o artigo Encriptação do lado do servidor.
Totalmente gerido sem períodos de inatividade planeados. A Google trata da administração do serviço para que se possa concentrar na sua aplicação. A sua aplicação pode continuar a usar o Datastore quando o serviço receber uma atualização planeada.
Comparação com bases de dados relacionais
Embora a interface do Datastore tenha muitas das mesmas funcionalidades
semelhantes às bases de dados relacionais, como uma base de dados NoSQL, varia na forma como
descreve as relações entre objetos de dados. Segue-se uma comparação de nível elevado
dos conceitos do Datastore e da base de dados relacional:
Conceito
Armazenamento de dados
Firestore
Base de dados relacional
Categoria do objeto
Tipo
Grupo de coleções
Tabela
Um objeto
Entidade
Documento
Linha
Dados individuais de um objeto
Propriedade
Campo
Coluna
ID exclusivo de um objeto
Chave
ID do documento
Chave principal
Ao contrário das linhas numa tabela de base de dados relacional, as entidades do Datastore do mesmo tipo podem ter propriedades diferentes, e entidades diferentes podem ter propriedades com o mesmo nome, mas tipos de valores diferentes. Estas caraterísticas únicas implicam uma forma diferente de conceber e gerir dados para tirar partido da capacidade de escalabilidade automática. Em particular, o Datastore difere de uma base de dados relacional tradicional das seguintes formas importantes:
O Datastore foi concebido para ser dimensionado automaticamente para conjuntos de dados muito grandes, o que permite que as aplicações mantenham um elevado desempenho à medida que recebem mais tráfego:
As escritas do Datastore são dimensionadas através da distribuição automática de dados, conforme necessário.
As leituras do Datastore são escaláveis porque as únicas consultas suportadas são aquelas cujo desempenho é escalável com a dimensão do conjunto de resultados (em oposição ao conjunto de dados). Isto significa que uma consulta cujo conjunto de resultados contenha 100 entidades tem o mesmo desempenho, quer pesquise cem entidades ou um milhão. Esta propriedade é o principal motivo pelo qual alguns tipos de consultas não são suportados.
Uma vez que todas as consultas são publicadas por índices criados anteriormente, os tipos de consultas que podem ser executados são mais restritivos do que os permitidos numa base de dados relacional com SQL. Em particular, o Datastore não inclui suporte para operações de junção, filtragem de desigualdades em várias propriedades ou filtragem de dados com base nos resultados de uma subconsulta.
Ao contrário das bases de dados relacionais que aplicam um esquema, o Datastore não tem esquema. Não requer que as entidades do mesmo tipo tenham um conjunto consistente de propriedades (embora possa optar por aplicar tal requisito no seu próprio código de aplicação).
Para que é adequado
O Datastore é ideal para aplicações que dependem de dados estruturados de alta disponibilidade em grande escala. Pode usar o Datastore para armazenar e consultar todos os seguintes tipos de dados:
Catálogos de produtos que fornecem inventário em tempo real e detalhes dos produtos para um retalhista.
Perfis de utilizadores que oferecem uma experiência personalizada com base nas atividades e preferências anteriores do utilizador.
Transações baseadas em propriedades ACID. Por exemplo, transferir fundos de uma conta bancária para outra.
Outras opções de armazenamento e base de dados
O Datastore não é ideal para todos os exemplos de utilização. Por exemplo, o Datastore não é uma base de dados relacional e não é uma solução eficaz para dados analíticos.
Seguem-se alguns cenários comuns em que deve considerar uma alternativa ao Datastore:
Se precisar de uma base de dados relacional com suporte SQL completo para um sistema de processamento de transações online (OLTP), considere o Cloud SQL.
Se não precisar de apoio técnico para transações ACID ou se os seus dados não forem altamente estruturados, considere usar o Bigtable.
Se precisar de consultas interativas num sistema de processamento analítico online (OLAP), considere o BigQuery.
Se precisar de armazenar grandes blobs imutáveis, como imagens ou filmes grandes, considere o Cloud Storage.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-21 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)"]]