CREATE TABLE `view_records` ( `saas_id` varchar NOT NULL COMMENT '用户id', `parent_id` int COMMENT 'id', `title` varchar NOT NULL COMMENT '标题', `sub_id` int COMMENT 'id', `num` int COMMENT '集数', `create_time` datetime COMMENT '创建时间', KEY `idx_saasid` (`saas_id`), PRIMARY KEY (`saas_id`,`create_time`) ) DISTRIBUTE BY HASH(`saas_id`) PARTITION BY VALUE(`DATE_FORMAT(create_time, '%Y%m%d')`) LIFECYCLE 14 STORAGE_POLICY='HOT' ENGINE='XUANWU' BLOCK_SIZE=8192 TABLE_PROPERTIES='{"format":"columnstore"}' COMMENT='用户观看记录';
- 其中主键是 PRIMARY KEY (`saas_id`,`create_time`)
- 定义了一个索引 Key `idx_saasid` (`saas_id`),
- 根据create_time 保留 14 天数据
- 跳数索引默认参考clickhouse 8192
- 分区是根据createtime 进行按每日进行分区
- 使用AnalyticDB 是因为clickhouse 去重之后性能骤减。而且去重比较麻烦。 AnalyticDB和mysql 实例相比确实性能有不小提升
- 不过AnalyticDB datetime 类型不能支持到毫秒 只能精确到秒