Qual é a diferença entre o Google Cloud Bigtable e o armazenamento de dados do Google Cloud Datastore / App Engine e quais são as principais vantagens / desvantagens práticas? O AFAIK Cloud Datastore é construído sobre o Bigtable.
Qual é a diferença entre o Google Cloud Bigtable e o armazenamento de dados do Google Cloud Datastore / App Engine e quais são as principais vantagens / desvantagens práticas? O AFAIK Cloud Datastore é construído sobre o Bigtable.
Respostas:
Com base na experiência com o Datastore e na leitura dos documentos do Bigtable , as principais diferenças são:
O Cloud Bigtable foi projetado para empresas e empresas maiores, que geralmente têm necessidades de dados maiores com cargas de trabalho complexas de back-end.
Bigtable e Datastore são extremamente diferentes. Sim, o armazenamento de dados é construído sobre o Bigtable, mas isso não torna nada parecido. É como dizer que um carro é construído sobre rodas e, portanto, um carro não é muito diferente das rodas.
Bigtable e Datastore fornecem modelos de dados muito diferentes e semânticas muito diferentes na forma como os dados são alterados.
A principal diferença é que o Datastore fornece transações ACID do tipo banco de dados SQL em subconjuntos de dados conhecidos como grupos de entidades (embora a linguagem de consulta GQL seja muito mais restritiva que SQL). Bigtable é estritamente NoSQL e vem com garantias muito mais fracas.
Se você lê artigos, BigTable é este e Datastore é MegaStore . O armazenamento de dados é BigTable mais replicação, transação e índice. (e é muito mais caro).
Tentarei resumir todas as respostas acima, além do que é dado nos Fundamentos de Big Data e Machine Learning do Coursea Google Cloud Platform
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
| Category | BigTable | Datastore | |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
| Technology | Based on HBase(uses HBase API) | Uses BigTable itself | |
| ---------------- | | | |
| Access Mataphor | Key/Value (column-families) like Hbase | Persistent hashmap | |
| ---------------- | | | |
| Read | Scan Rows | Filter Objects on property | |
| ---------------- | | | |
| Write | Put Row | Put Object | |
| ---------------- | | | |
| Update Granularity | can't update row ( you should write a new row, can't update one) | can update attribute | |
| ---------------- | | | |
| Capacity | Petabytes | Terbytes | |
| ---------------- | | | |
| Index | Index key only (you should properly design the key) | You can index any property of the object | |
| Usage and use cases | High throughput, scalable flatten data | Structured data for Google App Engine | |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
Um ponto relativamente menor a considerar, a partir de novembro de 2016, a biblioteca cliente bigtable python ainda está em Alpha, o que significa que a mudança futura pode não ser compatível com versões anteriores. Além disso, a biblioteca python bigtable não é compatível com o ambiente padrão do App Engine. Você tem que usar o flexível.
Esse pode ser outro conjunto de diferenças importantes entre o Google Cloud Bigtable e o Google Cloud Datastore, além de outros serviços. O conteúdo mostrado na imagem abaixo também pode ajudá-lo a selecionar o serviço certo.
Cloud Datastore is a highly-scalable NoSQL database for your applications.
Like Cloud Bigtable, there is no need for you to provision database instances.
Cloud Datastore uses a distributed architecture to automatically manage
scaling. Your queries scale with the size of your result set, not the size of your
data set.
Cloud Datastore runs in Google data centers, which use redundancy to
minimize impact from points of failure. Your application can still use Cloud
Datastore when the service receives a planned upgrade.
Choose Bigtable if the data is:
Big
● Large quantities (>1 TB) of semi-structured or structured data
Fast
● Data is high throughput or rapidly changing
NoSQL
● Transactions, strong relational semantics not required
And especially if it is:
Time series
● Data is time-series or has natural semantic ordering
Big data
● You run asynchronous batch or real-time processing on the data
Machine learning
● You run machine learning algorithms on the data
Bigtable is designed to handle massive workloads at consistent low latency
and high throughput, so it's a great choice for both operational and analytical
applications, including IoT, user analytics, and financial data analysis.
O armazenamento de dados está mais pronto para aplicativos e adequado para uma ampla gama de serviços, especialmente para microsserviços.
A tecnologia subjacente do Datastore é Big Table, portanto, você pode imaginar que o Big Table é mais poderoso.
O armazenamento de dados vem com operação gratuita de 20 mil por dia. Você pode hospedar um servidor com banco de dados confiável com custo zero.
Você também pode verificar esta biblioteca ORM do Datastore, que vem com muitos recursos excelentes https://www.npmjs.com/package/ts-datastore-orm