数据表梳理
埋点日志表
提前设置好各项埋点,整理得到的埋点数据,埋点简单的来说就是根据业务的需求对每个时刻的用户的行为数据做记录,埋点的方式可以参考上面的链接。
因此有了埋点就会有日志。。
维度表
维度建模将业务抽象成事实和维度两个概念。维度建模的核心是对齐维度。所以维度表的一致性是很重要的!!!数仓维度表
维度表是如何进行处理的呢?
稳定的维度表。比如 时间维度表 这种维度表的属性是稳定的,不需要做天的全量快照数据,直接导入一次即可
缓慢渐变维:维度会随着时间发生缓慢的变化。比如 用户维度表 数据量很大,但是每天变化很小
处理方式:
每天一份全量快照 快捷、方便 浪费存储
拉链表 节约存储
维度的合并 比如 商品、一级品类、二级品类、三级品类,银行的一级机构、二级机构、三级机构 会将这些表join,冗余到一张表里面
维度合并的时候,存在数据冗余,那数据冗余你是如何保证一致性的?
先处理维度表,保证冗余数据来自当天处理的维表,从源头上保证了数据的来源是一致,从而避免数据的不一致性
维度的提取 会员渠道表 是一张分层级的纵表,我们需要把它打横 形成一级渠道 二级渠道 三级渠道 四级渠道 方便我们使用
拉链表
拉链表是针对数据仓库设计中表存储数据的方式而定义的,顾名思义,所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。
拉链表,记录每条信息的生命周期,一旦一条记录的生命周期结束,就要重新开始一条新的记录,并把当前日期放入生效的开始日期;
拉链表适合于:数据会发生变化,但是大部分是不变的;拉链表
宽表
宽表:从字面意义上讲就是字段比较多的数据库表。通常是指业务主题相关的指标、维度、属性关联在一起的一张数据库表。由于把不同的内容都放在同一张表存储,宽表已经不符合三范式的模型设计规范,随之带来的主要坏处就是数据的大量冗余,与之相对应的好处就是查询性能的提高与便捷。这种宽表的设计广泛应用于数据挖掘模型训练前的数据准备,通过把相关字段放在同一张表中,可以大大提高数据挖掘模型训练过程中迭代计算时的效率问题。(一句话,空间换时间,便于训练迭代、减少表关联数量,修改少量数据时不需要该多张表)博客园
窄表
窄表:严格按照数据库设计三范式。尽量减少数据冗余,但是缺点是修改一个数据可能需要修改多张表