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.
Para mais informações sobre outras opções de base de dados, consulte a vista geral dos serviços de base de dados.
O que se segue?
- Saiba como armazenar e consultar dados através da Google Cloud consola
- Saiba mais acerca do modelo de dados da Datastore
- Veja as práticas recomendadas para o Datastore