Event data properties refactor and design

This commit is contained in:
Francis Cao
2026-04-23 11:15:59 -07:00
parent 93ed3cb89f
commit be6154cb68
22 changed files with 1211 additions and 125 deletions
+39 -1
View File
@@ -305,4 +305,42 @@ CREATE TABLE umami.session_replay
ENGINE = MergeTree()
PARTITION BY toYYYYMM(created_at)
ORDER BY (replay_id, website_id, session_id, visit_id, chunk_index)
SETTINGS index_granularity = 8192;
SETTINGS index_granularity = 8192;
-- Create event_data_pivot
CREATE TABLE IF NOT EXISTS umami.event_data_pivot
(
website_id UUID,
session_id UUID,
event_id UUID,
event_name LowCardinality(String),
url_path String,
created_at DateTime('UTC'),
property_keys AggregateFunction(groupArray, String),
property_values AggregateFunction(groupArray, String),
property_types AggregateFunction(groupArray, UInt32)
)
ENGINE = AggregatingMergeTree()
PARTITION BY toYYYYMM(created_at)
ORDER BY (website_id, event_name, created_at, event_id)
SETTINGS index_granularity = 8192;
CREATE MATERIALIZED VIEW IF NOT EXISTS umami.event_data_pivot_mv
TO umami.event_data_pivot
AS SELECT
website_id,
session_id,
event_id,
event_name,
url_path,
created_at,
groupArrayState(data_key) AS property_keys,
groupArrayState(multiIf(
data_type = 1, ifNull(string_value, ''),
data_type = 2, toString(ifNull(number_value, 0)),
data_type = 4, toString(ifNull(date_value, toDateTime(0))),
''
)) AS property_values,
groupArrayState(data_type) AS property_types
FROM umami.event_data
GROUP BY website_id, session_id, event_id, event_name, url_path, created_at;