数据分层之DWD

数据分层之DWD1DWD是什么?明细粒度事实层以业务过程作为建模驱动,基于每个具体的业务过程特点,构建最细粒度的明细层事实表。可以结合企业的数据使用特点,将明细事实表的某些重要维度属性字段做适当冗余,即宽表化处理.明细粒度事实层(DWD)通常分为三种:事务事实表周期快照事实表累积快照事实表。2DWD中的信息有什么?事实表中一条记录所表达的业务细节程度被称为粒度。通常粒度可以通过两种方式来表述:一种是维度属性组合所表示的细节程度,一种是所表示的具体业务含义。作为度量业务过程的事实,通常为整型或浮点型的十

大家好,又见面了,我是你们的朋友全栈君。

1 DWD是什么?

  • 属于最细粒度的明细层事实表
  • 明细层事实表的某些重要维度属性字段可以适当冗余

2 DWD中的信息有什么?

  • 有一些记录事实的数字,这些数字可以分为三种

(1) 可加性事实是指可以按照与事实表关联的任意维度进行汇总。
示例:交易订单记录表中的【用户ID】可以进行count|distinct count汇总

(2) 半可加性事实只能按照特定维度汇总,不能对所有维度汇总。
示例:库存可以按照地点和商品进行汇总,而按时间维度把一年中每个月的库存累加则毫无意义。
交易订单记录表中的【时间维度、地区维度】按照这类“自然属性”的维度进行统计,在主题层没有实际意义,而偏统计报表类计算更多在DM层进行汇总,或者在DWS层往往是以某个主题数据做核心,与其产生关系的其他主题数据作为度量值来进行统计汇总的。

(3) 完全不可加性
示例:转化率、比率型等事实。

分类

事务事实表
事务事实表用来描述业务过程,跟踪空间或时间上某点的度量事件,保存的是最原子的数据,也称为原子事实表。
示例:
	交易订单记录表、广告投放数据表,这类数据本身是一个业务过程。
周期快照事实表
周期快照事实表中的每行汇总了发生在某一标准周期, 如一天、 一周或一月的多个度量。 其粒度是周期性的时间段, 而不是单个事务。周期快照事实表通常包含许多数据的总计, 因为任何与事实表时间范围一致的记录都会被包含在内。

示例:
	一个月|一周的销售订单周期快照, 用于按产品统计每个月总的销售订单金额和产品销售数量

另外周期快照在库存管理和人力资源系统中有比较广泛的应用
1 零售商希望通过产品和商店分析每天保有商品的库存水平,分析的业务过程是零售商店库存的每日周期快照。 
2 在人力资源管理系统中, 分析包括员工数量、支付的工资、假期天数、新增员工数量、离职员工数量,晋升人员数量等。 这时需要建立一个每月员工统计周期快照。
累积快照事实表
累积快照事实表用来表述过程开始和结束之间的关键步骤事件,覆盖过程的整个生命周期,通常具有多个日期字段来记录关键时间点。当累积快照事实表随着生命周期不断变化时,记录也会随着过程的变化而被修改。

具体实现方式:拉链表形式表达事实数据的变化过程或称历史轨迹
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153182.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 引用数据类型分为哪三类_类都是引用数据类型吗

    引用数据类型分为哪三类_类都是引用数据类型吗Java引用数据类型(String)引用数据类型概述引用数据类型与基本数据类型的差别(举例说明)引用数据类型概述说到引用数据类型,那么何为引用数据类型?引用类型,都可以用null值作为值,也就是说可以在初始化的时候赋值为null,String是引用类型,也就是说可以使用null作为值。引用数据类型与基本数据类型的差别(举例说明)使用基本数据类型:inti1=1inti2=1这种是会在内存中存储两个1的值但是,使用引用类型就不会!Strings=“hello”Str

    2022年10月21日
    0
  • Git常用指令[通俗易懂]

    Git常用指令[通俗易懂]####gitclone远端地址 克隆到本地####gitpulloriginmaster 更新到本地####gitadd.####gitcommit-m"xxx"####gitpushoriginmaster 提交代码####gitbranch分支名称 创建分支####gitcheckout分支名 切换分支####gitbranch-D分支名; 彻底删除分…

    2022年5月29日
    30
  • SQL EXITS用法

    SQL EXITS用法比如在Northwind数据库中有一个查询为SELECTc.CustomerId,CompanyNameFROMCustomerscWHEREEXISTS(SELECTOrderIDFROMOrdersoWHEREo.CustomerID=c.CustomerID) 这里面的EXISTS是如何运作呢?子查询返回的是OrderId字段,可是外面的查询要找的是Cu

    2025年6月24日
    1
  • 孤儿进程与僵尸进程[总结]「建议收藏」

    孤儿进程与僵尸进程[总结]「建议收藏」1、前言之前在看《unix环境高级编程》第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊。今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上面,没有深入

    2022年7月2日
    22
  • UAT SIT QAS DEV PET「建议收藏」

    UAT SIT QAS DEV PET「建议收藏」UAT:UserAcceptanceTesting用户验收测试SIT:SystemIntegrationTesting系统集成测试PET:PerformanceEvaluationTest性能鉴定试验DEV:DevelopmentSystem开发系统QAS:QualityAssurancesystem质量保证体系PRO:professional专…

    2022年6月28日
    38
  • docker离线安装「建议收藏」

    docker离线安装「建议收藏」1.下载Docker二进制文件(离线安装包)下载地址:https://download.docker.com/linux/static/stable/x86_64/本文使用/x86_64/docker-17.12.1-ce.tgz,注意对应操作系统类型。2、通过FTP工具将docker-17.12.1-ce.tgz上传到服务器上3、解压安装包tarzxfdocker-17.12.1-ce.tgz4、将docker相关命令拷贝到/usr/bin,方便直接运行命令sudo

    2022年9月26日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号