#google-bigquery
#google-bigquery
Вопрос:
Я храню данные о событиях в BigQuery, разделенные по дням — одна таблица в день. Следующий запрос не удался:
select count(distinct event)
from TABLE_DATE_RANGE(my_dataset.my_dataset_events_, SEC_TO_TIMESTAMP(1391212800), SEC_TO_TIMESTAMP(1393631999))
Размер каждой таблицы составляет около 8 ГБ.
Кто-нибудь еще сталкивался с этой ошибкой? Похоже, что это ограничено размером таблицы, потому что в этом запросе я ограничил его только одним столбцом. Когда я использую меньший временной диапазон, это работает.. но весь смысл использования BigQuery заключался в его поддержке больших наборов данных.
Комментарии:
1. привет, модераторы, пожалуйста, проголосуйте за повторное открытие вопроса, поскольку это не дублирующий вопрос (другая ошибка)
2. Круто, с нетерпением жду отличной обратной связи.
3. в любом случае попробуйте: выберите count (событие) из TABLE_DATE_RANGE (my_dataset.my_dataset_events_, SEC_TO_TIMESTAMP(1391212800), SEC_TO_TIMESTAMP (1393631999), сгруппируйте каждое по событию
4. Вопрос был повторно открыт. Я добавил ответ ниже. Извините, что отправил это в дублирующуюся корзину!
Ответ №1:
«Слишком большой запрос» в данном случае означает, что TABLE_RANGE внутренне расширяется до слишком большого количества таблиц, генерируя внутренний запрос, который слишком велик для обработки.
У этого есть 2 обходных пути:
- Запрашивайте меньше таблиц (не могли бы вы объединить эти таблицы в одну большего размера?).
- Подождите, пока команда BQ решит эту проблему внутренне. Вместо того, чтобы использовать обходной путь, вы должны иметь возможность запускать этот запрос без изменений. Только не сегодня :).
Комментарии:
1. Вы знаете, была ли эта проблема исправлена командой BQ сейчас, пожалуйста? (Я ожидаю, что ежедневные таблицы с 30 000 000 записей, размер которых будет не менее 5 ГБ).
2. Размер таблиц не является проблемой. Проблема заключается в запросе слишком большого количества таблиц. Не нужно беспокоиться о размере таблицы!
3. Хорошо, большое вам спасибо; вы не знаете, есть ли известное ограничение на количество таблиц, пожалуйста? например: если бы я хотел сгенерировать отчет за один год данных, в нем было бы задействовано не менее 365 таблиц. Является ли 365 таблиц, участвующих в одном запросе, чем-то нереальным? (обычно решение будет ограничено ежемесячными отчетами, поэтому будет задействована не более 31 таблицы, но у некоторых пользователей могут быть особые потребности ..)
4. Одна тысяча — это предел. Итак, 2 года ежедневных таблиц — это нормально.
5. Другим фактором является размер схемы таблиц: если таблицы имеют огромные схемы, фактический запрос запроса (который содержит схемы в виде метаданных) может стать слишком большим.