• Flink Icerberg 离线输仓-维度建模过程(二)


    维度建模过程

    维度建模一般按照以下四个步骤: 选择业务过程→声明粒度→确认维度→确认事实

    选择业务过程

    在业务系统中,挑选我们感兴趣的业务线,比如下单业务,支付业务,退款业务,物流业务,一条业务线对应一张事实表。

    声明粒度

    数据粒度指数据仓库的数据中保存数据的细化程度或综合程度的级别。 声明粒度意味着精确定义事实表中的一行数据表示什么,应该尽可能选择最小粒度,以此来应各种各样的需求。

    典型的粒度声明如下:

    订单事实表中一行数据表示的是一个订单中的一个商品项; 支付事实表中一行数据表示的是一个支付记录。

    确定维度

    维度的主要作用是描述业务是事实,主要表示的是“谁,何处,何时”等信息。 确定维度的原则是:后续需求中是否要分析相关维度的指标。

    原始数据格式及字段含义

    DWD层 6张基础表

    基础表事实表和维度表
    1. //member_log 用户基本信息表
    2. member_log 用户基本信息表
    3. {
    4. "ad_id": "0", //广告id
    5. "birthday": "1981-08-14", //出生日期
    6. "dt":"20190722", //日期分区
    7. "dn": "webA", //网站分区
    8. "email": "test@126.com",
    9. "fullname": "王69239", //用户姓名
    10. "iconurl": "-",
    11. "lastlogin": "-",
    12. "mailaddr": "-",
    13. "memberlevel": "6", //用户级别
    14. "password": "123456", //密码
    15. "paymoney": "-",
    16. "phone": "13711235451", //手机号
    17. "qq": "10000",
    18. "register": "2016-08-15", //注册时间
    19. "regupdatetime": "-",
    20. "uid": "69239", //用户id
    21. "unitname": "-",
    22. "userip": "123.235.75.48", //ip地址
    23. "zipcode": "-"
    24. }
    25. member_regtype 用户跳转地址注册表
    26. {
    27. "appkey": "-",
    28. "appregurl": "http:www.webA.com/product/register/index.html", //注册时跳转地址
    29. "bdp_uuid": "-",
    30. "createtime": "2015-05-11",
    31. "dt":"20190722", //日期分区
    32. "dn": "webA", //网站分区
    33. "domain": "-",
    34. "isranreg": "-",
    35. "regsource": "4", //所属平台 1.PC 2.MOBILE 3.APP 4.WECHAT
    36. "uid": "0", //用户id
    37. "websiteid": "0" //对应basewebsitelog 下的siteid网站
    38. }
    39. base_ad_log 广告基础表原始json数据
    40. {
    41. "adid": "0", //基础广告表广告id
    42. "adname": "注册弹窗广告0", //广告详情名称
    43. "dn": "webA" //网站分区
    44. }
    45. base_website_log 网站基础表原始json数据
    46. {
    47. "createtime": "2000-01-01",
    48. "creator": "admin",
    49. "delete": "0",
    50. "dn": "webC", //网站分区
    51. "siteid": "2", //网站id
    52. "sitename": "114", //网站名称
    53. "siteurl": "www.114.com/webC" //网站地址
    54. }
    55. //pcentermempaymoneylog 用户支付金额表
    56. {
    57. "dn":"webA", //网站分区
    58. "paymoney":"162.54", //支付金额
    59. "siteid":"1", //网站id对应 对应basewebsitelog 下的siteid网站
    60. "dt":"20190722", //日期分区
    61. "uid":"4376695", //用户id
    62. "vip_id":"0" //对应pcentermemviplevellog vip_id
    63. }
    64. //pcentermem_vip_level_log用户vip等级基础表
    65. {
    66. "discountval": "-",
    67. "dn": "webA", //网站分区
    68. "end_time": "2019-01-01", //vip结束时间
    69. "last_modify_time": "2019-01-01",
    70. "max_free": "-",
    71. "min_free": "-",
    72. "next_level": "-",
    73. "operator": "update",
    74. "start_time": "2015-02-07", //vip开始时间
    75. "vip_id": "2", //vip id
    76. "vip_level": "银卡" //vip级别名称
    77. }

    DWS层 宽表和拉链表

    针对dws层宽表的支付金额(paymoney)和vip等级(vip_level)这两个会变动的字段生成一张拉链表,需要一天进行一次更新

    ADS报表层各指标统计

    统计通过各注册跳转地址(appregurl)进行注册的用户数

    统计各所属网站(sitename)的用户数

    统计各所属平台的(regsourcename)用户数

    统计通过各广告跳转(adname)的用户数

    统计各用户级别(memberlevel)的用户数

    统计各分区网站、用户级别下(dn、memberlevel)的top3用户

  • 相关阅读:
    小程序封装组件简单案例,所有小程序适用(传入参数、外抛事件、传入样式)
    HDMI接口含义
    MySQL数据库入门到精通4--进阶篇(SQL优化)
    记录UNIAPP打包苹果iOS·APP
    数学建模--优化类模型
    FLStudio2024汉化破解版在哪可以下载?
    采用 guidance 提高大模型输出的可靠性和稳定性
    网页制作课作业基于HTML+CSS+JavaScript+jquery仿慕课网教学培训网站设计实例 企业网站制作
    [附源码]计算机毕业设计springboot个人博客系统
    Kotlin的标准函数和静态方法
  • 原文地址:https://blog.csdn.net/wank1259162/article/details/125600428