-- task 1 CREATE TABLE dist_table ENGINE = Distributed( 'cluster_name', -- нет доступа к конфигу infra clickhouse 'mdrozdov', 'logs', rand() ); --rand() это параметр по которому мы распределяем данные при insert на разные ноды, в данном --случае нам это нужно для равномерности распределения, потому что таблица не требует особых связей или тп -- task 2 --Создай VIEW top_active_users, который показывает топ-100 пользователей по числу событий CREATE VIEW top_active_users AS select user_id, count(*) as total_events from events group by user_id order by total_events desc limit 100 -- не подходит для дашборда с миллионами строк, потому что вычисляется каждый раз при вызове -- для дашбордов лучше подойдет materialized view, тк хранит данные запроса и обновляется автоматически -- при вставке новых данных --task 3 CREATE MATERIALIZED VIEW ENGINE = SummingMergeTree order by date mv_clicks_per_day AS select toDate(event_time) as date, count(*) as total_clicks from raw_events group date