当前位置:网站首页>数仓建模面试
数仓建模面试
2022-08-04 17:49:00 【大数据小理】
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
边栏推荐
- 基于大学生内卷行为的调查研究
- The second step through MySQL in four steps: MySQL index learning
- leetcode/有效的回文串,含有不需要判断回文的字符
- pyhon爬虫之爬取图片(亲测可用)
- clickhouse 上下线表
- 【web自动化测试】Playwright快速入门,5分钟上手
- 【web自动化测试】Playwright快速入门,5分钟上手
- Thrift IDL Sample File
- DSPE-PEG-DBCO,DBCO-PEG-DSPE,磷脂-聚乙二醇-二苯并环辛炔科研实验用
- 电源测试系统-ATE电源测试系统-ACDC电源模块测试系统NSAT-8000
猜你喜欢
《中国综合算力指数》《中国算力白皮书》《中国存力白皮书》《中国运力白皮书》在首届算力大会上重磅发出
荣耀发布开发者服务平台,智慧生态合作提速
从-99打造Sentinel高可用集群限流中间件
Understand Chisel language. 32. Chisel advanced hardware generator (1) - parameterization in Chisel
codeforces每日5题(均1600)-第二十八天
基于clipboard.js对复制组件的封装
Introduction of three temperature measurement methods for PT100 platinum thermal resistance
启动项目(瑞吉外卖)
框架整合(二)- 使用Apache ShardingSphere实现数据分片
[Web Automation Test] Quick Start with Playwright, 5 minutes to get started
随机推荐
Learning and Exploration-Introducing Baidu Statistics to the Website
集群监控——Zabbix使用
嵌入式开发:使用堆栈保护提高代码完整性
两个对象相同数据赋值
【日记】高并发下的DB分库分表分区策略
C. LIS or Reverse LIS?
JS中null与undefined的异同点
dotnet core 输出调试信息到 DebugView 软件
基于clipboard.js对复制组件的封装
如何让 JS 代码不可断点
《机器学习的随机矩阵方法》
CF86D Powerful array
树莓派利用autofs自动挂载/卸载外部硬盘
Cron表达式
NLP未来,路在何方?从学术前沿和业界热点谈起
[Web Automation Test] Quick Start with Playwright, 5 minutes to get started
2022年7月31日 暑假第三周总结
【日记】UPNP功能会允许自动给光猫追加端口映射
华为云计算HCIE之oceanstor仿真器的安装教程
身为程序员的我们如何卷死别人?破局重生。