当前位置:网站首页>数仓4.0笔记——数仓建模
数仓4.0笔记——数仓建模
2022-07-23 05:41:00 【丝丝呀】
1 数仓分层

数仓命名规范
- ODS层命名为ods_表名
- DIM层命名为dim_表名
- DWD层命名为dwd_表名
- DWS层命名为dws_表名
- DWT层命名为dwt_表名
- ADS层命名为ads_表名
- 临时表命名为tmp_表名
脚本命名
- 数据源_to_目标_db/log.sh
- 用户行为脚本以log为后缀;业务数据脚本以db为后缀。
表字段类型
- 数量类型为bigint
- 金额类型为decimal(16, 2),表示:16位有效数字,其中小数部分2位
- 字符串(名字,描述信息等)类型为string
- 主键外键类型为string
- 时间戳类型为bigint
2 数仓理论
关系建模与维度建模
关系建模将复杂的数据抽象为两个概念——实体和关系,并使用规范化的方式表示出来。
关系模型严格遵循第三范式(3NF),数据冗余程度低,数据的一致性容易得到保证。由于数据分布于众多的表中,查询会相对复杂,在大数据的场景下,查询效率相对较低。
维度模型以数据分析作为出发点,不遵循三范式,故数据存在一定的冗余。维度模型面向业务,将业务用事实表和维度表呈现出来。表结构简单,故查询简单,查询效率较高。
维度表和事实表
维度表:一般是对事实的描述信息。每一张维表对应现实世界中的一个对象或者概念。 例如:用户、商品、日期、地区等。
维表的特征:
- 维表的范围很宽(具有多个属性、列比较多)
- 跟事实表相比,行数相对较小:通常< 10万条
- 内容相对固定:编码表
事实表中的每行数据代表一个业务事件(下单、支付、退款、评价等)。“事实”这个术语表示的是业务事件的度量值(可统计次数、个数、金额等)。
每一个事实表的行包括:具有可加性的数值型的度量值、与维表相连接的外键,通常具有两个和两个以上的外键。
事实表的特征:
- 非常的大
- 内容相对的窄:列数较少(主要是外键id和度量值)
- 经常发生变化,每天会新增加很多。
1)事务型事实表
以每个事务或事件为单位,例如一个销售订单记录,一笔支付记录等,作为事实表里的一行数据。一旦事务被提交,事实表数据被插入,数据就不再进行更改,其更新方式为增量更新。
2)周期型快照事实表
周期型快照事实表中不会保留所有数据,只保留固定时间间隔的数据,例如每天或者每月的销售额,或每月的账户余额等。
例如购物车,有加减商品,随时都有可能变化,但是我们更关心每天结束时这里面有多少商品,方便我们后期统计分析。
3)累积型快照事实表
累计快照事实表用于跟踪业务事实的变化。例如,数据仓库中可能需要累积或者存储订单从下订单开始,到订单商品被打包、运输、和签收的各个业务阶段的时间点数据来跟踪订单声明周期的进展情况。当这个业务过程进行时,事实表的记录也要不断更新。
维度模型分类:星型模型、雪花模型
注重性能,选星性;注重灵活性,选雪花。数仓中更倾向维度更少的星型模型。
3 数据仓库建模
维度建模一般按照以下四个步骤:
选择业务过程→声明粒度→确认维度→确认事实

边栏推荐
- 通用查询&分页代码
- 简单实现矩形面积块
- The problem that GBK codec cannot decode may be caused by the file name
- 自定义MVC(下)
- 数字藏品开发/元宇宙数字藏品开发
- Man in the middle attacks ARP Spoofing and its linkage with beef XSS
- NepCTF2022 Writeup
- Typescript common types
- Federal Reserve governor Waller: decentralized finance may eventually change the traditional financial market
- Setting optimization and use of MySQL and SQL Server
猜你喜欢

Command Execution Vulnerability and defense

MySQL Index & execution plan

自定义MVC的使用&增删改查

Compilation principle - detailed explanation of syntax analysis

自定义MVC(下)

Custom formula input box

Genesis曾向三箭资本提供23.6亿美元的贷款

ETH转账次数达到一个月高点

XML modeling
![[C language] what is a function? Classification and emphasis of functions (help you quickly classify and remember functions)](/img/3b/39be991aa30b31ff5fb49905de36cf.jpg)
[C language] what is a function? Classification and emphasis of functions (help you quickly classify and remember functions)
随机推荐
Man in the middle attacks ARP Spoofing and its linkage with beef XSS
The tree form based on El table and JS xlsx realize the function of downloading excel (II)
Some operations of composer
Understanding of closures of JS
flex+js实现内部盒子高度跟随其中最大的高度
Custom MVC (Part 1)
The difference between slice() and slice()
mysql修改函数权限未生效
kubesphere haproxy+keepalived (一)
使用require.context完成本地图片批量导入
NFT数字藏品系统开发:深圳晚报《美好时光遨游记》数字藏品上线秒磬
DVWA learning notes
Bank of Indonesia governor said the country is actively exploring encrypted assets
利用动态规划解决最长增长子序列问题
Using dynamic programming to solve the longest growing subsequence problem
ES操作命令
使用el-table懒加载树形表格时的注意点
Vite X Figma 打造设计师专属的 i18n 插件
Principle of file upload vulnerability
数字藏品系统开发/数字藏品方案介绍