create database if not exists `intimate_extractor`; use intimate_extractor; CREATE TABLE IF NOT EXISTS `streamer_list` ( `urlhash` varchar(32) NOT NULL COMMENT '平台', `url` text COMMENT 'url获取streamer列表的url', `platform` varchar(255) NOT NULL COMMENT '平台', `label` varchar(255) DEFAULT NULL COMMENT '必须的时候打上标签', `serialize` blob DEFAULT NULL COMMENT '保存进程的必要计算数据', `update_interval` int DEFAULT 120 COMMENT '分钟单位, 默认120分钟, 下次更新的时间间隔', `update_time` Timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `error_msg` text DEFAULT NULL COMMENT '错误信息', `operator` int DEFAULT 0 COMMENT '操作标志位, 根据不同解析方法有不同标志', PRIMARY KEY (`urlhash`), KEY `platform_idx` (`platform`), KEY `update_time_idx` (`update_time`), KEY `operator_idx` (`operator`) ) CREATE TABLE IF NOT EXISTS `streamer` ( `uid` bigint AUTO_INCREMENT COMMENT '自增UID, 便于查询定位', `platform` varchar(255) NOT NULL COMMENT '平台', `user_id` varchar(255) NOT NULL COMMENT '用户唯一UID', `user_name` varchar(255) DEFAULT NULL COMMENT '用户名字 区别于ID', `live_url` text COMMENT '直播的url', `channel` varchar(128) DEFAULT NULL COMMENT'所属 频道,分类 未必所有平台都有明确的标签', `tag` json DEFAULT NULL COMMENT 'streamer 最新的tag', `ext` json DEFAULT NULL COMMENT '扩展类型, 把一些可能需要但是没字段的数据放在json扩展', `is_update_streamer` tinyint(1) DEFAULT 0 COMMENT '是否需要持续更新streamer的信息. 1为需要,0则否', `is_update_url` tinyint(1) DEFAULT 0 COMMENT '是否需要持续更新update_url. 1为需要,0则否', `update_url` json DEFAULT NULL COMMENT '更新数据的url, 如直播url, profile url等', `update_interval` int DEFAULT 30 COMMENT '分钟单位, 默认30分钟, 下次更新的时间间隔', `update_time` Timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `latest_log_uid` bigint COMMENT '最新更新的日志表的uid, 方便关联', `error_msg` text DEFAULT NULL COMMENT '错误信息', `operator` int DEFAULT 0 COMMENT '操作标志位, 根据不同解析方法有不同标志', PRIMARY KEY (`uid`), UNIQUE KEY `platform_user_id_idx` (`platform`, `user_id`), KEY `platform_idx` (`platform`), KEY `user_id_idx` (`user_id`), KEY `user_name_idx` (`user_name`), KEY `channel_idx` (`channel`), KEY `update_time_idx` (`update_time`), KEY `operator_idx` (`operator`) ); CREATE TABLE IF NOT EXISTS `collect_log` ( `log_uid` bigint AUTO_INCREMENT COMMENT '日志自增UID', `streamer_uid` bigint COMMENT '对应streamer表的UID', `platform` varchar(255) NOT NULL COMMENT '平台名称, 方便于搜索日志分类', `user_id` varchar(255) NOT NULL COMMENT '用户UID', `is_live_streaming` tinyint(1) DEFAULT 0 COMMENT '是否正在直播', `is_error` tinyint(1) DEFAULT 0 COMMENT '是否采集数据的时候出错, 便于定位错误', `followers` bigint(11) DEFAULT NULL COMMENT '关注数', `views` bigint(11) DEFAULT NULL COMMENT '当前直播的观众', `giver` json DEFAULT NULL COMMENT '打赏礼物者,和一些金额数据等, 数据类型异于平台', `gratuity` bigint(11) DEFAULT NULL COMMENT '打赏值的总值, 数据类型异于平台', `live_title` text DEFAULT NULL COMMENT '直播标题', `live_start_time` Timestamp NULL DEFAULT NULL COMMENT '直播开始时间', `live_end_time` Timestamp NULL DEFAULT NULL COMMENT '直播结束时间', `update_time` Timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '数据日志更新时间', `tags` json DEFAULT NULL COMMENT '主播直播的类型标签, 非永久固定', `ext` json DEFAULT NULL COMMENT '扩展字段, 用于一些数据不存在的字段, 便于记录扩展', `error_msg` text DEFAULT NULL COMMENT '错误信息', PRIMARY KEY (`log_uid`), KEY `streamer_uid_idx` (`streamer_uid`), KEY `platform_idx` (`platform`), KEY `user_id_idx` (`user_id`), KEY `is_live_streaming_idx` (`is_live_streaming`), KEY `is_error_idx` (`is_error`), KEY `followers_idx` (`followers`), KEY `views_idx` (`views`), KEY `gratuity_idx` (`gratuity`), KEY `update_time_idx` (`update_time`) )