Como escolher entre o modo nativo e o modo Datastore
Ao criar um novo banco de dados do Firestore, é possível configurar a instância do banco de dados para ser executada no modo Datastore, o que torna o banco de dados compatível com versões anteriores do Datastore. Nesta página, você entenderá a diferença entre os modos de banco de dados do Firestore: nativo e Datastore.
Firestore no modo nativo
O Firestore é a próxima grande versão do Datastore, além de ser a reformulação do branding do produto. Unindo o melhor do Datastore e do Firebase Realtime Database, o Firestore consiste em um banco de dados de documentos NoSQL criado para oferecer escalonamento automático, alto desempenho e facilidade no desenvolvimento de aplicativos.
O Firestore apresenta os seguintes recursos:
- uma camada de armazenamento de consistência forte;
- um modelo de dados de coleta e documento;
- atualizações em tempo real;
- bibliotecas de cliente móveis e da Web.
O Firestore é compatível com versões anteriores do Datastore, mas o novo modelo de dados, as atualizações em tempo real e os recursos das bibliotecas de cliente da Web e de dispositivos móveis não são. Para acessar todos os recursos do Firestore, use o Firestore no modo nativo.
Firestore no modo Datastore
O Firestore no modo Datastore mantém o comportamento do sistema do Datastore, mas tem acesso à camada de armazenamento do Firestore e remove as seguintes limitações do Datastore:
- Todas as consultas do Datastore agora são altamente consistentes, a menos que você solicite explicitamente a consistência posterior.
- As consultas em transações não precisam mais ser consultas de ancestral.
- As transações não estão mais limitadas a 25 grupos de entidades.
- As gravações em um grupo de entidades não estão mais limitadas a uma por segundo.
O modo Datastore desativa os recursos do Firestore que não são compatíveis com o Datastore:
- O projeto aceitará solicitações da API Datastore e negará as solicitações da API Firestore.
- O projeto usará índices do Datastore em vez de índices do Firestore.
- É possível usar as bibliotecas de cliente do Datastore com este projeto, mas não as do Firestore.
- Os recursos em tempo real do Firestore não estarão disponíveis.
- No console do Google Cloud, o banco de dados vai usar o visualizador do Datastore.
Preços e locais
Os bancos de dados do modo nativo e do modo Datastore usam a mesma estrutura de preços e estão disponíveis nos mesmos locais. Os preços e os locais estão descritos em detalhes nestas páginas:
Firestore no modo nativo
Firestore no modo Datastore
Escolher um modo de banco de dados
Ao criar um novo banco de dados do Firestore, selecione um modo de banco de dados. É possível ter bancos de dados no modo Datastore e no modo nativo no mesmo projeto, mas cada banco de dados será de um único tipo. Recomendamos o seguinte ao escolher um modo de banco de dados:
Use o Firestore no modo Datastore para novos projetos de servidor.
O Firestore no modo Datastore permite o uso de arquiteturas de servidores do Datastore estabelecidas enquanto remove as limitações básicas do Datastore. O modo Datastore pode ser escalonado automaticamente para milhões de gravações por segundo.
Use o Firestore no modo nativo para novos aplicativos da Web e de dispositivos móveis.
O Firestore oferece bibliotecas de clientes para dispositivos móveis e Web com recursos off-line e em tempo real. O modo nativo pode ser escalonado automaticamente para milhões de clientes simultâneos.
Comparação do recurso
A tabela a seguir compara o comportamento do sistema nos dois modos de banco de dados:
Firestore no Modo nativo |
Firestore no Modo Datastore |
|
---|---|---|
Modelo de dados | Banco de dados de documentos organizado em documentos e coleções. | Entidades organizadas em tipos e grupos de entidades. |
Camada de Armazenamento | Uma camada de armazenamento de consistência forte. | Uma camada de armazenamento de consistência forte. |
Consultas e transações |
|
|
Suporte para API Datastore v1 | Não, as solicitações são negadas | Sim |
Suporte para API Firestore v1 | Sim | Não, as solicitações são negadas |
Atualizações em tempo real |
Ao ouvir um documento ou conjunto de documentos, seus clientes são notificados sobre quaisquer alterações de dados e recebem o conjunto de dados mais recente. |
Incompatível |
Permanência de dados off-line | As bibliotecas móveis e de cliente da Web são compatíveis com a permanência de dados offline. | Incompatível |
Bibliotecas cliente | Bibliotecas de cliente do Firestore:
|
Bibliotecas de cliente do Datastore:
|
Segurança |
|
O IAM gerencia o acesso ao banco de dados |
Desempenho | Escalona automaticamente para milhões de clientes simultâneos. | Escalona automaticamente para milhões de gravações por segundo. |
SLA | Firestore SLA | Firestore SLA |
Locais |
Os dois modos são compatíveis com os mesmos locais. Para conferir uma lista detalhada de locais, consulte as seguintes páginas: |
|
Preços |
Os dois modos usam a mesma estrutura de preços para operações de entidade e de documento. O Firestore no modo Datastore não cobra por operações pequenas. Os dois modos usam a mesma estrutura de preços para dados armazenados e largura de banda da rede. Para mais detalhes sobre preços, consulte as seguintes páginas: |
|
Console | Console do Firebase e visualizador do Firestore no console do Google Cloud | Leitor do Datastore no console do Google Cloud |
Namespaces | Incompatível | Namespaces compatíveis |
Integração com a biblioteca de cliente do App Engine | Incompatível com os ambientes de execução padrão do App Engine em Python 2.7 e PHP 5.5 Compatível com o ambiente padrão do App Engine e com todos os outros ambientes de execução Compatível com o ambiente flexível do App Engine e com todos os ambientes de execução |
Compatível em qualquer tempo de execução |
criar um banco de dados;
É possível criar um novo banco de dados do Firestore no modo nativo ou no modo Datastore. Essa escolha não depende dos modos de nenhum banco de dados existente no seu projeto.
Consulte Criar e gerenciar bancos de dados para mais informações.Alternar entre o modo nativo e o modo Datastore
Se o banco de dados estiver vazio, você poderá alternar entre o modo nativo e o Datastore.
Mude o banco de dados para o Modo nativo:
gcloud
Use o comando gcloud firestore databases update para mudar o banco de dados para o modo nativo.
gcloud firestore databases update --type=firestore-native --database='DATABASE_ID'
Substitua DATABASE_ID pelo ID do seu banco de dados.
rest
curl --request PATCH \
--header "Authorization: Bearer "$(gcloud auth print-access-token) \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"type":"FIRESTORE_NATIVE"}' \
"https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/DATABASE_ID?updateMask=type"
Substitua:
- PROJECT_ID: o ID do projeto;
- DATABASE_ID: o ID do banco de dados
Mude o banco de dados para o modo Datastore:
gcloud
Use o comando gcloud firestore databases update para mudar o banco de dados para o modo Datastore.
gcloud firestore databases update --type=datastore-mode --database='DATABASE_ID'
Substitua DATABASE_ID pelo ID do seu banco de dados.
rest
curl --request PATCH \
--header "Authorization: Bearer "$(gcloud auth print-access-token) \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{"type":"DATASTORE_MODE"}' \
"https://firestore.googleapis.com/v1/projects/PROJECT_ID/databases/DATABASE_ID?updateMask=type"
Substitua:
- PROJECT_ID: o ID do projeto;
- DATABASE_ID: o ID do banco de dados