2017-02-07 2 views
0

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

(я использую DATALAB ноутбуки)

%%sql -d standard --module TripData 
SELECT 
    HardwareId, 
    TripId, 
    StartTime, 
    StopTime 
FROM 
    `myproject.mydataset.TripData` 
WHERE 
    _PARTITIONTIME BETWEEN TIMESTAMP_TRUNC(TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 * 24 HOUR),DAY) 
    AND TIMESTAMP_TRUNC(CURRENT_TIMESTAMP(),DAY) 

ответ

0

Вы не можете сделать это за несколько разделов сразу!
Вы должны сделать это один раздел в момент определения целевого раздела - targetTable$yyyymmdd
Примечание: сначала нужно создать таблицу назначения в качестве секционированной таблицы с соответствующей схемой

+0

хорошо, что это кропотливая работа тогда. какие-либо планы по этой функции на будущее? – foxwendy

+0

согласен. посмотрим, что скажет нам команда google. вы можете оставить это как запрос функции на странице https://code.google.com/p/google-bigquery/ –

+0

Да, Google признает, что это действительно утомительный (и дорогостоящий) обходной путь, и планирует рассмотреть его в будущем , –

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