2016-03-25 9 views
2

Я изучаю возможность использования BigQuery и его API для выполнения запросов на сайте в зависимости от контента, который просматривают наши посетители. Поэтому время отклика имеет решающее значение. Я загрузил очень простой структурированный набор данных из 10 тыс. Строк (4 столбца) и запускает очень простой запрос и занимает от 1 до 2 секунд. Мои вопросы, как мы надеемся, довольно просты в ответе, смогу ли я когда-либо получить < время отклика 1сек с помощью BQ API, оптимизируя данные каким-либо образом или нет?Может BigQuery быть достаточно быстрым для запроса на месте в реальном времени

Большое спасибо!

С уважением, Арьен

ответ

3

BigQuery - это не база данных онлайн-транзакций (OLTP), а база данных интерактивного анализа, позволяющая сканировать терабайты данных внутри секунд. Хотя время запроса довольно согласованное, поскольку оно является общим сервисом, время запроса не гарантируется, то есть запрос, выполняемый в течение 2 секунд, может запускаться 1,5 секунды или 3 секунды в разные периоды времени. Из-за природы и внутренних элементов BigQuery время запроса < 1s на сегодняшний день нереально.

Одним из популярных шаблонов дизайна является то, что BigQuery делает тяжелый подъем комплексного анализа ваших данных, а затем сохраняет результаты в базе данных OLTP (например, mySQL) или даже в памяти (например, Redis) и обслуживает результаты для клиентов оттуда. Вы можете периодически обновлять данные, запустив запросы в фоновом режиме.

+0

Спасибо за этот ответ! Так что, используя, например, Google Cloud SQL в сочетании с Google App Engine выглядит для вас более подходящим решением? – Arjen

+0

@Arjen - это будет зависеть от объема ваших данных. Для строк 10k с 4 столбцами я бы определенно пошел с CloudSQL Gen1 или Gen2 и использовал AppEngine для обслуживания результатов. Просто убедитесь, что у вас есть нужные индексы, поэтому ваш запрос будет обслуживаться из индекса, а не полного сканирования. –

+0

, который был предназначен только для тестирования. Скажем, это будет 1000 тыс. Строк с 25 столбцами, будет ли CloudSql логичным выбором? – Arjen

1

BigQuery предназначен для интерактивного анализа МАССОВО больших массивов данных.
Время обработки ожидается в пределах секунды.
В то же время, ожидая, что текущий запрос с меньшим набором данных приведет к тому, что время выполнения под вторым - нереалистично, потому что оно не проектируется таким образом.
Независимо от того, какой у вас размер данных, вы все равно «оплачиваете» все расходы, как если бы вы обрабатывали большой набор данных.

Итак, короткий ответ, к сожалению:
Сегодня - нет! Завтра - нет! День после - вы никогда не знаете, но я так не думаю, если BigQuery не превратится во что-то еще.

+0

Спасибо, Михаил! – Arjen

+0

Выглядит довольно точное описание для меня - вы можете удалить часть ответа «Гуглеры» :) –

 Смежные вопросы

  • Нет связанных вопросов^_^