task up to arrays
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
-- 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
|
||||
Reference in New Issue
Block a user