Visão geral da API Datastore

A API Datastore para Firestore oferece um banco de dados de documentos NoSQL criado para escalonamento automático, alto desempenho e facilidade no desenvolvimento de aplicativos.

O Firestore inclui os seguintes recursos:

  • Transações atômicas: executam um conjunto de operações em que todas são bem-sucedidas ou nenhuma ocorre.
  • Alta disponibilidade de leituras e gravações: os bancos de dados são executados em data centers do Google que usam redundância para minimizar o impacto de pontos de falha.
  • Grande escalonabilidade com alto desempenho: uma arquitetura distribuída gerencia automaticamente o escalonamento e mantém o desempenho sob cargas pesadas.
  • Armazenamento e consulta flexíveis de dados: o modelo de dados de documentos é mapeado naturalmente para linguagens orientadas a objetos e de script, e é exposto a aplicativos por vários clientes. A API compatível com o Datastore do Firestore também oferece uma linguagem de consulta semelhante à SQL.
  • Consistência forte: as consultas são altamente consistentes.
  • Criptografia em repouso: os dados são criptografados automaticamente antes de serem gravados em disco e descriptografados automaticamente quando lidos por um usuário autorizado. Para mais informações, consulte Criptografia do lado do 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 Firestore 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. Você pode usar essas características exclusivas para projetar e gerenciar dados e escalonar automaticamente.

Como todas as consultas são disponibilizadas por índices criados anteriormente, os tipos de consultas que a API Datastore pode executar 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. Se o aplicativo exigir recursos de consulta avançados, incluindo junções e subconsultas, use a API nativa do Firestore ou a API compatível com o MongoDB.

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.

Outras opções de armazenamento e banco de dados

A API compatível com o Datastore do Firestore foi criada para oferecer suporte a aplicativos legados do App Engine. Se você estiver procurando um banco de dados NoSQL orientado a documentos para um novo aplicativo, recomendamos usar uma das API Firestore em vez da API Datastore para aproveitar recursos mais avançados. Saiba mais sobre suas opções.

O Firestore é um banco de dados de documentos altamente escalonável, mas pode não ser ideal para todos os casos de uso. Por exemplo, talvez não seja a melhor substituição para um banco de dados relacional. Confira alguns cenários comuns em que você pode considerar um banco de dados alternativo:

  • 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.

Para saber mais sobre outras opções de bancos de dados, consulte a visão geral dos serviços de bancos de dados.

A seguir

Como se conectar ao Datastore com o App Engine

O ambiente de execução padrão do Go no App Engine é conectado ao Datastore usando a API Datastore para Go. Para uma lista completa do conteúdo do pacote datastore, consulte a referência do pacote datastore.