mondrian 多维去重设计

最近使用mondrian做用户行为分析,使用到多维

事实表设计如下:

CREATE TABLE f_version(
"date_id" int,
"area_id" int,
"product_id" varchar(255) COLLATE "default",
"mac_id" varchar(255) COLLATE "default"
)


事实表f_version 包含三个维度 date_id(时间)和 area_id(地区)和 product_id(产品),,在mac_id 上取distinct-count值,做为指标—用户数。

这里的mac_id 为用户的网卡地址,以此来做为唯一用户标识,日期维度包含年,月,周,日统计用户数,这里需要做去重处理,

按天统计:如用户A 在一天中登录多次,只算一次登录(要求去重)

按周统计:如用户A在一天中多次登录,一周有多个天数登录,只算一次登录(要求去重)

按照上面的设计其实可以实现需求,但是问题出现在mac_id,目前公司产品用户有20w用户,按照上面的设计,每天ETL后的数据最少要增加20w条

目前的事实表 f_version 的数据已经达到1000w条,MDX查询的时候单个维度还能出来,2个维度基本上是出不来了,按照这样的增长趋势,很快事实表上亿条,请教下各位大大门,怎么改造才能实现,根据时间维度能去重用户呢?


猜你喜欢

转载自blog.csdn.net/jnwzping/article/details/25993333
今日推荐