Как при фиксированной ставке BigQuery приобретенные слоты распределяются между разными одновременными пользователями?

#google-cloud-platform #google-bigquery

#google-cloud-platform #google-bigquery

Вопрос:

Предположим, что было приобретено 500 слотов, пользователь1 запускает запрос BigQuery, который использует все 500 слотов. В середине обработки запроса пользователь2 запускает другой запрос, для которого, скажем, потребуется 200 слотов. Вопрос в основном заключается в планировании и совместном использовании: как слоты должны распределяться между пользователями. Например, будет ли запрос от пользователя 2 ждать освобождения слотов после завершения запроса от пользователя 1 или, по крайней мере, после того, как для его обработки потребуется меньше слотов? Или запрос от user2 захватит несколько слотов для своего выполнения еще до завершения запроса от user1 и до того, как ему потребуется меньше слотов во время его обработки, таким образом эффективно приостанавливая / прерывая некоторые «потоки» выполнения для user1 и перераспределяя сохраненные слоты для user2?

Связанный с этим вопрос заключается в том, независимо от используемого алгоритма совместного использования, существует ли способ ограничить запрос пользователя на количество слотов при выполнении его запроса?

Спасибо.

Ответ №1:

Что касается управления слотами и их отправки, то здесь есть отличное описание. Подводя итог, следует знать 2 вещи:

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

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

Что касается назначений слотов, вы можете распределить слот только по проекту, а не по пользователям. Вы можете выбрать тип использования слотов (ЗАПРОС, КОНВЕЙЕР, ML_EXTERNAL)

Комментарии:

1. Советы помогают. Спасибо, что поделились.