BigQuery - расшифровка сообщения "квота превышена"

Я сталкиваюсь с этим сообщением и не понимаю, какую из многих квот я превышаю. В моем процессе есть:

  • 80 потоков (на 8 машинах)
  • ‹50 записей / вставка
  • ~ 5К / запись
  • 1 сек задержка / вставка
  • вставка в ~ 100 разных таблиц (в зависимости от конкретной записи - записи для одной и той же таблицы группируются вместе)

Для меня это:

  • ‹Максимальный размер строки (1Мб)
  • ‹Макс. Строк в секунду (100K / таблица и 1M / проект)
  • ‹Максимальное количество строк / запрос (~ 500)
  • ‹Макс байт в секунду (100 МБ)

Я смотрю на результат: bq --project <proj name> ls -j -a. Это дает мне работу и успех / неудачу. Отсюда я смотрю на результаты, используя bq --project <proj name> show -j <jobId>

В выводе ошибок есть следующие строки:

"status": {  
 "errorResult": {  
   "location": "load_job",   
   "message": "Quota exceeded: Your project exceeded quota for imports per project. For more information, see https://cloud.google.com/bigquery/troubleshooting-errors", 
  "reason": "quotaExceeded"  
}, 
"errors": [
  {
    "location": "load_job", 
    "message": "Quota exceeded: Your project exceeded quota for imports per project. For more information, see https://cloud.google.com/bigquery/troubleshooting-errors", 
    "reason": "quotaExceeded"
  }
], 

Предложения, где еще посмотреть? Я неправильно подсчитываю? Возможно, лучший способ организовать потоки / данные?


person ethrbunny    schedule 25.07.2016    source источник


Ответы (2)


Похоже, квоты загрузки связаны

  • Дневной лимит: 1000 заданий загрузки на таблицу в день (включая сбои), 10000 заданий загрузки на проект в день (включая сбои).
  • Ограничения на размер строк и ячеек:

    Data format     Max limit   
    CSV             2 MB (row and cell size)  
    JSON            2 MB (row size)  
    Avro            16 MB (block size)  
    
  • Максимальный размер на задание загрузки: 12 ТБ для всех входных файлов для CSV и JSON.

  • Максимальное количество файлов на одно задание загрузки: 10 000

Скорее всего Daily limit это то, что вы ищете

person Mikhail Berlyant    schedule 25.07.2016
comment
Я мог видеть это, если задания начинали давать сбой, а затем продолжали отказывать. Но они этого не делают. Часто я вижу несколько сообщений об успехе, перемежающихся с ошибками. На самом деле, иногда довольно много. - person ethrbunny; 25.07.2016
comment
Я могу предположить, что вместо календарного дня используется просто движение за 24 часа, так что это может объяснить то, что вы видите. в любом случае - вы можете добавить jobid к своему вопросу - чтобы кто-нибудь из команды BigQuery смог проверить, что именно происходит с вашей работой - person Mikhail Berlyant; 25.07.2016
comment
Безопасно ли размещать здесь идентификатор вакансии? Обратная связь от команды BQ была бы поистине божественной. - person ethrbunny; 25.07.2016
comment
вы можете подождать, пока кто-то из команды bigquery ответит / прокомментирует ваше сообщение, чтобы затем вы согласовали с ними, как сообщить свою работу. обычно они очень хороши в этом - person Mikhail Berlyant; 25.07.2016
comment
Сказал, что когда я получаю ошибку 403 с причиной 'rateLimitExceeded', я вижу, что задание вставило строки. Теперь, в сценарии пакетной загрузки, я не знаю, нужно ли мне откатиться из-за этой ошибки или нет, а документация не очень ясна. Мое действие по умолчанию - повторить попытку, а затем у меня возникнут дублирования в BigQuery, которых я бы хотел избежать. Любое предложение? - person Giuseppe Adaldo; 16.02.2017

Как вы загружаете данные? Похоже, вы используете jobs.insert вместо tabledata.insertAll.

jobs.insert загружает данные в пакетном режиме. Как говорит Михаил, предел импорта для таблицы составляет 1000 - это примерно один раз каждые 90 секунд - если вы используете метод jobs.insert.

tabledata.insertAll позволяет передавать данные в таблицы, и здесь применяется ограничение в 100 тыс. Строк в секунду на таблицу. Обратите внимание, что у этого метода есть стоимость, а пакетный - бесплатный.

person Felipe Hoffa    schedule 25.07.2016
comment
Диспетчер API просматривает отчеты (более 24 часов): insertAll - ~ 24 КБ (62%), вставка - ~ 14 КБ (36%). Оба типа команд распределены по ~ 50-100 таблицам, поэтому, хотя «пакетный» лимит концептуально исчерпан, эти ошибки проявлялись в течение часа или двух после запуска этого процесса. - person ethrbunny; 25.07.2016
comment
Я думаю, что 100 тысяч строк в секунду также применимы ко всему проекту (?) - person nsandersen; 30.08.2019
comment
К вашему сведению, новый лимит: максимальное количество строк в секунду: 1000000. cloud.google.com/bigquery/quotas - person Felipe Hoffa; 30.08.2019