В чем разница между Google Cloud Bigtable и хранилищем данных Google Cloud Datastore/App Engine, и каковы основные практические преимущества/недостатки? AFAIK Cloud Datastore построен поверх Bigtable.
Google Cloud Bigtable vs Google Cloud Datastore
Ответ 1
Основываясь на опыте работы с Datastore и прочтении документации Bigtable, основные различия заключаются в следующем:
- Изначально Bigtable был разработан для совместимости с HBase, но теперь имеет клиентские библиотеки на нескольких языках. Изначально Datastore был больше ориентирован на разработчиков веб-приложений на Python/Java/Go (первоначально App Engine)
 - Bigtable "немного больше IaaS", чем Datastore, поскольку он не "просто существует", а требует, чтобы был настроен кластер.
 - Bigtable поддерживает только один индекс - "ключ строки" (ключ сущности в хранилище данных)
- Это означает, что запросы находятся на ключе, в отличие от индексированных свойств хранилища данных
 
 - Bigtable поддерживает атомарность только в одной строке - нет транзакций
 - Мутации и удаления, по-видимому, не являются атомарными в Bigtable, тогда как Datastore обеспечивает возможную и строгую согласованность, в зависимости от метода чтения/запроса
 - Модель биллинга очень отличается:
- Сбор данных в хранилище данных за операции чтения/записи, хранение и пропускную способность
 - Bigtable взимает плату за "узлы", хранилище и пропускную способность
 
 
Ответ 2
Bigtable оптимизирован для больших объемов данных и аналитики
- Cloud Bigtable не реплицирует данные по зонам или регионам (данные в одном кластере реплицируются и долговечны), что означает, что Bigtable быстрее и больше эффективны, а затраты значительно ниже, хотя он менее прочный и доступен в конфигурации по умолчанию.
 - Он использует HBase API - нет риска блокировки или новых парадигм для изучения.
 - Он интегрирован с инструментами Big Data с открытым исходным кодом, что означает, что вы можете анализировать данные, хранящиеся в Bigtable, в большинстве используемых клиентами инструментов аналитики (Hadoop, Spark и т.д.).
 - Bigtable индексируется одним Row Key
 - Bigtable находится в одной зоне
 
Cloud Bigtable предназначен для крупных компаний и предприятий, которые часто имеют большие потребности в данных со сложными рабочими нагрузками.
Datastore оптимизирован для обслуживания высокоценных транзакционных данных для приложений
- Cloud Datastore имеет чрезвычайно высокую доступность с репликацией и синхронизацией данных.
 - Datastore, благодаря своей универсальности и высокой доступности, дороже.
 - Datastore медленнее записывает данные из-за синхронной репликации
 - Datastore имеет гораздо лучшую функциональность вокруг транзакций и запросов (поскольку существуют вторичные индексы)
 
Ответ 3
Bigtable и Datastore чрезвычайно разные. Да, хранилище данных построено поверх Bigtable, но это не делает ничего подобного. Это похоже на то, что автомобиль построен поверх колес, и поэтому автомобиль не сильно отличается от колес.
Bigtable и Datastore предоставляют очень разные модели данных и очень разные семантики в том, как данные изменяются.
Основное отличие заключается в том, что Datastore предоставляет транзакции ACID, подобные SQL-базе данных, на подмножествах данных, известных как группы сущностей (хотя язык запросов GQL гораздо более ограничительный, чем SQL). Bigtable строго NoSQL и имеет гораздо более слабые гарантии.
Ответ 4
Если вы читаете газеты, BigTable является это и Datastore является Мегамаркет. Хранилище данных - это BigTable плюс репликация, транзакция и индекс. (и намного дороже).
Ответ 5
Я постараюсь обобщить все приведенные выше ответы, а также то, что дано в 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    |  |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+
  		Ответ 6
Относительно небольшая точка, которую следует учитывать, по состоянию на ноябрь 2016 года, большая библиотека python по-прежнему находится в Alpha, что означает, что будущее изменение может не совместимы с обратной совместимостью. Кроме того, большая библиотека python не совместима со стандартной средой App Engine. Вы должны использовать гибкий.
Ответ 7
Я только что нашел эту полезную аналогию, скрытую на длинной странице о возможной последовательности в документации Datastore (выделено мое):
Одной из практик является объединение Cloud Datastore и BigQuery для удовлетворения различных бизнес-требований. Используйте Cloud Datastore для оперативной обработки транзакций (OLTP), необходимой для базовой логики приложения, и используйте BigQuery для оперативной аналитической обработки (OLAP) для внутренних операций. Возможно, потребуется реализовать непрерывный поток экспорта данных из Cloud Datastore в BigQuery, чтобы переместить данные, необходимые для этих запросов.

