目录

  • 1-dws公共汇总粒度事实层介绍
  • 2-dws事实层设计原则
  • 3-dws事实表设计规范
  • 4-dws建表示例

1-dws公共汇总粒度事实层介绍

公共汇总粒度事实层DWS(Data Warehouse Summary)以分析的主题对象作为建模驱动,基于上层的应用和产品的指标需求构建公共粒度的汇总指标事实表。公共汇总层的一个表通常会对应一个派生指标。

2-dws事实层设计原则

聚集是指针对原始明细粒度的数据进行汇总。DWS公共汇总层是面向分析对象的主题聚集建模。在本教程中,最终的分析目标为:最近一天某个类目(例如:厨具)商品在各省的销售总额、该类目Top10销售额商品名称、各省用户购买力分布。因此,我们可以以最终交易成功的商品、类目、买家等角度对最近一天的数据进行汇总。数据聚集的注意事项如下:

  • 聚集是不跨越事实的。聚集是针对原始星形模型进行的汇总。为获取和查询与原始模型一致的结果,聚集的维度和度量必须与原始模型保持一致,因此聚集是不跨越事实的。
  • 聚集会带来查询性能的提升,但聚集也会增加ETL维护的难度。当子类目对应的一级类目发生变更时,先前存在的、已经被汇总到聚集表中的数据需要被重新调整。

此外,进行DWS层设计时还需遵循以下原则:

  • 数据公用性:需考虑汇总的聚集是否可以提供给第三方使用。您可以思考,基于某个维度的聚集是否经常用于数据分析中。如果答案是肯定的,就有必要把明细数据经过汇总沉淀到聚集表中。
  • 不跨数据域:数据域是在较高层次上对数据进行分类聚集的抽象。数据域通常以业务过程进行分类,如交易统一划到交易域下, 商品的新增、修改放到商品域下。
  • 区分统计周期:在表的命名上要能说明数据的统计周期,如_1d 表示最近1天, td 表示截至当天,nd 表示最近N天。

3-dws事实表设计规范

公共汇总事实表命名规范:
dws_{业务板块缩写/pub}{数据域缩写}{数据粒度缩写}[{自定义表命名标签缩写}]{统计时间周期范围缩写}。

  • 关于统计实际周期范围缩写,缺省情况下,离线计算应该包括最近一天(_1d),最近N天(_nd)和历史截至当天(_td)三个表。如果出现_nd的表字段过多需要拆分时,只允许以一个统计周期单元作为原子拆分。即一个统计周期拆分一个表,例如最近7天(_1w)拆分一个表。不允许拆分出来的一个表存储多个统计周期。
  • 对于小时表[无论是天刷新还是小时刷新],都用_hh来表示。
  • 对于分钟表[无论是天刷新还是小时刷新],都用_mm来表示。

举例如下:

  • dws_asale_trd_byr_subpay_1d (A电商公司买家粒度交易分阶段付款一日汇总事实表)
  • dws_asale_trd_byr_subpay_td(A电商公司买家粒度分阶段付款截至当日汇总表)
  • dws_asale_trd_byr_cod_nd(A电商公司买家粒度货到付款交易汇总事实表)
  • dws_asale_itm_slr_td(A电商公司卖家粒度商品截至当日存量汇总表)
  • dws_asale_itm_slr_hh(A电商公司卖家粒度商品小时汇总表)—维度为小时
  • dws_asale_itm_slr_mm(A电商公司卖家粒度商品分钟汇总表)—维度为分钟

4-dws建表示例

CREATE TABLE IF NOT EXISTS dws_asale_trd_byr_ord_1d
(buyer_id                BIGINT COMMENT '买家id',buyer_nick              STRING COMMENT '买家昵称',mord_prov               STRING COMMENT '收货人省份',cate_id                 BIGINT COMMENT '商品类目id',cate_name               STRING COMMENT '商品类目名称',confirm_paid_amt_sum_1d DOUBLE COMMENT '最近一天订单已经确认收货的金额总和'
)
COMMENT '买家粒度所有交易最近一天汇总事实表'
PARTITIONED BY (ds         STRING COMMENT '分区字段YYYYMMDD')
LIFECYCLE 36000;CREATE TABLE IF NOT EXISTS dws_asale_trd_itm_ord_1d
(item_id                 BIGINT COMMENT '商品ID',item_title               STRING COMMENT '商品名称',cate_id                 BIGINT COMMENT '商品类目id',cate_name               STRING COMMENT '商品类目名称',mord_prov               STRING COMMENT '收货人省份',confirm_paid_amt_sum_1d DOUBLE COMMENT '最近一天订单已经确认收货的金额总和'
)
COMMENT '商品粒度交易最近一天汇总事实表'
PARTITIONED BY (ds         STRING COMMENT '分区字段YYYYMMDD')
LIFECYCLE 36000;

dws公共汇总粒度事实层设计相关推荐

  1. dwd明细粒度事实层设计

    目录 1-数仓dwd事实层介绍 2-数仓dwd层事实表设计原则 3-数仓dwd层事实表设计规范 4-建表示例 1-数仓dwd事实层介绍 明细粒度事实层以业务过程驱动建模,基于每个具体的业务过程特点,构 ...

  2. 【离线数仓-9-数据仓库开发DWS层设计要点-1d/nd/td表设计】

    离线数仓-9-数据仓库开发DWS层设计要点-1d/nd/td表设计 离线数仓-9-数据仓库开发DWS层设计要点-1d/nd/td表设计 一.DWS层设计要点 二.DWS层设计分析 - 1d/nd 1. ...

  3. 大数据中台架构以及建设全流程二(Daas层设计)

    目录 背景 面临问题                                解决方案 数仓架构演进 离线数仓架构 案例 Lambda数仓架构 案例 ​ 问题点 Kappa数仓架构 架构选型 数 ...

  4. 数据仓库设计与开发-1-分层设计

    分层设计 为什么要分层 如何分层 理论 技术实践 举个例子 如何更优雅一些 问答 总结 其他参考 ODS层的数据需要做数据清洗吗 一种通用的数据仓库分层方法 转载 https://www.cnblog ...

  5. 大数据之路—— 事实表设计

    十一.数据模型篇-- 事实表设计 11.1 事实表基础 11.1.1 事实表特性 11.1.2 事实表设计原则 11.1.3 事实的设计准则 11.1.4 事实表设计方法 11.2 事务事实表 11. ...

  6. 维度建模的事实表设计

    事实表基础 事实表特性 事实表作为数据仓库维度建模的核心,紧紧围绕着业务过程来设计,通过获取描述业务过程的度量来表达业务过程,包含了引用的维度和与业务过程有关的度量. 事实表中一条记录所表达的业务细节 ...

  7. 数据仓库维度建模——事实表设计

    一. 事实表相关概念 1. 粒度 1.1 什么是粒度 事实表中一条记录说表达的业务细节程度被称为粒度. 1.2 两种常用表现形式 (1)使用维度属性组合来表示的细节程度. (2)表示的具体的业务含义. ...

  8. 大数据之路读书笔记-11事实表设计

    大数据之路读书笔记-11事实表设计 文章目录 大数据之路读书笔记-11事实表设计 11.1 事实表基础 11.1.1 事实表特性 11.1.2 事实表设计原则 11.1.3 事实表设计方法 11.2 ...

  9. OneData方法论-事实表设计

    事实表设计 事实表特性 事实表作为数据仓库维度建模的核心,紧紧围绕着业务过程来设计. 事实表中一条记录所表达的业务细节程度被称为粒度,粒度可以通过两种方式来表达:一种是维度属性组合所表示的细节程度,一 ...

最新文章

  1. ip and port check 正则
  2. 开通域名绑定DDNS
  3. Java堆内存是线程共享的!面试官:你确定吗?
  4. [保护模式]段间跳转和跨段跳转
  5. java txt 写入_JAVA 写入TXT文件
  6. linux中权限的名词解释,Linux的基本权限和特殊权限
  7. 软件开发 thoughtworks 技术面_【软件开发】10月29日比赛详细预告
  8. Linux iperf 网络传输性能测试工具
  9. OpenCV初探 —— VS2019配置环境
  10. 全库检索包含某个值的表名和所在的列.
  11. 操作系统编写之引导扇区 1
  12. 目前流行的源程序版本管理软件和项目管理的软件优缺点
  13. 非平稳序列的确定性分析
  14. referenced libraries
  15. 机器学习(十一):新闻摘要提取小案例
  16. P1551 亲戚 (并查集)
  17. 不要让毒鸡汤毁了你,35岁没有那么可怕,保持专注更重要
  18. 北大数学天才出家12年后还俗引热议,当年放弃MIT全奖,如今主动降薪1万
  19. Unity3D中Rigidbody.velocity和Addforce的区别
  20. 2020年9月大学英语六级作文

热门文章

  1. 特斯拉、华为们要用软件重新定义汽车?
  2. 视觉惯性单目SLAM (二) 算法基础知识
  3. Server returns invalid timezone. Go to ‘Advanced‘ tab and set ‘serverTimezon‘
  4. SpringBoot 项目实战 ~ 9.数据缓存
  5. Debian内核防毒AntiVir安装
  6. python条件语句多条件_Python简介,第3章-条件语句
  7. 十二个“一”的文艺创作拓展:关于星座
  8. vue3 预览docx文件
  9. PLASTIGAUGE塑料间隙规的正确使用步骤你知道多少?
  10. UbuntuKylin引领我们走上开放创新之路