Apa perbedaan antara Google Cloud Bigtable dan Google Cloud Datastore / App Engine datastore, dan apa keuntungan / kerugian praktis utama? AFAIK Cloud Datastore dibangun di atas Bigtable.
Apa perbedaan antara Google Cloud Bigtable dan Google Cloud Datastore / App Engine datastore, dan apa keuntungan / kerugian praktis utama? AFAIK Cloud Datastore dibangun di atas Bigtable.
Jawaban:
Berdasarkan pengalaman dengan Datastore dan membaca dokumen Bigtable , perbedaan utamanya adalah:
Cloud Bigtable dirancang untuk perusahaan besar dan perusahaan yang sering kali memiliki kebutuhan data yang lebih besar dengan beban kerja backend yang kompleks.
Bigtable dan Datastore sangat berbeda. Ya, datastore dibangun di atas Bigtable, tetapi itu tidak membuatnya menjadi seperti itu. Ini seperti mengatakan bahwa mobil dibangun di atas roda, sehingga mobil tidak jauh berbeda dengan roda.
Bigtable dan Datastore memberikan model data yang sangat berbeda dan semantik yang sangat berbeda dalam cara data diubah.
Perbedaan utamanya adalah Datastore menyediakan transaksi ACID seperti database SQL pada subset data yang dikenal sebagai grup entitas (meskipun bahasa kueri GQL jauh lebih ketat daripada SQL). Bigtable benar-benar NoSQL dan dilengkapi dengan jaminan yang jauh lebih lemah.
Jika Anda membaca makalah, BigTable adalah ini dan Datastore adalah MegaStore . Datastore adalah BigTable plus replikasi, transaksi, dan indeks. (dan jauh lebih mahal).
Saya akan mencoba merangkum semua jawaban di atas plus apa yang diberikan dalam Big Data Coursea Google Cloud Platform dan Machine Learning Fundamentals
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
| 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 | |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
Titik relatif kecil untuk mempertimbangkan, per November 2016, bigtable python klien perpustakaan masih dalam Alpha, yang berarti perubahan masa depan mungkin tidak kompatibel. Selain itu, pustaka python bigtable tidak kompatibel dengan lingkungan standar App Engine. Anda harus menggunakan yang fleksibel.
Ini mungkin satu lagi perbedaan utama antara Google Cloud Bigtable dan Google Cloud Datastore bersama dengan layanan lainnya. Konten yang ditampilkan pada gambar di bawah ini juga dapat membantu Anda dalam memilih layanan yang tepat.
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.
Datastore lebih siap untuk aplikasi dan cocok untuk berbagai layanan, terutama untuk layanan mikro.
Teknologi yang mendasari Datastore adalah Big Table, jadi Anda bisa membayangkan Big Table lebih canggih.
Datastore hadir dengan operasi gratis 20K per hari, Anda dapat mengharapkan untuk meng-host server dengan DB yang andal dengan biaya NOL.
Anda juga dapat melihat pustaka ORM Datastore ini, ia hadir dengan banyak fitur hebat https://www.npmjs.com/package/ts-datastore-orm