1+ -- drop projections
2+ ALTER TABLE umami .website_event DROP PROJECTION website_event_url_path_projection;
3+ ALTER TABLE umami .website_event DROP PROJECTION website_event_referrer_domain_projection;
4+
5+ -- drop view
6+ DROP TABLE umami .website_event_stats_hourly_mv ;
7+
8+ -- rename columns
9+ ALTER TABLE umami .website_event RENAME COLUMN " subdivision1" TO " region" ;
10+ ALTER TABLE umami .website_event_stats_hourly RENAME COLUMN " subdivision1" TO " region" ;
11+
12+ -- drop columns
13+ ALTER TABLE umami .website_event DROP COLUMN " subdivision2" ;
14+
15+ -- recreate projections
16+ ALTER TABLE umami .website_event
17+ ADD PROJECTION website_event_url_path_projection (
18+ SELECT * ORDER BY toStartOfDay(created_at), website_id, url_path, created_at
19+ );
20+
21+ ALTER TABLE umami .website_event MATERIALIZE PROJECTION website_event_url_path_projection;
22+
23+ ALTER TABLE umami .website_event
24+ ADD PROJECTION website_event_referrer_domain_projection (
25+ SELECT * ORDER BY toStartOfDay(created_at), website_id, referrer_domain, created_at
26+ );
27+
28+ ALTER TABLE umami .website_event MATERIALIZE PROJECTION website_event_referrer_domain_projection;
29+
30+ -- recreate view
31+ CREATE MATERIALIZED VIEW umami .website_event_stats_hourly_mv
32+ TO umami .website_event_stats_hourly
33+ AS
34+ SELECT
35+ website_id,
36+ session_id,
37+ visit_id,
38+ hostname,
39+ browser,
40+ os,
41+ device,
42+ screen,
43+ language,
44+ country,
45+ region,
46+ city,
47+ entry_url,
48+ exit_url,
49+ url_paths as url_path,
50+ url_query,
51+ utm_source,
52+ utm_medium,
53+ utm_campaign,
54+ utm_content,
55+ utm_term,
56+ referrer_domain,
57+ page_title,
58+ gclid,
59+ fbclid,
60+ msclkid,
61+ ttclid,
62+ li_fat_id,
63+ twclid,
64+ event_type,
65+ event_name,
66+ views,
67+ min_time,
68+ max_time,
69+ tag,
70+ timestamp as created_at
71+ FROM (SELECT
72+ website_id,
73+ session_id,
74+ visit_id,
75+ hostname,
76+ browser,
77+ os,
78+ device,
79+ screen,
80+ language,
81+ country,
82+ region,
83+ city,
84+ argMinState(url_path, created_at) entry_url,
85+ argMaxState(url_path, created_at) exit_url,
86+ arrayFilter(x - > x != ' ' , groupArray(url_path)) as url_paths,
87+ arrayFilter(x - > x != ' ' , groupArray(url_query)) url_query,
88+ arrayFilter(x - > x != ' ' , groupArray(utm_source)) utm_source,
89+ arrayFilter(x - > x != ' ' , groupArray(utm_medium)) utm_medium,
90+ arrayFilter(x - > x != ' ' , groupArray(utm_campaign)) utm_campaign,
91+ arrayFilter(x - > x != ' ' , groupArray(utm_content)) utm_content,
92+ arrayFilter(x - > x != ' ' , groupArray(utm_term)) utm_term,
93+ arrayFilter(x - > x != ' ' , groupArray(referrer_domain)) referrer_domain,
94+ arrayFilter(x - > x != ' ' , groupArray(page_title)) page_title,
95+ arrayFilter(x - > x != ' ' , groupArray(gclid)) gclid,
96+ arrayFilter(x - > x != ' ' , groupArray(fbclid)) fbclid,
97+ arrayFilter(x - > x != ' ' , groupArray(msclkid)) msclkid,
98+ arrayFilter(x - > x != ' ' , groupArray(ttclid)) ttclid,
99+ arrayFilter(x - > x != ' ' , groupArray(li_fat_id)) li_fat_id,
100+ arrayFilter(x - > x != ' ' , groupArray(twclid)) twclid,
101+ event_type,
102+ if(event_type = 2 , groupArray(event_name), []) event_name,
103+ sumIf(1 , event_type = 1 ) views,
104+ min (created_at) min_time,
105+ max (created_at) max_time,
106+ arrayFilter(x - > x != ' ' , groupArray(tag)) tag,
107+ toStartOfHour(created_at) timestamp
108+ FROM umami .website_event
109+ GROUP BY website_id,
110+ session_id,
111+ visit_id,
112+ hostname,
113+ browser,
114+ os,
115+ device,
116+ screen,
117+ language,
118+ country,
119+ region,
120+ city,
121+ event_type,
122+ timestamp );
0 commit comments