Google Cloud Bigtable та Google Cloud Datastore


124

Яка різниця між Google Cloud Bigtable та сховищем даних Google Cloud Datastore / App Engine, і які основні практичні переваги / недоліки? Cloud Datastore AFAIK будується на вершині Bigtable.


8
Будь ласка, не закривайте. в даний час немає офіційної документації на ці дані, і Google, ймовірно, тут коментує.
Зіг Мандель

Відповіді:


97

На основі досвіду роботи з Datastore та читання документів Bigtable , основними відмінностями є:

  • Bigtable спочатку був розроблений для сумісності з HBase, але тепер має клієнтські бібліотеки на декількох мовах . Спочатку Datastore був більш орієнтований на розробників веб-додатків Python / Java / Go (спочатку App Engine)
  • Bigtable - це «трохи більше IaaS», ніж Datastore, оскільки він не є «просто там», але вимагає налаштування кластера .
  • Bigtable підтримує лише один індекс - "рядок" (ключ сутності в Datastore)
    • Це означає, що запити є на ключі, на відміну від індексованих властивостей Datastore
  • Bigtable підтримує атомність лише в одному ряду - транзакцій немає
  • Мутації та видалення, схоже, не є атомними в Bigtable, тоді як Datastore забезпечує можливу і сильну узгодженість, залежно від методу читання / запиту.
  • Модель виставлення рахунків сильно відрізняється:
    • Збори даних для операцій з читання / запису, зберігання та пропускної здатності
    • Великі витрати на "вузли" , зберігання та пропускну здатність

98

Велика таблиця оптимізована для великих обсягів даних та аналітики

  • Cloud Bigtable не копіює дані в зонах чи регіонах (дані в межах одного кластера копіюються та довговічні), а це означає, що Bigtable швидше та ефективніше, а витрати значно нижчі, хоча вони менш довговічні та доступні в конфігурації за замовчуванням
  • Він використовує API HBase - немає ніякого ризику засвоєння чи нових парадигм для вивчення
  • Він інтегрований з інструментами Big Data з відкритим кодом, тобто ви можете аналізувати дані, що зберігаються в Bigtable, у більшості інструментів аналітики, якими користуються клієнти (Hadoop, Spark тощо)
  • Bigtable індексується одним ключем рядків
  • Bigtable знаходиться в одній зоні

Cloud Bigtable розроблений для великих компаній та підприємств, які часто мають великі потреби в даних із складними навантаженнями.

Сховище даних оптимізовано для обслуговування високоцінних транзакційних даних для додатків

  • Хмарний сховище даних має надзвичайно високу доступність із тиражуванням та синхронізацією даних
  • Datastore через свою універсальність та високу доступність коштує дорожче
  • Datastore - це повільніше записувати дані через синхронну реплікацію
  • Магазин даних має набагато кращу функціональність щодо транзакцій та запитів (оскільки існують вторинні індекси)

3
Зараз Bigtable копіюється в різних зонах, щоб забезпечити доступність в умовах зонального відключення: cloudplatform.googleblog.com/2018/07/…
Брендон Дюрет,

Я вважав, що транзакція не є сильною точкою продажу для зберігання даних. З його [док | cloud.google.com/datastore/docs/concepts/transaction] "Трансакція - це набір операцій зберігання даних у хмарі Google для одного або декількох об'єктів, що містять до 25 груп організацій.
zyxue

19

Bigtable і Datastore надзвичайно різні. Так, сховище даних будується на вершині Bigtable, але це не робить його подібним. Це начебто сказати, що машина побудована на колесах, і тому машина не сильно відрізняється від коліс.

Bigtable і Datastore забезпечують дуже різні моделі даних і дуже різну семантику в зміні даних.

Основна відмінність полягає в тому, що Datastore забезпечує трансляцію ACID-подібних SQL-транзакцій на підмножини даних, відомі як групи сутностей (хоча мова запитів GQL набагато більш обмежує, ніж SQL). Bigtable суворо NoSQL і має набагато слабкіші гарантії.


4
Ви йшли добре до останнього абзацу. Магазин даних забезпечує транзакції, але вони не схожі на SQL і точно не є кислотними.
Даніель Роузман

4
@DanielRoseman Власне, це дуже багато робить. Ось цитата з статті про Megastore (на якій побудовано Datastore): "Кожна група об'єднань Megastore функціонує як міні-база даних, що забезпечує серіалізацію семантики ACID". "ми розділяємо сховище даних і копіюємо кожен розділ окремо, забезпечуючи повну семантику ACID всередині розділів". (research.google.com/pubs/pub36971.html)
користувач2771609

Я думаю, що його оманливо називати Sql. Підмножина максимум. Не має ефективного підрахунку / групи, всі запити повинні використовувати індекси тощо
Zig Mandel

4
Мова запитів та ізоляція транзакцій - це різні речі , ви ніби змішуєте їх. Я висловлюю претензії щодо останнього ( транзакції ACID ). У вашому коментарі ви припускаєте, що я говорю про колишнє. Можливо, якісь дефіси уточнить? Я чітко згадаю проблему мови запитів, щоб усунути будь-які сумніви.
користувач2771609

8

Якщо ви читаєте документи, BigTable - це це, а Datastore - MegaStore . Datastore - це BigTable плюс реплікація, транзакція та індекс. (і набагато дорожче).


Це справді дорожче? мінімум для BigTable - 3 вузли, на 10 ГБ жорсткого диска - 1400 доларів на місяць. Здається, досить високо ні?
Бенджі

@ben, в моєму минулому досвіді це було. Магазин даних стягується за операцію замість години. (Якщо ви не користуєтеся ним так сильно, то так, ви не платите багато за Datastore. Але якщо у вас великий трафік, і тоді я думаю, що bigtable набагато дешевше.) Я думаю, що Bigtable вимагає 10 крс в секунду? Насправді я виявив, що вона нижча, як, наприклад, приблизно 1-2 к., Але все ж 3 вузли> 5 к / с. Якщо ви підтримуєте цю пропускну здатність протягом місяця і відображаєте її до ціноутворення в Datastore, це, ймовірно, набагато вище, ніж 1,4 к.
Джастін Чжан

Посилання MegaStore розірвано
gstackoverflow

7

Я спробую узагальнити всі відповіді, наведені вище, а також те, що наведено у програмі Coursea Google Cloud Platform Big Data and Machine Learning.

+---------------------+------------------------------------------------------------------+------------------------------------------+--+
|      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    |  |
+---------------------+------------------------------------------------------------------+------------------------------------------+--+

Перевірте також це зображення: введіть тут опис зображення

введіть тут опис зображення


2

Відносно незначний момент, який слід враховувати, станом на листопад 2016 року, бібліотека клієнтів python з великими таблицями все ще знаходиться в Альфа, а це означає, що майбутні зміни можуть бути не сумісними назад. Крім того, бібліотека python з великими таблицями не сумісна зі стандартним середовищем App Engine. Ви повинні використовувати гнучку.


Станом на листопад 2016 року те саме саме для Java
Арам Паронікян

2

Це може бути ще один набір ключових відмінностей між Google Cloud Bigtable та Google Cloud Datastore разом з іншими службами. Вміст, показаний на зображенні нижче, також може допомогти вам у виборі потрібної послуги.

введіть тут опис зображення

введіть тут опис зображення


1

введіть тут опис зображення

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.

0

Datastore - це більш готовий додаток і підходить для широкого спектру послуг, особливо для мікросервісів.

Основна технологія Datastore - це Big Table, тому ви можете уявити, що Big Table є більш потужним.

Datastore постачається з 20 Кб вільної роботи на день, ви можете розраховувати розмістити сервер із надійною БД із вартістю ZERO.

Ви також можете ознайомитись з цією бібліотекою ORM Datastore, вона має багато чудових функцій https://www.npmjs.com/package/ts-datastore-orm

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.