首页 > 编程知识 正文

数据仓库宽表,数据仓库宽表应用

时间:2023-05-04 11:30:36 阅读:234309 作者:70

昨天在技术交流群里一个问题引发了激烈的讨论,我决定把它记录下来。 问题如下:DWD 中有宽表么?         作为扫盲文章,基础知识我们再普及一下,先介绍下基础相关概念。 数仓分层(来自:个人理解)         ODS、DWD、DWS、ADS 等,具体含义不做解释,数仓分层是大家为了抽象业务,简化计算,从设计上遵循高内聚低耦合的思想,经过漫长积累,业界普遍遵从的逻辑分层。初入数仓行业你可能会被这些东西限制住,但rdmn融会贯通时就会做到活学活用,代码无分层,心中有分层。注意事项,如果考虑分层了,那就要严格遵守,有相关控制手段,文档规范、开发工具等。 维度表         争议较小,不做过多解释。 事实表(来自:个人理解 + 某篇博客)         错误认知:事实表:大家习惯放在 DWD,久而久之认为:DWD = 事实明细表。         维度建模将业务抽象成事实和维度两个概念。事实就是指具体的度量值,维度就是观察这一事实的角度。 事实表的类型:         事务事实表:记录了业务最明细的数据。特点是一旦发生不会再变化。比如,商品交易事务事实、交易流水,操作日志等。         周期快照事实表:具有规律性的、可预见的时间间隔来记录事实。比如 库存日快照表。         累积事实表:用于跟踪业务事实的变化,存储了订单从下单到打包到发货到签收各个业务阶段的时间点数据。记录也会随着过程的变化被修改。 粒度(来自:《大数据之路:阿里巴巴实践》)         事实表中一条记录所表达的业务细节程度被称为粒度。通常粒度可以通过两种方式来表述:一种是维度属性组合所表示的细节程度:一种是所表示的具体业务含义。 宽表(来自:个人理解)         宽表二字的理解,字段相对来说多的表,个人觉得无其他特殊含义,因为太抽象我们需要把它具体一下, 自己的观点也是建立在这个具体上的。 我这里姑且将宽表的含义进行拆分:称心的纸飞机、汇总宽表         汇总宽表:大家经常说的宽表、自己工作经验的理解宽表、目前业界共识度比较高的宽表叫法         称心的纸飞机:字段超多的表,当然也可能包含汇总宽表 汇总宽表作用&目的         目的的在于方便后续使用,减少关联等操作,可直接用于数据分析、报表下钻等。宽表会尽量满足多维,多度量,在技术上也会使用退化维度(提前将维度冗余到表中,减少关联,考虑缓慢变化维的影响,也叫渐变维度)等操作。 个人结论         DWD 中不存在普遍认为的宽表(汇总宽表),存在称心的纸飞机是可能的,范围上:宽表(标题的宽表) >= 称心的纸飞机 >= 宽表(汇总宽表)         本质区别:事实明细表中基本无聚合属性字段(从数据源带过来不算),在拼接宽表时,为了满足维度一致,必然有聚合行为(包含 sum(),count(),max(),min(),first() 等)。宽表(汇总宽表)必然会有聚合属性。个人认为可以通过有无聚合属性来区分一下。 激烈讨论的经过(各位多有得罪,对错仅代表作者自己的观点) 作者支持的观点 作者不支持的观点 (如果你理解了或表示赞同可以帮忙点个赞,谢谢!)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。