Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
O Firestore no modo Datastore é um banco de dados de documentos NoSQL criado para escalonamento
automático, alto desempenho e facilidade no desenvolvimento de aplicativos. Veja os recursos do Datastore:
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 gravações. O Datastore é executado nos data centers do Google, que usam redundância para minimizar o impacto dos pontos de falha.
Grande escalonabilidade com alto desempenho. O Datastore usa uma arquitetura distribuída para gerenciar automaticamente o escalonamento. O Datastore usa uma combinação de índices e restrições de consulta para que as consultas sejam escalonadas com o tamanho do conjunto de resultados, e não com o tamanho do conjunto de dados.
Armazenamento flexível e consultas de dados. O Datastore mapeia naturalmente para linguagens de script e orientadas a objetos e é exposto a aplicativos por meio de vários clientes. Ele também oferece uma linguagem de consulta semelhante à SQL.
Consistência forte. O Datastore garante a consistência forte de todas as consultas.
Criptografia em repouso. O Datastore criptografa automaticamente todos os dados antes que eles sejam gravados no disco e descriptografa os dados automaticamente quando lidos por um usuário autorizado. Para mais informações, consulte Criptografia no servidor.
Totalmente gerenciado sem inatividade planejada. O Google lida com a administração do serviço para que você possa se concentrar no seu aplicativo. Seu aplicativo ainda poderá usar o Datastore quando o serviço receber um upgrade planejado.
Comparação com bancos de dados relacionais
A interface do Datastore tem muitos recursos semelhantes aos bancos de dados relacionais, mas como um banco de dados NoSQL, ela varia na forma como descreve as relações entre os objetos de dados. Veja a seguir uma comparação de alto nível dos conceitos do Datastore e do banco de dados relacional:
Conceito
Datastore
Firestore
Banco de dados relacional
Categoria de objeto
Tipo
Grupo de coleções
Tabela
Um objeto
Entidade
Documento
Linha
Dados individuais de um objeto
Propriedade
Campo
Coluna
Código exclusivo de um objeto
Chave
Código do documento
Chave primária
Diferentemente das linhas em uma tabela de banco de dados relacional, as entidades do Datastore do mesmo tipo podem ter propriedades diferentes, e entidades distintas podem ter propriedades com o mesmo nome, mas tipos de valores diversos. Com essas características exclusivas, há uma forma diferente de projetar e gerenciar dados para aproveitar a capacidade de escalonamento automático. Em particular, o Datastore tem diferenças marcantes de um banco de dados relacional tradicional, como, por exemplo:
O Datastore é projetado para escalonamento automático com grandes conjuntos de dados, permitindo que os aplicativos mantenham o alto desempenho conforme recebem mais tráfego:
As gravações do Datastore são escalonadas distribuindo dados automaticamente, conforme o necessário.
As leituras do Datastore são escalonadas porque as únicas consultas compatíveis são aquelas que têm o desempenho escalonado com o tamanho do conjunto de resultados (em oposição ao conjunto de dados). Isso significa que uma consulta com 100 entidades no conjunto de resultados tem o mesmo resultado de uma pesquisa com centenas ou um milhão de entidades. Essa propriedade é a principal razão de não haver suporte para alguns tipos de consultas.
Como todas as consultas são disponibilizadas por índices criados anteriormente, os tipos de consultas que podem ser executados são mais restritivos do que os permitidos em um banco de dados relacional com SQL. Em particular, o Datastore não inclui suporte para operações de junção, filtragem de desigualdade em várias propriedades ou filtragem de dados com base nos resultados de uma subconsulta.
Diferentemente dos bancos de dados relacionais que impõem um esquema, o Datastore não tem esquemas. Ele não exige que entidades do mesmo tipo tenham um conjunto consistente de propriedades, embora você tenha a opção de impor esse requisito em seu próprio código de aplicativo.
Indicações de uso
O Datastore é ideal para aplicativos que dependem de dados estruturados altamente disponíveis em escala. Use o Datastore para armazenar e consultar todos os seguintes tipos de dados:
Catálogos de produtos que oferecem detalhes de produto e inventário em tempo real para um varejista
Perfis de usuários que oferecem uma experiência personalizada com base nas preferências e atividades anteriores do usuário
Transações com base em propriedades ACID (em inglês). Por exemplo, transferência de fundos de uma conta bancária para outra
Outras opções de armazenamento e banco de dados
O Datastore não é ideal para todos os casos de uso. Por exemplo, ele não é um banco de dados relacional nem uma solução eficaz para dados analíticos.
Veja alguns cenários comuns em que você provavelmente precisa considerar uma alternativa ao Datastore:
Se você precisa de um banco de dados relacional com compatibilidade total a SQL para um sistema de processamento de transações on-line (OLTP, na sigla em inglês), use o Cloud SQL.
Se você não precisa de compatibilidade para transações de atomicidade, consistência, isolamento e durabilidade (ACID, na sigla em inglês) ou se os seus dados não são altamente estruturados, use o Bigtable.
Se você precisa de consultas interativas em um sistema de processamento analítico online (OLAP), pense em usar o BigQuery.
Se você precisa armazenar blobs grandes e imutáveis, como imagens ou filmes, pense em usar 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-09-03 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)"]]