Раздел по дате и времени Google BigQuery - PullRequest
1 голос
/ 06 марта 2019

Ситуация : я хочу загрузить ~ 5B записей в таблицу Google BigQuery.У меня есть поле с именем date_time, которое описывает дату и время записи (с 2012 по сегодняшний день).Мне бы хотелось, чтобы таблица BigQuery была секционирована в этом поле.

Осложнение : я направляю все записи в таблицу BigQuery, и кажется, что только последние 12 месяцев записи принимаютсяBigQuery для раздела.

Вопрос : Я прочитал инструкции (https://cloud.google.com/bigquery/docs/partitioned-tables), но я до сих пор не понимаю, как передавать данные таким образом, чтобы можно было разбить /индексирование в моем поле date_time.

1 Ответ

1 голос
/ 06 марта 2019

Текущие ограничения потоковой передачи определены в этой ссылке

Вы можете передавать данные между 1 годом в прошлом и 6 месяцами в будущем. Данные за пределами этого диапазона отклоняются. Когда данные передаются в потоковом режиме, данные между 7 днями в прошлом и 3 днями в будущем помещаются в потоковый буфер, а затем извлекаются в соответствующие разделы. Данные за пределами этого окна (но внутри диапазона 1 год, 6 месяцев) помещаются в раздел UNPARTITIONED. Когда достаточно разделенных данных, они загружаются в соответствующие разделы.

Как предлагается в этом ответе @Felipe, вы должны передавать свои данные в таблицу без разделов и использовать действия копирования / загрузки для перемещения их в таблицу разделов

Примечание. Вы платите только за потоковую вставку, поэтому при таком обходе не требуется никаких дополнительных затрат

...