From b8ea4e7097412d68a9f7ae059ab39f52a296a971 Mon Sep 17 00:00:00 2001 From: William Tso Date: Thu, 13 Mar 2025 18:43:15 +0800 Subject: [PATCH] add fake event data --- backend/db/sql/clickhouse/insert-events.sql | 268 ++++++++++++++++++++ 1 file changed, 268 insertions(+) create mode 100644 backend/db/sql/clickhouse/insert-events.sql diff --git a/backend/db/sql/clickhouse/insert-events.sql b/backend/db/sql/clickhouse/insert-events.sql new file mode 100644 index 0000000..5199496 --- /dev/null +++ b/backend/db/sql/clickhouse/insert-events.sql @@ -0,0 +1,268 @@ +-- 插入follow事件 +INSERT INTO + events ( + event_id, + timestamp, + date, + hour, + user_id, + influencer_id, + content_id, + project_id, + event_type, + funnel_stage, + platform, + content_type, + content_status, + sentiment, + followers_count, + followers_change + ) +SELECT + generateUUIDv4() as event_id, + now() - interval rand() % 30 day - interval rand() % 24 hour as timestamp, + toDate(timestamp) as date, + toHour(timestamp) as hour, + concat('user_', toString(number % 1000)) as user_id, + concat('influencer_', toString(1 + number % 10)) as influencer_id, + concat('content_', toString(number % 500)) as content_id, + 'project_demo' as project_id, + 'follow' as event_type, + 'interest' as funnel_stage, + multiIf( + number % 4 = 0, + 'Instagram', + number % 4 = 1, + 'TikTok', + number % 4 = 2, + 'Twitter', + 'Facebook' + ) as platform, + multiIf( + number % 6 = 0, + 'video', + number % 6 = 1, + 'image', + number % 6 = 2, + 'text', + number % 6 = 3, + 'story', + number % 6 = 4, + 'reel', + 'live' + ) as content_type, + 'approved' as content_status, + multiIf( + number % 3 = 0, + 'positive', + number % 3 = 1, + 'neutral', + 'negative' + ) as sentiment, + 100000 + (number % 900000) as followers_count, + 1 as followers_change +FROM + numbers(1, 300); + +-- 插入300个follow事件 +-- 插入unfollow事件(数量少于follow以保证净增长) +INSERT INTO + events ( + event_id, + timestamp, + date, + hour, + user_id, + influencer_id, + content_id, + project_id, + event_type, + funnel_stage, + platform, + content_type, + content_status, + sentiment, + followers_count, + followers_change + ) +SELECT + generateUUIDv4() as event_id, + now() - interval rand() % 30 day - interval rand() % 24 hour as timestamp, + toDate(timestamp) as date, + toHour(timestamp) as hour, + concat('user_', toString(number % 1000)) as user_id, + concat('influencer_', toString(1 + number % 10)) as influencer_id, + concat('content_', toString(number % 500)) as content_id, + 'project_demo' as project_id, + 'unfollow' as event_type, + 'interest' as funnel_stage, + multiIf( + number % 4 = 0, + 'Instagram', + number % 4 = 1, + 'TikTok', + number % 4 = 2, + 'Twitter', + 'Facebook' + ) as platform, + multiIf( + number % 6 = 0, + 'video', + number % 6 = 1, + 'image', + number % 6 = 2, + 'text', + number % 6 = 3, + 'story', + number % 6 = 4, + 'reel', + 'live' + ) as content_type, + 'approved' as content_status, + multiIf( + number % 3 = 0, + 'positive', + number % 3 = 1, + 'neutral', + 'negative' + ) as sentiment, + 100000 + (number % 900000) as followers_count, + -1 as followers_change +FROM + numbers(1, 120); + +-- 插入120个unfollow事件 +-- 插入like事件 +INSERT INTO + events ( + event_id, + timestamp, + date, + hour, + user_id, + influencer_id, + content_id, + project_id, + event_type, + funnel_stage, + platform, + content_type, + content_status, + sentiment, + likes_count, + likes_change + ) +SELECT + generateUUIDv4() as event_id, + now() - interval rand() % 30 day - interval rand() % 24 hour as timestamp, + toDate(timestamp) as date, + toHour(timestamp) as hour, + concat('user_', toString(number % 1000)) as user_id, + concat('influencer_', toString(1 + number % 10)) as influencer_id, + concat('content_', toString(number % 500)) as content_id, + 'project_demo' as project_id, + 'like' as event_type, + 'interest' as funnel_stage, + multiIf( + number % 4 = 0, + 'Instagram', + number % 4 = 1, + 'TikTok', + number % 4 = 2, + 'Twitter', + 'Facebook' + ) as platform, + multiIf( + number % 6 = 0, + 'video', + number % 6 = 1, + 'image', + number % 6 = 2, + 'text', + number % 6 = 3, + 'story', + number % 6 = 4, + 'reel', + 'live' + ) as content_type, + 'approved' as content_status, + multiIf( + number % 3 = 0, + 'positive', + number % 3 = 1, + 'neutral', + 'negative' + ) as sentiment, + 1000 + (number % 9000) as likes_count, + 1 as likes_change +FROM + numbers(1, 500); + +-- 插入500个like事件 +-- 插入unlike事件(数量少于like以保证净增长) +INSERT INTO + events ( + event_id, + timestamp, + date, + hour, + user_id, + influencer_id, + content_id, + project_id, + event_type, + funnel_stage, + platform, + content_type, + content_status, + sentiment, + likes_count, + likes_change + ) +SELECT + generateUUIDv4() as event_id, + now() - interval rand() % 30 day - interval rand() % 24 hour as timestamp, + toDate(timestamp) as date, + toHour(timestamp) as hour, + concat('user_', toString(number % 1000)) as user_id, + concat('influencer_', toString(1 + number % 10)) as influencer_id, + concat('content_', toString(number % 500)) as content_id, + 'project_demo' as project_id, + 'unlike' as event_type, + 'interest' as funnel_stage, + multiIf( + number % 4 = 0, + 'Instagram', + number % 4 = 1, + 'TikTok', + number % 4 = 2, + 'Twitter', + 'Facebook' + ) as platform, + multiIf( + number % 6 = 0, + 'video', + number % 6 = 1, + 'image', + number % 6 = 2, + 'text', + number % 6 = 3, + 'story', + number % 6 = 4, + 'reel', + 'live' + ) as content_type, + 'approved' as content_status, + multiIf( + number % 3 = 0, + 'positive', + number % 3 = 1, + 'neutral', + 'negative' + ) as sentiment, + 1000 + (number % 9000) as likes_count, + -1 as likes_change +FROM + numbers(1, 200); + +-- 插入200个unlike事件 \ No newline at end of file