假设 有过滤维度(筛选条件):设备维度(安卓、苹果),城市维度(北京、上海、广州等),运营商维度(电信、联通、移动),最终呈现的指标是 每日活跃度。 这种数据模型是怎么样的呢?是明细到每一条用户、设备、城市、运营商这样的数据,还是能够提前算好呢?
1条回答 默认 最新
关注 原始数据肯定是有明细,然后可以根据不同维度建立单一维度或者多个维度的汇总表;
另外,根据举例的这个数据量来看,建立一个 日期、设备、城市、运营商级别的合计活跃用户数和总用户数就好了,这个汇总表数据量不大,而且可以满足当前各维度筛选的需求。
这里在效率以及数据准确性上要做个取舍,用下面这个sql做汇总表,肯定比你原表效率要高,但是并非绝对准确,不过既然一天之内跨城市或多设备使用的用户很少,那么这种用户对这个数据的影响也就不会很大。
select 日期,设备,城市,运营商,count(distinct uid) 用户数 from 表 group by 日期,设备,城市,运营商
另外一种方式,以 日期、uid 两个字段作为唯一键,将城市、设备、运营商三者的所有值全部展开成列,值为1时表示是,空表示否,查询时根据不同的条件来指定不同的字段进行查询,这样表的行数也可以大大减少,但是由于城市数过多,很有可能超过列数上限。考虑到一天内一个用户很少跨城市,那么也可以把这个方案修改成日期、uid、城市三个字段作为唯一键,把设备和运营商的所有值展开成列
解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 MATLAB怎么通过柱坐标变换画开口是圆形的旋转抛物面?
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥65 汇编语言除法溢出问题
- ¥15 Visual Studio问题
- ¥20 求一个html代码,有偿