# #google-bigquery #materialized-views
Вопрос:
Я не могу создать материализованное представление над секционированной таблицей, хотя я добавил фильтр разделов в сам запрос.
Исходная таблица содержит столбец разделов ts:метка времени, разделенная по дате(ts)
Запрос для материализованного представления:
create materialized view `materialized_view_1`
partition by Date(ts)
as
select Date(ts) date, count(*) count from `source_table`
where date(ts) > "2021-01-01"
group by 1
Ошибка —
Для таблицы
source_table
требуется фильтр разделов. Материализованные представления над таблицей, для которой требуется фильтр разделов, должны иметь фильтр над столбцом разбиения таблицы или выводить столбец.
Комментарии:
1. Столбец разбиения материализованного представления должен соответствовать столбцу разбиения или псевдоколонке (если используется раздел времени приема)базовой таблицы или быть временной меткой над ней. Пожалуйста, смотрите здесь cloud.google.com/bigquery/docs/materialized-views . Пожалуйста, измените свой запрос на «ниже» и попробуйте создать
materialized_view_1
раздел материализованного представления по дате(ts), как выбрать ts, количество(*) количество, начиная сsource_table
которого дата(ts) > «2021-01-01» группа по 12. Я вижу ту же ошибку.
3. Я создал тестовую таблицу, которая разделена по дням в столбце метки времени, а также требуется фильтр разделов. Я запустил запрос ниже, и он действительно создал материализованное представление.создайте или замените
project.dataset.materialized_view_2
раздел материализованного представления по дате(ts), как выберите ts, количество(*) отсчет отproject.dataset.test_partition
того, где дата(ts) > «2021-01-01» группа на 1. Я не получил никакой ошибки, но, хотя созданное материализованное представление разделено на день в столбце ts, я вижу, что оно было создано с помощью фильтра разделов, как это требуется.