O Firestore no modo Datastore (Datastore) é um banco de dados de documentos NoSQL criado para oferecer 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 de acordo 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
Embora a interface do Datastore tenha muitos recursos semelhantes aos bancos de dados relacionais, como um banco de dados NoSQL, ela varia na forma como descreve as relações entre os objetos de dados. Veja 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ção | 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 |
Ao contrário das linhas em uma tabela de banco de dados relacional, entidades do Datastore do mesmo tipo podem ter propriedades diferentes, e entidades diferentes podem ter propriedades com o mesmo nome, mas tipos de valor diferentes. Essas características exclusivas implicam uma maneira diferente de projetar e gerenciar dados para aproveitar a capacidade de escalonamento automático. Em particular, o Datastore difere de um banco de dados relacional tradicional das seguintes maneiras importantes:
- O Datastore foi projetado para escalonamento automático para conjuntos de dados muito grandes, permitindo que os aplicativos mantenham o alto desempenho à medida que 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.
- Ao contrário dos bancos de dados relacionais que aplicam 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. Por exemplo, a 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 suporte para transações ACID ou se os seus dados não são altamente estruturados, considere 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
- Saiba como armazenar e consultar dados usando o console do Google Cloud
- Saiba mais sobre o modelo de dados do Datastore
- Confira as práticas recomendadas do Datastore