diff --git a/scripts/db/sql/clickhouse/create_shorturl_analytics.sql b/scripts/db/sql/clickhouse/create_shorturl_analytics.sql new file mode 100644 index 0000000..9a21ea3 --- /dev/null +++ b/scripts/db/sql/clickhouse/create_shorturl_analytics.sql @@ -0,0 +1,73 @@ +-- 创建数据库(如果不存在) +CREATE DATABASE IF NOT EXISTS shorturl_analytics; + +-- 切换到shorturl_analytics数据库 +USE shorturl_analytics; + +-- 删除已存在的表 +DROP TABLE IF EXISTS shorturl_analytics.events; + +-- 创建新表 +CREATE TABLE IF NOT EXISTS shorturl_analytics.events ( + -- 事件基础信息 + event_id UUID DEFAULT generateUUIDv4(), + event_time DateTime64(3) DEFAULT now64(), + event_type String, + -- click, redirect, conversion, error + event_attributes String DEFAULT '{}', + -- 链接基本信息 + link_id String, + link_slug String, + -- 新增slug + link_label String, + -- 新增label + link_title String, + link_original_url String, + link_attributes String DEFAULT '{}', + link_created_at DateTime64(3), + link_expires_at Nullable(DateTime64(3)), + link_tags String DEFAULT '[]', + -- Array of {id, name, attributes} + -- 用户信息 + user_id String, + user_name String, + user_email String, + user_attributes String DEFAULT '{}', + -- 团队信息 + team_id String, + team_name String, + team_attributes String DEFAULT '{}', + -- 项目信息 + project_id String, + project_name String, + project_attributes String DEFAULT '{}', + -- QR码信息 + qr_code_id String, + qr_code_name String, + qr_code_attributes String DEFAULT '{}', + -- 访问者信息 + visitor_id String, + session_id String, + ip_address String, + country String, + city String, + device_type String, + -- 改为String类型 + browser String, + os String, + user_agent String, + -- 来源信息 + referrer String, + utm_source String, + utm_medium String, + utm_campaign String, + -- 交互信息 + time_spent_sec UInt32 DEFAULT 0, + is_bounce Boolean DEFAULT true, + is_qr_scan Boolean DEFAULT false, + conversion_type String, + -- 改为String类型 + conversion_value Float64 DEFAULT 0 +) ENGINE = MergeTree() PARTITION BY toYYYYMM(event_time) +ORDER BY + (event_time, link_id, event_id) SETTINGS index_granularity = 8192; \ No newline at end of file