以阿里云的maxcompute的数据仓库架构为例,

从上往下定义,

dwp的数据,来源是dws+dim,最主要是dws。这里不讨论dim的作用。

dws的数据来源于dwd。

dwd的数据来源于ods。

--------

接下来我们定义原子指标和派生指标。

派生指标定义在dws层。并且绑定原子指标。所有的应用数据由派生指标去group by。

原子指标定义在dwd层+虚拟层。原子指标绑定一个dwd的度量值,但是有可能会有计算,所以不完全在dwd,运行的时候可能会进行计算。称为一个虚拟的层。

当然可以把这个虚拟层做出来,专门做一层原子指标层。

这个时候我们的指标管理系统里面应该有以下东西:

  指标名称  指标来源 指标口径
原子指标 可以与度量值一致,也可以不一致 绑定dwd的表名和字段

1.和绑定的dwd的度量值完全对应

2.需要一点计算,录入计算逻辑

派生指标 修饰词+原子指标名称+时间周期 绑定一个原子指标   

①修饰词:作为where过滤的字段

②时间周期:近7天,近一个月等

③聚合操作:平均,求和等

③聚合维度,也可以不录,在模型管理里录

应用指标 同环比+修饰词+派生指标 绑定一个派生指标

①聚合的维度:派生指标所在表的字段

②可能有一些简单的过滤。

③可能会有一些同环比的计算

绝对不允许有字段计算,如加减乘除,if转化等,如果有,说明逻辑没有下沉。

举个例子:

应用指标需要:当月人流量大于2w次并且支付渠道为支付宝的的平均订单金额净增长,维度:每一个城市

拥有的业务过程:订单表。门店人流量表。

  名称   来源 口径
原子指标 订单金额 交易表:支付金额,退款金额 支付金额-退款金额
派生指标

当月人流量大于2w次

并且支付渠道为支付宝的的平均订单金额

订单金额

①修饰词:

where 支付渠道=支付宝

having 月人流量>2w

②时间周期

where 订单时间是一个月

③聚合操作:平均

③维度:城市,品类

(聚合维度比业务指标更宽)

应用指标

当月人流量大于2w次

并且支付渠道为支付宝的的平均订单金额净增长

当月人流量大于2w次

并且支付渠道为支付宝的的平均订单金额

①聚合维度:城市

②环比计算,当月减上月

以上将一个应用指标的计算逻辑沉淀到不同的层次中的指标管理方式,实现了从度量值到最后应用指标的统一,再加上术语管理系统,

可以解决指标同名不同义,同义不同名的口径问题。称之为one data,即一个应用指标有且只有唯一的计算逻辑。

----------------------------------------------------------------------------------------

《模型的作用》

dws的表可以称之为派生指标的模型。

一个派生指标可以有不同的维度。比如近7月,近一个月,城市品类的,城市商圈的,所以 派生指标:模型 = 1:n

可以在录入不同维度的派生指标时,

①当做是不同的派生指标,将维度当做口径记录下来

②当做是同一个派生指标,建设不同维度的模型(表),绑定这个派生指标。如果这么做,应用指标绑定的将不是派生指标,而是dws模型里的字段。

----------------------------------------------------------------------------------------

《是否可以将度量值认为是原子指标》

原子指标代表的是指标的最底层,是服务于指标系统的。度量值代表的是业务发生的过程中产生的数据,是记录业务客观现象的。

虽然两者的字段有很多重合的地方,最好将原子指标重新定义,防止指标管理体系和数仓公共表建设过于耦合而增大统一指标口径的难度。

----------------------------------------------------------------------------------------

《派生指标和应用指标的区别》

应用指标的来源是派生指标,不一定要计算同环比,很多时候名称是一模一样的。

他们的区别在于维度。

dws为了满足更多的应用指标的计算,维度会更多 更细。

打个比方,维度为城市 品类 商圈 门店等级 的订单金额,可以上卷 城市维度,品类维度,商圈维度,城市+品类维度,等多达15个组合的应用指标。

这样BI计算应用指标的时候,就只要根据自己关心的维度做group by即可,非常简单方便。

简单设计一个onedata指标管理体系的更多相关文章

  1. 学生与部门管理app-产品功能与界面的简单设计

    学生与部门管理app-产品功能与界面的简单设计 1. 结对成员学号 我:********* 大佬:*******10 2. 需求分析(NABCD模型) 2.1 N-需求 各个部门在开学初占据学校青春广 ...

  2. Tomcat详解系列(1) - 如何设计一个简单的web容器

    Tomcat - 如何设计一个简单的web容器 在学习Tomcat前,很多人先入为主的对它的认知是巨复杂的:所以第一步,在学习它之前,要打破这种观念,我们通过学习如何设计一个最基本的web容器来看它需 ...

  3. 设计一个简单的,低耗的能够区分红酒和白酒的感知器(sensor)

    学习using weka in your javacode 主要学习两个部分的代码:1.过滤数据集 2 使用J48决策树进行分类.下面的例子没有对数据集进行分割,完全使用训练集作为测试集,所以不符合数 ...

  4. 180626-Spring之借助Redis设计一个简单访问计数器

    文章链接:https://liuyueyi.github.io/hexblog/2018/06/26/180626-Spring之借助Redis设计一个简单访问计数器/ Spring之借助Redis设 ...

  5. 设计一个简单的devops系统

    前言 公司设计的RDMS挺好用的,我也照猫画虎简单的设计一个DevOps系统,与大家分享,不足之处欢迎拍砖,以免误人子弟 前置条件 gitlab gitlab-runner k8s 1. gitlab ...

  6. 【python免费代码】设计一个简单的学生信息管理系统

    文章目录 前言 一.理解 二.部分截图展示 三.代码 四.总结 前言 设计一个简单的学生信息管理系统,实现以下功能(bug) : 录入学生信息,信息以文件方式存储 以学生学号或者学生姓名为条件查询该学 ...

  7. 如何设计一个简单的C++ ORM

    2016/11/15 "没有好的接口,用C++读写数据库和写图形界面一样痛苦" 阅读这篇文章前,你最好知道什么是 Object Relation Mapping (ORM) 阅读这 ...

  8. ERP设计之系统基础管理(BS)-日志模块设计(转载)

    原文地址:8.ERP设计之系统基础管理(BS)-日志模块设计作者:ShareERP 日志模块基本要素包括: 用户会话.登录.注销.模块加载/卸载.数据操作(增/删/改/审/弃/关等等).数据恢复.日志 ...

  9. 如何一步一步用DDD设计一个电商网站(九)—— 小心陷入值对象持久化的坑

    阅读目录 前言 场景1的思考 场景2的思考 避坑方式 实践 结语 一.前言 在上一篇中(如何一步一步用DDD设计一个电商网站(八)—— 会员价的集成),有一行注释的代码: public interfa ...

随机推荐

  1. 孟老板 BaseAdapter封装 (二) Healer,footer

    BaseAdapter封装(一) 简单封装 BaseAdapter封装(二) Header,footer BaseAdapter封装(三) 空数据占位图 BaseAdapter封装(四) PageHe ...

  2. 计算机网络-ip分类

    本网络--网络号全是0(0000 0000)的IP地址是保留地址,意思是"本网络". 环回地址--网络号是127(0111 1111)的IP地址也是保留地址,作为本地环回软件测试. ...

  3. IDEA骚技巧

    1. var 声明 2. null 判空 3. notnull 判非空 4. nn 判非空 5. for 遍历 6. fori 带索引的遍历 7. not 取反 8. if 条件判断 9. cast ...

  4. 网页站点下载器teleport ultra

    软件名称:teleport ultra 介绍:teleport ultra是一款专门的网页站点下载器,使用这款工具可以方便地下载网页数据,包括网站的文字.图片.flash动画等,可以轻松下载所有的网站 ...

  5. markdown写ppt (史上最全)

    文章很长,建议收藏起来,慢慢读! 疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 大厂必备 ...

  6. 【dog与lxy】8.25题解-necklace

    necklace 题目描述 可怜的dog最终还是难逃厄运,被迫于lxy签下城下之约.这时候lxy开始刁难dog. Lxy首先向dog炫耀起了自己的财富,他拿出了一段很长的项链.这个项链由n个珠子按顺序 ...

  7. redHat6设置ip地址

    产生需求的原因: 最近新安装了redhat6,可是在相互ping的过程中发现redhat6的并没有配置静态的ip地址,于是我尝试使用windows的方式去配置,可效果并不如意,于是如何在redhat6 ...

  8. 基于GIS的国土空间规划平台建设

    ​ 本期介绍基于地理信息平台的国土空间规划平台的规划辅助编制应用.在梳理国土空间规划科学流程的基础上,将规划编制各关键环节信息化.工具化.智能化:充分发挥清华同衡大数据与智能模型相结合的定量评估.精准 ...

  9. 『无为则无心』Python基础 — 15、Python流程控制语句(for循环语句)

    目录 1.for循环语法 2.for循环中的break和continue 3.循环+else结构 (1)while...else (2)while...else退出循环的方式 (3)for...els ...

  10. 流程自动化RPA,Power Automate Desktop系列 - 构建VuePress文档中心脚手架

    一.背景 笔者曾基于VuePress搭建过一个文档中心,但是在实现在线管理功能之前,很多时候,新建文档需要手动处理很多数据,看有没有可能实现一个脚手架来处理这些问题,所谓脚手架,就是进行文档初始化的一 ...