Я ищу решение, которое будет содержать почти статический 200-Гбайт, структурированный, чистый набор данных и предоставить JSON API для данных, для запросов в веб-приложении.Решение для размещения 200 ГБ данных и предоставления JSON API агрегатов?
Каждая строка моих данных выглядит следующим образом, и у меня есть около 700 миллионов строк:
parent_org,org,spend,count,product_code,product_name,date
A31,A81001,1003223.2,14,QX0081,Rosiflora,2014-01-01
данные почти полностью статичным - он обновляет один раз в месяц. Я хотел бы поддержать простые агрегатные запросы, как:
- получить общие расходы по кодам продукции, начиная QX, по организации, по месяцам
- получить общие расходы по родительским орг A31, за месяц
И Я хотел бы, чтобы эти запросы были доступны через RESTful JSON API, чтобы я мог использовать данные в веб-приложении.
Мне не нужно делать соединения, у меня есть только один стол.
Solutions Я исследовал:
- На сегодняшний день я использую Postgres (с веб-приложение, чтобы предоставить API), но я начинаю достигнуть пределов того, что я могу сделать с индексацией и материализованные представления , без специального оборудования + больше навыков, чем у меня есть
- Google Cloud Datastore: подходит для структурированных данных примерно такого размера и имеет испеченный JSON API, но не выполняет агрегатов (поэтому я не мог поддерживать мои «общие расходы») выше
- Google BigTable: может определенно делать данные такого размера, может выполнять агрегаты, может создавать мои собственный API с помощью App Engine? Может потребоваться преобразовать данные в hbase для импорта.
- Google BigQuery: быстро на агрегацию, нужно будет свернуть свой собственный API, как с BigTable, легко импортировать данные
Я интересно, если есть общее решение для моих потребностей выше. Если нет, я также буду благодарен за любые советы по наилучшей настройке для размещения этих данных и предоставления JSON API.
Update: Кажется, что BigQuery и Cloud SQL поддержка SQL-подобные запросы, но Cloud SQL не может быть достаточно большим (см комментариев) и BigQuery становится дорогой очень быстро, потому что вы платите по запросу, так что ISN Идеально подходит для публичного веб-приложения. Datastore - это хорошее значение, но он не выполняет агрегатов, поэтому мне придется предварительно агрегировать и иметь несколько таблиц.
Есть ли облачный SQL вариант здесь? Часто задаваемые вопросы по размеру - https://cloud.google.com/sql/faq#sizeqps –
@SolomonDuskis Спасибо. Похоже, что он будет достаточно большим :) Возможно, он будет работать на наборе данных такого размера? Или ответ (как и в Postgres) «вы не узнаете, пока не попытаетесь с реальными данными»? – Richard
Не знаю. Я больше человек из облака Bigtable, сам. Позвольте мне посмотреть, могу ли я получить кого-то из Cloud SQL, чтобы прослушивать. –