Цены на Google BigQuery

Я аспирант Сингапурского Университета Менеджмента. В настоящее время я работаю в Университете Карнеги-Меллона над исследовательским проектом, который нуждается в исторических событиях из архива Github (http://www.githubarchive.org/). Я заметил, что Google Bigquery имеет архивные данные Github. Поэтому я запускаю программу для обхода данных с помощью сервиса Google Bigquery.

Я только что обнаружил, что цена Google bigquery показывает на консоли не обновляется в режиме реального времени... Пока я начинал запуск программы в течение нескольких часов, плата была всего 4 доллара плюс, поэтому я подумал, что цена разумная, и я продолжал работать программу. Через 1~2 дня я снова проверил цену 13 сентября 2013 года, цена стала 1388$...Поэтому я сразу же прекратил использовать сервис Google bigquery. И только сейчас я проверил цену еще раз, оказывается мне нужно заплатить 4179$...

Это моя вина, что я не понял, что мне нужно заплатить эту большую сумму денег за выполнение запросов и получение данных из Google BigQuery от.

этот проект только для исследований, а не для коммерческих целей. Я хотел бы знать, можно ли отказаться от гонорара. Мне действительно нужна помощь [Google Bigquery team].

большое спасибо и С наилучшими пожеланиями, Лиза!--3-->

1 ответов


год спустя обновление:

обратите внимание на некоторые большие события, так как эта ситуация:

  • запрашивая цены 85% вниз.
  • GithubArchive теперь публикует ежедневные и ежегодные таблицы - поэтому при разработке ваших запросов всегда тестируйте их на небольших наборах данных.

цена BigQuery основана на количестве запрашиваемых данных. Одним из его основных моментов является то, как легко он масштабируется, переходя от сканирования нескольких гигабайт к терабайтам в всего несколько секунд.

линейное масштабирование цен-это функция: большинство (или все?) другие базы данных, о которых я знаю, потребуют экспоненциально более дорогих ресурсов или просто не смогут обрабатывать эти объемы данных - по крайней мере, не в разумные сроки.

тем не менее, линейное масштабирование означает, что запрос на терабайт в 1000 раз дороже, чем запрос на гигабайт. Пользователи BigQuery должны знать об этом и планировать соответственно. Для этих целей BigQuery предлагает флаг" dry run", который позволяет точно увидеть, сколько данных будет запрошено перед запуском запроса - и настроить соответствующим образом.

в этом случае WeiGong запрашивал таблицу 105 ГБ. Десять!--1--> запросы быстро составят терабайт данных и так далее.

есть способы сделать эти же запросы потребляют гораздо меньше данных:

  • вместо запроса SELECT * LIMIT 10, вызовите только столбцы, которые вы ищете. BigQuery обвинения на основе столбцы, которые вы запрашиваете, поэтому наличие ненужных столбцов добавит ненужные затраты.

например, SELECT * ... запросы 105 ГБ, в то время как SELECT repository_url, repository_name, payload_ref_type, payload_pull_request_deletions FROM [githubarchive:github.timeline] идет только через 8.72 ГБ, что делает этот запрос более чем в 10 раз дешевле.

  • вместо "SELECT *" используйте tabledata.список при поиске, чтобы загрузить всю таблицу. Это бесплатно.

  • таблица архива Github содержит данные за все время. Разделите его, если вы хотите видеть только один месяц данных.

например, извлечение всех январских данных с помощью запроса оставляет новую таблицу только 91.7 MB. Запрос этой таблицы в тысячу раз дешевле, чем большой!

SELECT *
FROM [githubarchive:github.timeline]
WHERE created_at BETWEEN '2014-01-01' and '2014-01-02'
-> save this into a new table 'timeline_201401'

комбинируя эти методы, вы можете перейти от счета $ 4000 до $4 за такое же количество быстрых и проницательных результатов.

(Я работаю с владельцем архива Github, чтобы заставить их хранить ежемесячные данные вместо одной монолитной таблицы это еще проще)