Google Bigtable vs BigQuery для хранения большого количества событий

Фон

Мы хотели бы сохранить наши неизменные события в (предпочтительно) управляемой службе. Средний размер одного события меньше 1 Кб, и мы имеем между 1-5 событиями в секунду. Основной причиной для хранения этих событий является возможность их воспроизведения (возможно, с помощью сканирования таблиц), как только мы создадим будущие услуги, которые могут быть заинтересованы в этих событиях. Поскольку мы находимся в Google Cloud, мы, очевидно, рассматриваем сервисы Google как первый выбор.

Я подозреваю, что Bigtable будет хорошо подходит для этого, но согласно калькулятор цен, это будет стоить нам более 1400 долларов США в месяц (что для нас очень важно):

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

Глядя на что-то вроде BigQuery, вы получаете цену в 3 доллара США в месяц (если мне не хватает чего-то существенного):

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

Несмотря на то, что база данных без схемы была бы лучше подходит для нас, мы были бы в порядке с сохранением наших событий как blob с некоторыми метаданными.

Вопросы

Можно ли использовать BigQuery, поскольку вместо Bigtable для снижения затрат? Например, BigQuery имеет что-то, называемое потоковые вставки, которые мне кажутся чем-то, что мы могли бы использовать. Есть ли что-нибудь, что укусит нас в краткосрочной или долгосрочной перспективе, что я, возможно, не знаю, если пойдет по этому маршруту?

Ответы

Ответ 1

Bigtable отлично подходит для больших ( >= 1TB) изменяемых наборов данных. Он имеет низкую задержку под нагрузкой и управляется Google. В вашем случае, я думаю, вы на правильном пути с BigQuery.

Ответ 2

FYI

Cloud Bigtable не является реляционной базой данных; он не поддерживает SQL-запросы или объединения и не поддерживает многорядные транзакции. Кроме того, это не является хорошим решением для небольших объемов данных (< 1 ТБ).

Рассмотрим эти случаи:  - Если вам нужна полная поддержка SQL для обработки онлайн-транзакций  (OLTP), рассмотрите Google Cloud SQL.

Если вам нужны интерактивные запросы в онлайн-аналитической обработке  (OLAP), рассмотрите Google BigQuery.

Если вам нужно сохранить неизменяемые капли размером более 10 МБ, например большие  изображений или фильмов, рассмотрите Облачное хранилище Google.

Если вам нужно хранить высокоструктурированные объекты, или если вам требуется  поддержка транзакций ACID и SQL-подобных запросов, рассмотрите Cloud  Datastore.

Ответ 3

Общая стоимость сводится к тому, как часто вы будете запрашивать данные. Если это резервная копия и вы не повторяете события слишком часто, это будет очень дешево. Однако, если вам нужно воспроизводить его один раз в день, вы начинаете запускать 5 $/TB, сканируемое слишком легко. Мы также были удивлены тем, насколько дешевыми являются вставки и хранилища, но это связано с тем, что Google ожидает, что вы будете запускать дорогостоящие запросы в определенный момент времени на них. Тем не менее, вам придется разрабатывать несколько вещей. Например. Потоковые вставки AFAIK не имеют гарантии того, что они будут записаны в таблицу, и вам нужно часто опросить список хвостов, чтобы увидеть, действительно ли оно написано. Тем не менее, возможность рутинга может быть эффективно выполнена с помощью декоратора стола с временным диапазоном (не оплачивая сканирование всего набора данных).

Если вам не нужен порядок, вы можете даже перечислить таблицу бесплатно. Нет необходимости запускать "запрос".

Ответ 4

Трудно суммировать лучше, чем это уже сделано Google - https://cloud.google.com/bigtable/docs/
Проверьте Облако Bigtable и другие параметры хранения

Я думаю, вам нужно выяснить, как вы собираетесь использовать (воспроизводить) свои данные (события), и это может помочь вам принять окончательное решение.

Пока BigQuery выглядит для вас лучшим выбором