2016-08-12 9 views
0

Можно ли загружать данные в том же порядке строк, что и в исходном CSV-файле? Эти файлы не сортируются в каком-либо конкретном порядке или в любом конкретном столбце. Похоже, что загрузка BigQuery распределена, порядок не предсказуем, однако имеет тенденцию сначала группировать нули.Как загрузить данные в том же порядке, что и CSV на BigQuery

+1

В чем причина этого? возможно (скорее всего) в другом месте - не в сохранении порядка с csv? –

+0

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

+0

Я думаю, что @matt_black дал вам хорошую идею - вам нужно что-то ввести в свой ввод, который определяет этот порядок, чем вы будете использовать его для сортировки вашего вывода –

ответ

1

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

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

+0

Спасибо @matt_black, на самом деле я закончил делать это, не так сложно, спасибо за Проницательность, это сделал трюк. Я бы хотел, чтобы эта функция была из коробки при проглатывании, флажок «сохранить порядок» был бы потрясающим. –

3

Нет, это невозможно. Более того - как только данные загружаются в таблицу BigQuery и не сохраняют статический порядок, так как BigQuery может перетаскивать строки, чтобы оптимизировать работу хранилища и будущую производительность запросов. Строки результатов любого запроса SELECT без внешнего ORDER BY могут различаться в разных вызовах.

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