2014-09-15 3 views
4

Есть ли способ стабилизировать время отклика запросов? Например, эти два задания, которые выполняют один и тот же запрос, имеет разное время отклика:Характеристики BigQuery

JobId: job_gzTkFvGculpLw0tQRMZvj6rskMI Время запроса: 00: 00: 09,2827336

JobId: job_9wXD9ONxDoI87lD6lOXZJSEM1 Запрос Время: 00: 00: 28,1064037

Почему у одного и того же запроса происходит очень разное время отклика?

** EDIT: ProjectID является nostrum.eu:nostrum

+0

FYI: Если вы размещаете идентификатор проекта вместе с идентификатором задания проще для инженера BigQuery, чтобы посмотреть, что случилось в журналах. –

+0

ProjectId is nostrum.eu:nostrum – RCalaf

+0

Теперь эта работаИзначало job_KsGKrJuoE9_LvuDBKNnIZnaZn5s заняло более минуты для ответа. – RCalaf

ответ

2

По умолчанию BigQuery использует Query caching ускорить время отклика для общих запросов, которые могут быть использованы несколько раз.

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

Если вы хотите, чтобы отключить кэширование запросов, вы можете установить параметр в теле запроса, который вы посылаете к API:

{ 
    "kind": "bigquery#queryRequest", 
    "query": query, 
    "defaultDataset": { 
    "datasetId": string, 
    "projectId": string 
    }, 
    "useQueryCache": False 
} 

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

+0

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

1

Пользователи BigQuery выполняют свои запросы в общей инфраструктуре. Преимущество заключается в существенном низком запросе цен (без необходимости платить почасовые цены), но время выполнения становится переменной в зависимости от того, сколько одновременных запросов от других пользователей выполняется одновременно (поэтому BQ обеспечивает одновременные ограничения квот запросов для каждого пользователя).

Если требуется согласованность, BigQuery также предлагает эксклюзивный режим инфраструктуры для клиентов, где только их запросы выполняются на машинах, предназначенных исключительно для них. Однако эти машины необходимо резервировать на ежемесячной основе. В качестве дополнительного преимущества эти клиенты не подвергаются квотам параллельных запросов, поскольку в любом случае их собственное пространство играет.

https://developers.google.com/bigquery/pricing#reserved_cap

+0

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

+0

Странно. У вас есть более подробные сведения, которые я могу использовать для расследования? –

+0

, как вы рекомендуете, мы связались с службами клиентов, но они ничего не знали об эксклюзивном режиме инфраструктуры для BigQuery, они рассказали о виртуальных машинах, но мы думаем, что вы не имеете в виду виртуальные машины. Как мы можем заключить контракт с этим эксклюзивным сервисом? – RCalaf

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