BigQuery должен быть достаточно умным, чтобы фильтровать правильные часовые пояса при работе с разделами.
Например:
SELECT MIN(datehour) time_start, MAX(datehour) time_end, ANY_VALUE(title) title
FROM `fh-bigquery.wikipedia_v3.pageviews_2018` a
WHERE DATE(datehour) = '2018-01-03'
5.0s elapsed, 4.56 GB processed
Для этого запроса мы обработали 4,56 ГБ в разделе 2018-01-03.Что, если мы хотим скорректировать день в США?Давайте добавим это в предложение WHERE
:
WHERE DATE(datehour, "America/Los_Angeles") = '2018-01-03'
4.4s elapsed, 9.04 GB processed
Теперь этот запрос автоматически сканирует 2 раздела, так как он должен проходить по дням.Для меня это достаточно хорошо, поскольку BigQuery может автоматически это выяснить.
Но что, если вы хотите постоянно оптимизировать для одного часового пояса?Вы можете создать сгенерированный смещенный столбец DATE
и использовать его для PARTITION
для.