0x00 前言
随便聊一下用户画像的存储。
现在的用户画像,动不动就是几千几万个标签,标签一多就出现了一些需要克服的难题,比如下面两个:
如何解决频繁新增和删除标签的场景
如何解决不同标签更新时间和频率不同的问题
0x01 数据模型设计
从个人角度来讲,在大数据领域接触比较多的的存储引擎有这几个:Hive(Hdfs)、Hbase、ES。这也会是我们在选择存储系统中几个主要的备选方案。
优缺点就不再分析了。我们切入正题:数据模型该怎么设计?
一、横表
以Hive为例,我们最常用的就是横表,也就是一个 key,跟上它的所有标签。比如下面是一个简单的横表。
用户ID | 性别 | 年龄 | 学历 | 职业 | 月薪 | 月消费能力 |
---|---|---|---|---|---|---|
001 | 男 | 28 | 本科 | 程序员 | 10k-20k | 1k-2k |
002 | 女 | 23 | 大专 | 销售 | 不详 | 100-200 |
那么用横表有什么问题吗?有的,其实也就是前言里面提到的:
由于用户的标签会非常多,而且随着用户画像的深入,会有很多细分领域的标签,这就意味着标签的数量会随时增加&#