Яка різниця між BigQuery та BigTable? [зачинено]


85

Чи є якась причина, чому хтось би використовував BigTable замість BigQuery? Здається, обидва підтримують операції читання та запису, причому остання пропонує також розширені операції "Запит".

Мені потрібно розробити афілійовану мережу (отже, мені потрібно відстежувати кліки та "продажі"), тому я дуже збентежений різницею, тому що bigQuery здається просто bigTable з кращим API.


Я б сказав, що BigTable більше схожий на низький рівень і менш керований Хмарний магазин даних для людей, яким потрібна краща продуктивність.
dyeray

1
Цей минулий SO-потік теж може допомогти: stackoverflow.com/questions/34437572/…
Елліотт Броссард

@dyeray так, я це знаю, але чи є якась причина для когось зберігати однакові дані як у BigTable, так і в BigQuery, а не лише у BigQuery?
Користувач без капелюха

BigTable дуже добре працює в однорядкових або невеликих діапазонах. BigQuery дуже добре справляється із загальною картиною. Якщо вам потрібна аналітика з ефективним вивченням, ви використовуєте BigQuery для широкомасштабної аналітики та BigTable для аналітики в малих діапазонах.
Соломон Дускіс

Порівняння властивостей системи Google BigQuery та Google Cloud Bigtable проти Google Cloud Datastore. ! image (Застереження! Скопійовано з db-engines.com)
Le

Відповіді:


110

Різниця полягає в основному в наступному:

BigQuery - це механізм запитів для наборів даних, які не сильно змінюються або змінюються шляхом додавання. Це чудовий вибір, коли ваші запити вимагають "сканування таблиці" або необхідності переглядати всю базу даних. Подумайте про суми, середні показники, підрахунки, групування. BigQuery - це те, чим ви користуєтесь, коли зібрали велику кількість даних і вам потрібно задати запитання щодо цього.

BigTable - це база даних. Він розроблений, щоб стати основою для великого, масштабного застосування. Використовуйте BigTable, коли ви робите будь-який додаток, який потребує читання та запису даних, а масштаб є потенційною проблемою.


2
в другому абзаці - ви мали на увазі Use BigTable: о)
Михайло Берлянт

@MikhailBerlyant дякую, відредаговано
Michael Manoochehri

4
Тут трохи невдалого договору імен Google. Коли я зазвичай думаю про SQL - я думаю про табличну структуру даних, тоді як, коли я думаю про Запити, я думаю про ключ-значення або тип пошуку бази даних. У цьому випадку BigTable - це No-SQL, тоді як база даних BigQuery Sql.
Maksood

@Michael Manoochehri cloud.google.com/bigquery/... будь ласка, прочитайте цитату нижче:
gstackoverflow

Ви можете надати доступ до постійної зовнішньої таблиці користувачам (включаючи облікові записи служб) або групам. Для запиту зовнішньої таблиці вашим користувачам або групам потрібно надати (як мінімум): роль bigquery.dataViewer на рівні набору даних або вище, щоб отримати доступ до набору даних, що містить зовнішню таблицю ; роль bigquery.user на рівні проекту або вище для запуску завдань запитів Роль bigtable.reader у Cloud Bigtable, яка забезпечує доступ лише до читання до метаданих та таблиць
gstackoverflow

87

Google Cloud - блок-схема прийняття рішень щодо параметрів бази даних GCP

Це може трохи допомогти у виборі між різними сховищами даних, які пропонує хмара Google (Застереження! Скопійовано зі сторінки Google Cloud)

Якщо вашою вимогою є активна база даних, вам потрібна BigTable ( хоча насправді не система OLTP ). Якщо це більше аналітична мета, то BigQuery - це те, що вам потрібно!

Подумайте про OLTP проти OLAP ; Або якщо ви знайомі з Cassandra vs Hadoop, BigTable приблизно дорівнює Cassandra, BigQuery приблизно дорівнює Hadoop (погоджується, це нечесне порівняння, але ви розумієте)

https://cloud.google.com/images/storage-options/flowchart.svg

Примітка

Будь ласка, майте на увазі, що Bigtable не є реляційною базою даних, вона не підтримує SQL-запити або JOINs, а також не підтримує багаторядні транзакції. Крім того, це не є гарним рішенням для невеликих обсягів даних. Якщо ви хочете RTP СУБД OLTP, можливо, вам доведеться подивитися cloudSQL (mysql / postgres) або ключі.

Перспектива витрат

https://stackoverflow.com/a/34845073/6785908 . Цитуючи відповідні частини тут.

Загальна вартість зводиться до того, як часто ви будете "запитувати" дані. Якщо це резервна копія, і ви не відтворюєте події занадто часто, це буде дешево. Однак якщо вам потрібно буде повторювати його щодня один раз, ви почнете дуже легко запускати скановані 5 $ / ТБ. Ми також були здивовані, наскільки дешевими були вставки та сховище, але це часто, оскільки Google очікує, що ви в якийсь момент часу будете виконувати дорогі запити щодо них. Вам доведеться розробити кілька речей. Наприклад, потокові вставки AFAIK не мають жодних гарантій того, що вони будуть записані в стіл, і вам доведеться часто опитувати в хвості списку, щоб перевірити, чи справді це було написано. Хвостування можна зробити ефективно за допомогою декоратора таблиць часового діапазону (не платячи за сканування цілого набору даних).

Якщо ви не дбаєте про порядок, ви можете навіть безкоштовно перерахувати таблицю. Тоді не потрібно запускати "запит".

Редагувати 1

Хмарний ключ є відносно молодим, але потужним та перспективним (і надзвичайно дорогим). Принаймні, маркетинг Google стверджує, що його функції найкращі з обох світів (традиційні СУБД та noSQL)

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


Ви можете надати доступ до постійної зовнішньої таблиці користувачам (включаючи облікові записи служб) або групам. Для запиту зовнішньої таблиці вашим користувачам або групам потрібно надати (як мінімум): роль bigquery.dataViewer на рівні набору даних або вище, щоб отримати доступ до набору даних, що містить зовнішню таблицю; роль bigquery.user на рівні проекту або вище для запуску завдань запитів Роль bigtable.reader в Cloud Bigtable, яка забезпечує доступ лише до читання до метаданих та таблиць
gstackoverflow

Я взяв цитату вище з cloud.google.com/bigquery/… . Чому для доступу до bigtable мені потрібен дозвіл, який містить слово bigquery ?
gstackoverflow

-3

BigQuery та Cloud Bigtable - це не одне і те ж. Bigtable - це база даних NoSQL на основі Hadoop, тоді як BigQuery - це база даних на базі SQL. Вони мають конкретні сценарії використання.

У дуже короткі та прості терміни;

  • Якщо вам не потрібна підтримка транзакцій ACID або якщо ваші дані не дуже структуровані, розгляньте Cloud Bigtable.
  • Якщо вам потрібні інтерактивні запити в системі онлайн-аналітичної обробки (OLAP), розгляньте BigQuery.

5
Bigtable не є базою даних NoSQL на основі Hadoop, а насправді навпаки - на основі технічної довідки Bigtable було створено HBase (NoSQL на основі Hadoop). Через це вони мають схожий (однаковий?) API.
Ігор
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.