Мне нужно запросить довольно значительное количество строк (около 4 000 000) из таблицы журналов, чтобы я мог сохранить их в файл CSV. Мой запрос выглядит следующим образом:Запрос больших результатов при сохранении заказа
SELECT
time_unixtime
field1,
field2,
field3
FROM
dataset.execute_log20151118
WHERE
field9 = 'unique_id'
ORDER BY
time_unixtime
Когда я запускаю его с помощью SDK, я встречаю ошибку Resources exceeded during query execution
, которая имеет смысл, так как данные, скорее всего, превысит 128 MB compressed limit.
Включение флага allowLargeResults
в конфигурацию заданий является естественным решением, но это запрещает запрос для заказа результатов. Конечно, я все еще могу выполнить запрос без ORDER BY
, а затем отсортировать результаты локально, но это не похоже на хорошее решение.
Есть ли более эффективный способ сделать это?
Зачем вам сортировать строки? Часто мы обнаруживаем, что пользователи BigQuery, которые хотят сортировать большие объемы данных, могут достичь своей цели по-другому. –
Это требование от клиентов, которые будут использовать CSV-файл. Строки необязательно нужно заказывать, когда я их запрашиваю, но они уже должны быть отсортированы внутри файла CSV. –