综合项目1-02 数仓主题指标与分层

  • Post author:
  • Post category:其他


3、数仓主题分析

3.1 什么是数仓

面向

主题(针对某一维度)、集成的(数据统一集中管理的)、相对稳定的(相对业务系统数据变动较小的)、反映历史变化(反映出业务或用户行为动态变化的过程)

的数据集合,作为用户画像、推荐系统或业务运营管理决策的基础。

数仓的引入主要是为了做联机或离线数据分析,一方面是对业务系统分析系统的解耦,减少因大量数据运算而影响正常的业务系统运行,另一方面是可以解决普通数据库数据存储极限问题。

3.2 ETL: 数据迁移(抽取、转换、加载)

🏗 是联机数据处理、数据挖掘的基础,负责将分布的数据源抽取到中间层进行清洗、转换、集成,最后加载进数据仓库或数据集市中的过程。

主要是一些基础工具的使用。如:Datastage(IBM,专业、价格高), Infomatica(商业版), 开源的Kettle(水壶)

3.3 数仓分析主题

针对某个主题(中心)展开的分析。


(更多不同行业的主题可以参照神策的各种行业指标即可。)

如:

用户分析主题:


日新统计报表:每日新用户

日活统计报表:每日用户活跃

留存分析报表

来源分析报表等

流量分析主题pv(page view)


pv概况统计报表

pv来源分析报表

pv热点页面分析报表

pv热点栏目分析报表等

app分析主题


app版本分布统计表

app升级情况统计报表等

GMV销量分析主题(总成交金额)


gmv总额统计表

gmv品类统计报表

gmv品牌统计报表

gmv增长趋势报表等

以电商数仓为例:

总体运营、网站流量、销售转化、客户价值、商品品类、营销活动、风控、竞品分析

为主题为指导数仓的建设指标


3.4 本项目中的主题

  • 转化率分析
  • 销售分析
  • 广告效果分析
  • 用户行为规律分析

3.5 事实表及维度举例


访客浏览记录表

user,session,page,lanmu,pinlei,pid,datetime,areacode

u1,s1,/abc/dd,lm1,cat1,p01,2019-10-21 16:18:21,11010

u1,s1,/bbb/cd,lm2,cat3,p08,2019-10-21 16:18:30,11010

u2,s2,/aty/rt,lm3,cat5,p05,2019-10-21 16:17:21,01010

u2,s2,/bbb/cd,lm2,cat3,p08,2019-10-21 16:19:30,01010

上面的表就是一个

事实表

对事实表,假如要计算pv数(事实指标)

我们按如下口径来统计:

  1. 总pv数
  2. 每个栏目的pv数
  3. 每个省份的pv数
  4. 每个商品品类的pv数
  5. 每个省份中的每个栏目的pv数

从这些需求中可以看出,

同一个事实指标,可以通过多种角度(口径)去统计!

这些角度,或口径,就叫

“维度!”


维度组合中的维度越多,统计出来的事实指标粒度越细


3.6 维度建模的常见模型:



星型模型:一层进行关联分析(类似于外键,一个事实信息关联到某一张表,1对1),分析时一个信息join一张表即可


雪花模型:数据关联到多层(即一个事实信息关联到多张表,1对多),分析时针对每一个事实信息都需要进行多表join


星座模型:在实际中应用不是太多,如果应用太多应该考虑一下是否分析的主题或埋点事实设计不合理

4、数仓分层管理

4.1 数仓分层

分层的意义:

数据管理更明晰!运算复用度更高!需求开发更快捷!便于解耦底层业务(数据)变化!

数据仓库中的数据表,往往是

分层管理、分层计算

的:(以阿里为例)

  1. ODS层:操作数据(最原始的数据)层 —

    贴源层
  2. DWD层:数仓明细层,对ods进行切分、加工
  3. DWS层:数仓汇总层,轻度聚合
  4. ADS层: 应用服务层

ODS层:对应着外部数据源ETL到数仓体系之后的表!

DWD层:数仓明细层;一般是对ODS层的表按主题进行加工和划分;本层中表记录的还是明细数据;

DWS层:数仓汇总层;

ADS层: 应用层,主要是一些结果报表

4.2 分层原因与分层举例

① 空间换时间(让大量运算任务可复用)

通过建设多层次的数据模型供用户使用,避免用户直接使用操作型数据,可以更高效的访问数据。

② 把复杂问题简单化

将一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。

③ 便于解耦 “底层业务(数据)的变化”

随着业务的变化,只需要调整

底层的数据

,应用层对业务的调整零感知

— ods层 : 贴源层,跟浏览日志结构保持一致

— dwd层明细表 : 对ods的某些字段进行了更进一步的细化,或者关联了一些额外信息

user,session,page,lanmu,pinlei,pid,datetime,areacode

u1,s1,/abc/dd,lm1,cat1,p01,2019-10-21 16:18:21,11010

u1,s1,/bbb/cd,lm2,cat3,p08,2019-10-21 16:18:30,11010

u2,s2,/aty/rt,lm3,cat5,p05,2019-10-21 16:17:21,01010

u2,s2,/bbb/cd,lm2,cat3,p08,2019-10-21 16:19:30,01010

u1,s3,/bbb/cd,lm2,cat3,p08,2019-10-21 16:18:30,11010

–dws层:  会话聚合  dws_acc_agg_s

用户  会话   pvs

u1    s1     2

u1    s3     1

u2    s2     2

–dws层:  用户聚合 dws_acc_agg_u

用户   会话数  pvs

u1      2       3

u2      1       2

有了上述模型,则:

需求1: 日活总数

需求2: 日访问总次数

需求3: 日pv总数

需求4: 日访问次数>2次的人

需求5: 日访问pv数最高的前100人

需求6: 日访问次数最高的前100人

这些需求,都可以直接从dws_acc_agg_u得出

Gitee位置


https://gitee.com/bigdataimplicit/cooperation.git



版权声明:本文为qq_36269641原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。