• 数仓建模面试


    1.数仓是怎么建模的?
    a. mysql->EZDML->根据外键把所有表关联起来

    b. ods层
    保持数据原貌不做任何修改,数据备份
    Snappy压缩, 压缩速率是最高的 》 LZO》Gzip, 但是不支持文件切片,parquet列式存储,ORC是采用行列存储的,ORC的对比parquet压缩速率要高,导入速率也是最快的,可以考虑后期换成ORC
    创建分区表 ,防止全表扫描

    c. DWD
    1.选择业务
    要根据ADS指标去选,
    2.声明粒度
    其实就是一行数据干了什么事 ? 一行信息代表一次下下单,一天的下单,一个月的下单,一般选择最小粒度,别聚合
    3.确认维度
    维度:时间,地域,用户,产品维度
    4.确认事实
    确认事实表的度量值: 比如,次数,金额,个数等
    5.维度建模, 采用维度建模的星型模型,事实表为一级维度
    6.维度退化:将产品表进行拆分,产品表,资源池表,地区维度
    7.spark sql数据清洗,空值过滤,脱敏等,清洗到万分之一
    8.snappy压缩+ 列式存储

    DWS层:数据汇总层
    宽表
    1.怎么确定宽表?
    站在维度的角度去看事实
    2.宽表的字段是怎么来的呢?
    站在维度的角度去看事实表的度量值

    DWT:主题宽表
    时间区间,业务事实的累计,这一层只保留三天数据,开始时间,结束时间

    ads指标层
    报表
    指标:
    1.用户活跃:在启动日志中统计不同设备的ID出现的次数,去重
    2.用户新增:用户活跃表left join新增表,用户新增表中mid为空,即为用户新增
    3.用户活跃:留存用户=前一天新增 join 今天的活跃, 今天的最后一次登陆日期为前一天的用户就是留存用户 留存率 = 留存用户/ 前一天新增用户

    主维表:
    1.产品表 opm_service_info
    相关维表:opm_service_template (产品模板表) opm_serivce_atrr_template(产品属性表),(多值属性,key v存储)
    2.用户表 opm_user_user
    相关维表:客户表,客户组织信息表:客户表:opm_customer
    3.资源池表:opm_pool
    4.用户区域表

    DWS主题宽表来源
    登陆次数: page_log计算user_id和最后登陆的页面不等于null
    加购物车次数,商品收藏次数:动作日志表(action_log)判断 add页面参数,sum if进行聚合
    用户点击备案次数:
    用户操作云主机次数:
    用户硬盘扩容次数等100多个行为日志
    订单相关:订单事实表里面取数

    DWT:(全量用户,保留2天数据)
    登陆: 最近1/7/30登陆次数,登陆天数, login_count次数累加
    累计登陆次数: sum(login_count)
    首日活跃: 登陆日期最小值,需要查询用户维度表的create_time 9999分区
    末日活跃: 登陆日期最大值
    下单:
    首日下单:min(if 订单次数》0)
    末日下单:max(if 订单金额大于0)
    统计:1/7/30 sum(if(日期< dateAdd())) 最后 用用户维度表left join nvl(count ,0)

    ads:
    用户行为统计: last ,pageId 不能存在环,桑基图,获取下一行的数据 ,然后加上id,避免环,然后通过row_number拼接成序号

    用户指标统计:
    划分数据域:
    指标:
    最近1日、7日、30日
    新注册用户数: 找出每个用户的登陆日期

    新增下单用户数:找出每个用户的首次下单日期

    下单总金额:统计订单当天的最后总金额

    下单用户数:使用sum(if()) 统计末次下单金额不为空

    活跃用户中未下单用户数:使用sum(if)求末次最后金额等于0 并且最后登陆日期=今天的

    流失用户数(user_churn_count):七日前活跃,最近七日均未活跃, 这个很简单, 日期=今天,并且最后一次登陆时间为七天前

    回流用户数:之前的流失用户,在今天活跃了 ,, 先求今天活跃用户数,再求出前一天的用户并且最后登陆时间为六天的数据,join后求count()

    用户行为漏洞分析:
    政企用户 互联网用户 私有云用户 ——》

    维度:
    政企用户id
    私有云用户id
    互联网用户id

  • 相关阅读:
    神经网络系列---回归问题和分类问题
    白话理解和使用DOCKER VOLUME
    2019年1+X 证书 Web 前端开发中级理论考试——易错题、陌生但又会考到的题目原题+答案
    SpringMvc(二)HandlesTypes源码
    python实现spring boot应用程序启动和停止的脚本
    在R语言中进行缺失值填充:估算缺失值
    SGM321运算放大器(1MHZ带宽增益,0.52V/us压摆率,CMOS低功耗单运放)
    关于ES集群信息的一些查看
    windows命令行XCOPY命令
    ASEMI肖特基二极管SBT40100VFCT规格,SBT40100VFCT封装
  • 原文地址:https://blog.csdn.net/m0_46914845/article/details/126163184