实时uv,pv使用elasticsearch计算方案

一、概述

        因为实时计算的特殊性,需要针对多维度的实时显示累计和分时的UV、PV数。目前有22+N个维度(后面简称dimName),N是用户会加的维度,每个dimName都会有维度值(后面简称dimValue),每个dimName都有不同数量的dimValue,在用户选择n(目前n<=5)个dimName时要输出这n个dimName对应的dimValue的组合数,也就是n个中取5个dimName,然后这些dimName下所有dimValue不重复的组合结果。但是每个dimValue有可能有m个dimName(m>0)。

       因为数据量太大,最好将乘法转换成加法,这样所有dimName的dimValue总和也不会很大了,按照正常的思考是拿着dimName去group by方式查,但是需要把所有数据都保存下来,数据量巨大就会产生资源和请求性能的问题。

      我的方案是使用倒排索引做加法,所有dimValue都是索引的字段,uv就是uid为唯一id(唯一id就是MySQL的自增主键),pv就是一个跟之前所有数据id不同的唯一id,这样就可以检索需要的字段了,检索内容就是dimValue。

二、解决方案

针对多维度实时计算的需求用倒排索引来计算结果效率应该是最高的,倒排索引的简单数据结构是

DimValue

                                                       Uid

中国

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值