Запись из неразделенной таблицы в секционированную таблицу с указанием даты в большом запросе Google

#google-bigquery

#google-bigquery

Вопрос:

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

Теперь ниже команда выдает ошибки, и я не уверен, в чем проблема..

 bq query --allow_large_results --append_table --destination_table 'Mydataset.table1_partitioned$20150511' 'select * FROM source_dataset.table1 WHERE DATE(trans_timestamp)='2015-05-11'';
  

ошибка —> Несоответствие типа аргумента в функции EQUAL: первый
аргумент — тип string, ‘1999’ — тип int64

Ответ №1:

следите за правильным экранированием

 bq query --allow_large_results --append_table --destination_table "Mydataset.table1_partitioned$20150511" "select * FROM source_dataset.table1 WHERE DATE(trans_timestamp)='2015-05-11'";
  

Я бы также добавил --noflatten_results в качестве параметра в командную строку

Комментарии:

1. Спасибо, помогло правильное экранирование, что именно делает —noflatten_results ? Я не смог найти правильную документацию.

2. bigquery автоматически сглаживает повторяющиеся данные в несколько строк, и это предотвращает это, поиск оператора СГЛАЖИВАНИЯ cloud.google.com/bigquery/query-reference