Hive数仓——标签画像实战

目录

前言

一、数仓建模

1.1  DWD事实表

1.2 DIM维度表

二、标签开发

2.1 DWS宽表—分区存储

2.2 标签属性聚合

2.3 ID-Mapping

前言

 建立用户画像首先建立数据仓库,用于存储用户标签数据。Hive是基于Hadoop的数据仓库工具,依赖于HDFS存储数据,提供的SQL语言可以查询存储在HDFS中的数据。开发一般使用Hive作为数据仓库,存储标签和用户特征库等相关数据。

一、数仓建模

在数据仓库建模的过程中,主要涉及事实表和维度表的建模开发。

1.1  DWD事实表

其中事实表主要围绕业务过程来设计,就应用场景来看,主要包括事务事实表、周期快照事实表和累计快照事实表。

  • 事务事实表:用于描述业务过程,如下单业务记入下单事实表,支付业务记入支付事实表。
  • 周期快照事实表:在一个确定的时间间隔内,对业务状态进行度量。例如查看一个用户的近一年付款金额,近一年购物次数,近30日登陆天数等。(快照:状态)
  • 累计快照事实表:用于查看不同事件之间的时间间隔,例如分析用户从购买到支付的时长,从下单到订单完结的时长等。一般适用于有明确时间周期的业务过程。

1.2 DIM维度表

    维度表主要用于对事实属性的各个方面描述,例如,商品维度包括商品的价格,折扣,品牌,原厂家,型号等方面信息,维度表开发的过程中,经常会遇到维度缓慢变化的情况,对于缓慢变化维一般会采用:(1)重写维度值,对历史数据进行覆盖;(2)保留多条记录,通过插入维度列字段加以区分;(3)开发日期分区表,每日分区数据记录当日维度的属性;(4)开发拉链表按时间变化进行全量存储等方式进行处理。

    在画像系统中主要使用Hive作为数据仓库,开发相应的维度表和事实表来存储标签、人群、应用到服务层的相关数据

二、标签开发

2.1 DWS宽表—分区存储

   如果将用户标签开发成一张大的宽表,在这张宽表下放几十种类型标签,ETL作业将会花费很长时间,而且不便于向这张宽表中新增标签类型。解决这种ETL划花费时间较长的问题,可以从以下几个方面着手:

  • 将数据分区存储,分别执行作业;
  • 标签脚本性能调优;
  • 基于一些标签共同的数据来源,开发对应的中间表;

列举一种用户标签分表,分区存储的解决方案。

     根据标签指标体系的人口属性、行为属性、用户消费、风险控制、社交属性等维度分别建立对应的标签表,进行分表存储对应的标签数据。如下图所示:

  • 人口属性表:dw.userprofile_attritube_all
  • 行为属性表:dw.userprofile_action_all
  • 用户消费表:dw.userprofile_consume_all
  • 风险控制表:dw.userprofile_riskmanage_all
  • 社交属性表:dw.userprofile_social_all

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值