create_user_daily_activity.sql 1.6 KB

12345678910111213141516171819202122232425262728
  1. /*
  2. 用户日活跃聚合表 user_daily_activity
  3. 数据来源:user_events、messages、users,由 dailyCount 脚本每小时汇总
  4. */
  5. SET NAMES utf8mb4;
  6. SET FOREIGN_KEY_CHECKS = 0;
  7. DROP TABLE IF EXISTS `user_daily_activity`;
  8. CREATE TABLE `user_daily_activity` (
  9. `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  10. `activity_date` date NOT NULL COMMENT '统计日期(UTC日)',
  11. `user_id` varchar(64) NOT NULL COMMENT '用户ID',
  12. `active_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '当天是否有≥1次活跃判定事件:1=是',
  13. `session_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '当天去重session数(基于活跃事件)',
  14. `message_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '当天用户消息条数(role=user)',
  15. `first_seen_date` date DEFAULT NULL COMMENT '用户首次出现日期(来自users.created_at,首次写入后不覆盖)',
  16. `user_segment_snapshot` varchar(32) DEFAULT NULL COMMENT 'users.user_segment快照',
  17. `org_id_snapshot` varchar(64) DEFAULT NULL COMMENT 'users.org_id快照',
  18. `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  19. `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  20. PRIMARY KEY (`id`),
  21. UNIQUE KEY `uk_activity_date_user` (`activity_date`,`user_id`),
  22. KEY `idx_activity_date` (`activity_date`),
  23. KEY `idx_user_id` (`user_id`),
  24. KEY `idx_first_seen_date` (`first_seen_date`)
  25. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户日活跃聚合表';
  26. SET FOREIGN_KEY_CHECKS = 1;