#sql #google-bigquery #data-warehouse
# #sql #google-bigquery #хранилище данных
Вопрос:
Я хотел бы сделать запрос в Google bigquery и запланировать его как простой конвейер. Что я сделал, так это сначала сделал запрос с помощью пары CTE и сохранил представление, а затем изменил запрос как
INSERT INTO mydataset.myview
With t1 AS (...),
t2 AS (...),
...
big_t AS (...)
SELECT * FROM big_t t2
WHERE t2.date > (SELECT MAX(date) FROM mydataset.myview)
но, когда я нажимаю на run_query
кнопку, я получаю подсказку с предупреждением
DML не может обновить представление ‘mydateset.myview’
Я не знаю почему, потому что я думаю, что это не имеет ничего общего с синтаксисом
связано ли это с тем, как я сохраняю представление, или с чем-то еще?
Комментарии:
1. Это
mydataset.myview
действительно ПРЕДСТАВЛЕНИЕ? Вы можете вставлять данные только в таблицу, а не в представление.
Ответ №1:
Я понял, что речь идет о манипуляциях с таблицей и представлением. Итак, ВСТАВКА / ВЫБОР работает только с таблицей, когда я меняю запрос на создание таблицы сначала на ВСТАВКУ / ВЫБОР, он работает.
Ответ №2:
Для обновления представления вам необходимо использовать CREATE OR REPLACE VIEW
DDL
Ответ №3:
Вы можете обновлять данные только в таблице или материализованном представлении, но не в представлении.