spark 宽表 mysql_扒一扒某厂的新零售用户画像系统大宽表 | 知识整理

本文探讨了某厂新零售用户画像系统中,如何使用Spark构建大宽表。通过CoGrouped操作整合维度宽表和用户数据,形成统一的大宽表。对于维度纵表,因其数据特性不整合到列中,而是整合成一列。加工过程包括数据链路上报、清洗、存储至DWS层,然后按画像标准构建标签维表和用户打标数据。最终大宽表存储于HDFS,并利用OLAP引擎进行分析。
摘要由CSDN通过智能技术生成

扒一扒某厂如何构建新零售领域中用户画像的大宽表。字数不多,就600字。

用户画像系统的维度表构建

画像大维表是一个画像系统所支持的所有标签的元数据,一个体系完整的画像设计范围广,一般是由很多团队共同构建。因此构建的时候会有多方参与来形成子画像,需要给每一个子画像分配唯一的ID,标签前缀,存储位置及表信息。

子画像又可以分为宽表和纵表,是两种不同的标准:

维度宽表示例,有value的概念:

维度纵表示例,没有value的概念:

实时用户画像系统的宽表构建

用户画像大宽表需要拉通大维表中的所有子画像,形成统一的的大宽表。

大宽表建设的关键在于Spark中对RDD的CoGrouped,对所有加工好的子画像进行整合:所有维度宽表及用户数据拉通整合成结构一致的大宽表;而由于维度纵表多变,不具备value,不适合将其整合到大宽表列中,会造成列数过多、数据稀疏、schema易变,所以将其数据以空格整合成一列,追加至大宽表最后。

子画像加工:

以商家用户行为子树为例,用户行为数据通过数据链路上报、清洗加工,存储至数仓DWS层。按画像接入标准从DWS加工出子画像的标签维表数据和用户打标数据用于构建大宽表和用户画像数据。

CoGrouped:

按UserKey类型分类子画像,分别做id映射及CoGrouped,形成大宽表。通过配置文件按序加载加工好的子画像集合,依次加载schema,按schema依次加载各子画像data组成Rdd集合。对RDD集合做以用户id为key的CoGrouped,遍历CoGrouped结果集,对缺失的内容(缺失值为子画像)做空值填补,拉通大宽表。

上一步每个UserKey类型的处理结果都会形成大宽表数据,对所有结果集做CoGrouped,拉通不同UserKeyType类型的大宽表,对缺失的数据(缺失值为某KeyType画像)做空值填补,形成最终的大宽表画像数据,存储至HDFS。

最后基于这个大宽表利用OLAP引擎(例如社区的clickhouse等)进行索引构建和数据存储。并对新画像数据规模做合法校验,防止数据污染。用户画像大宽表使用OLAP引擎分析,用户画像大维表使用PostgreSql查询分析。

支撑某厂新零售百亿数据画像系统的服务中台其实包含离线和实时两部分,今天主要分享讨论的是实时模块下用户画像大宽表的构建,有机会再讨论构建之后的OLAP分析引擎或当下实时数仓的构建或离线的部分,欢迎留言讨论,感谢点赞关注。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值