В чем разница между Google Cloud Bigtable и хранилищем данных Google Cloud Datastore / App Engine и каковы основные практические преимущества / недостатки? AFAIK Cloud Datastore построен на основе Bigtable.
В чем разница между Google Cloud Bigtable и хранилищем данных Google Cloud Datastore / App Engine и каковы основные практические преимущества / недостатки? AFAIK Cloud Datastore построен на основе Bigtable.
Ответы:
Основываясь на опыте работы с Datastore и чтении документации Bigtable , основные отличия заключаются в следующем:
Cloud Bigtable разработан для крупных компаний и предприятий, которым часто требуются большие объемы данных со сложными внутренними рабочими нагрузками.
Bigtable и Datastore очень разные. Да, хранилище данных построено на основе Bigtable, но это ни на что не похоже. Это все равно что сказать, что автомобиль построен на колесах, поэтому автомобиль мало чем отличается от колес.
Bigtable и Datastore предоставляют очень разные модели данных и очень разную семантику в том, как данные изменяются.
Основное отличие состоит в том, что хранилище данных предоставляет ACID-транзакции, подобные SQL-базе данных, для подмножеств данных, известных как группы сущностей (хотя язык запросов GQL гораздо более строг, чем SQL). Bigtable строго NoSQL и имеет гораздо более слабые гарантии.
Если вы читаете газеты, BigTable является это и Datastore является Мегамаркет . Хранилище данных - это BigTable плюс репликация, транзакция и индекс. (и намного дороже).
Я попытаюсь обобщить все вышеперечисленные ответы, а также то, что дается в 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 | |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
Относительно второстепенный момент, который следует учитывать, поскольку по состоянию на ноябрь 2016 года клиентская библиотека bigtable python все еще находится в альфа-версии, что означает, что будущие изменения могут быть несовместимы с предыдущими версиями . Кроме того, библиотека python bigtable несовместима со стандартной средой App Engine. Вы должны использовать гибкий.
Это может быть еще одним набором ключевых отличий между Google Cloud Bigtable и Google Cloud Datastore, а также другими сервисами. Содержимое, показанное на изображении ниже, также может помочь вам в выборе правильной услуги.
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 больше готов к приложениям и подходит для широкого спектра услуг, особенно для микросервисов.
В основе Datastore лежит технология Big Table, так что вы можете себе представить, что Big Table более мощный.
Datastore предлагает 20 000 бесплатных операций в день, вы можете рассчитывать на размещение сервера с надежной БД с НУЛЕВОЙ стоимостью.
Вы также можете ознакомиться с этой библиотекой ORM хранилища данных, она имеет множество замечательных функций https://www.npmjs.com/package/ts-datastore-orm