source table with Replacing/CollapsingMergeeTree, то View не помощник?
(новые записи, которые прилетают в source и коллапсируются далее, View этого не знает и просто продолжает накручивать каунты)
?
тут сложно да, потом эти блоки мержатся в исходной таблице и MATERIALIZED VIEW ничего про эти мержи не знает.. у вас целевая таблица для VIEW это AggregatingMergeTree? какого эффекта хочется добиться? если optimize_on_insert=1 то будет FINAL применяться к вставляемому iNSERT блоку и он будет передаваться во VIEW если optimize_on_insert=0 на вход view вообще будут сырые данные подаваться
у меня в целевой таблице детальные агрегаты, во вью, я хочу получить более узкие агрегаты с джойном на словарь. Целевая таблица с Replacing Engine
по вашему ответу непонятно что вы имеете ввиду целевая таблица это либо часть view либо отдельная таблица... либо вы слово "целевая " со словом "исходная" перепутали "более узкие аггрегаты" это что? AggregateFunction тип? или что?
да, сорри, запутал вас
ок. в исходной таблице структура типа dim_id, aggregated_value и у нее ReplacingMergeTree и новое значение agregated_value приходит снаружи .. так?
а как вы хотите получить более узкие аггрегаты? вы aggregated_value хотите как то разложить чтоли на какой то атрибут из словаря который через dim_id в dictGet получать будете? или что?
получается что в сорсе у меня агрегаты по 5-6 dimensions. А для текущего отчета мне нужно по 2-3, то есть уже схлопывается часть строк. Плюс условие из словаря: когда этот dim_id определенного значения.
тогда вам вместо materialized view может попробовать PROJECTIONS https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/mergetree#projections это не триггер, это внутри парта лежит сабпарт который получили из вашего парта через SELECT ... в котором можно использовать dictGet если GROUP BY не использовать, то у сабпарта будет такойже ReplcaingMergeTree и мержиться будет все с replace по ORDER BY значениям... и SELECT ... FROM ... FINAL ...GROUP BY по заданным измерениям. должен по идее проекцию использовать и финализировать.. корректно
интересно, сейчас почитаю. Спасибо
Обсуждают сегодня