数据平台维度模型设计十个技巧

注:这是一篇讲述维度数据模型设计的文章,偏向于数据平台而非数据分析,请读者根据自己的兴趣爱好阅读,内容有不妥的地方请联系我(松子)。

了解过数据仓库历史的人都知道Bill Inmon、 Ralph Kimball。 Bill Inmon 代表作《Building the Data WareHouse》 , Ralph Kimball代表作为 《The Data Warehouse Toolkit》、《The data Warehouse lifecycle》。两位大师对数据模型都分别作了深入阐述,个人理解的数据模型是数据平台的灵魂。数据模型设计好了对数据应用、数据分析支持是非常有帮助的。尤其 kimball 提出的维度模型 ,围绕业务模型能够直观的表达业务数据关系。

  关于数据模型概念不多讲,本文与大家分享多维数据模型设计的十个技巧。

技巧一:维度表中应该包含最细的颗粒度。

通常在数据平台做开发的同学,“特麽”经常抱怨 “ 需求怎么又变了,这个需求能不能不要来回的改“,数据建设中会遇到非常不确定性需求,不可预测筛选与汇总。

尤其是在互联网做数据化运营,绝大部分需求几个汇总类指标是无法满足需求,很多时候会沉浸到比较明细、更深层次的细节信息。当然汇总指标是能够概括一些概述数据细节,但只有细节数据才能回答各种不停的业务上数据追问。

技巧二: 围绕业务流程来构建维度。

数据是真实的反应业务活动与成果的,业务流程在不同的阶段所产生数据项也是不一样的。比如说一个用户从寻找App、下载、安装、启动、再启动这个流程,用户在淘宝购物、寻找浏览物品、放入购物车、跳转收银台、支付、完成。

这两个流程背后代表某个业务事件活动,在不同的环节产生的数据项是不同的,如果将流程不同阶段的指标沉淀下来变为可度量的关键指标,如果将这些关键指标根据关系合并与设计到事实表中,就变为支撑业务人员分析、探索业务的细节数据。

为了能够从业务流程上的多维度来探索数据,所涉及到的很多维度最好是业务流程来做设计,比如上图交易现相关,从订单的来源,所属产品、到支付阶段的资金来源,从业务流程上来看,还可以扩展出更多的维度、与度量值。

在不同的业务环节,业务人员都会“很任性”的需求不同指标,但是在需求中往往是与业务流程有很大关系的。

技巧三:尽量保证每张事实表与时间维度有关联

在原则二中描述那两个案例业务永远是与日期有关系的,不管是月、日、年、还是分、秒,财务年、自定义时间事件段等。

每个事实表至少有一个外键能够与日期维度表相连,时间维度能才能反映出存量与流量,才能分析某一时刻、某一时间段的业务流程变化情况。

技巧四:同一张事实表的指标对应维度层级必须一致

一般的事实表有四种类型,粒度事实、周期性快照事实、聚合快照事实、非事实事实表,不管它们的粒度类型,事实表中的每个度量值在颗粒度上必须保持与维度的颗粒度是一致的,否则就等着崩溃吧。

例如原则二给出的案例,要分析一个用户订单支付业务。如果对这个业务进行设计分析模型时,把产品维度粒度定义为产品,但是在度量值金额却是按照不同产品分类做聚合的,那就有意思了。我暂时也没回忆起类似的场景会在什么情况犯错。

技巧五:处理好事实表和维度表之间的多对多关系

在多个维度表的值可以赋给单个事实事务时,事实表和维度表之间通常是多对多关系,比如为了计算写书的作者分成,一本书可能有多个作者, 一个作者可能出版了多本书,这个案例下就是多对多的关系。要考虑到可以计算出每个作者的的分成,中间可以增加一个桥接表。

  综上所述,

在这种情况下多个值的维度与事实表直连可以采用桥接表来处理。

技巧六:经常发生变化的维度处理

在设计维度上很多时候都是扁平化处理,业务中普遍的维度关系是一对一的关系,比如例如客户Simmy将自己的地址由原先的Addr1改为Addr2。这时我们需要将这个记录了客户Simmy的记录中的有效截止日期改为现在,并重新添加一条有效截止日期为现在的和一个新的版本号且Address为Addr2的记录。

但是也经常存在一对多的关系,比如大家的购物邮寄地址、个人电话号码等在现实生活中有变化的处理。这种情况可能存在一对多的关系,假如一张维表存在上百万的维度且汇总信息经常在变化,那得注意做缓慢变化、或快速变化处理了。

技巧七:让维度表使用代理键

英文叫SurrogateKey,翻译过来又叫代理键,在建模中通过一些毫无意义键值来代替一些业务键值,有利于维度统一整合。

技巧八:进行一致性维度的处理

一致性维度,又叫统一维度。对于构建企业级数据平台数据模型具有关键的意义,通过在数据转换处理环节一次性处理后,在构建不同数据集市、不同数据层时可以反复被使用。

统一维度在构建多维模型时,可以很便捷能把多种不同类型业务指标进行关联,让使用用户在不同业务间切换分析、还能减少维护工作。

比如数据描述经常不一致性如,同名异义、同物异名,还有口径多样化、编码不统一、命名不统一等。还能处理一些未知、不知道名字、日期待定等一些含

糊的分类。

而然,在实施统一维度时最大的障碍是需要不同的业务部门、IT部门对每个维度属性上达成一致,那就涉及到数据管理、数据治理的范畴了。比如含义相同但名称不同业务术语等。

技巧九:分析功能标签化标签以及过滤器等信息可以当做维度来保存。

其实这也不是什么原则,个人更倾向于归类到技巧中。比如在构建分析型数据产品时,有些功能性的标签、查询类的代码或分类完全可以维度化。

例如某些下拉菜单中筛选标签以及过滤器阈值等、用户的特定群体探索、产品的相关联分析等,都可以维度化并做预处理。

这样做的好处是速度快,把部分分析结果数据做预处理,查询中需要聚合部分变为过滤查询,这样会提高分析查询效率的。

技巧十:大维度的退化处理

所谓的大维度,是指维度数据量特别大,比如现在互联网的URL维度可能几十万上百万,还有客户,产品等等。一个大的企业客户维度往往有上百万记录,每条记录又有上百个字段。而大的个人客户维度则会超过千万条记录,这些个人客户维度有时也会有十多个字段,但大多数时候比较少见的维度也只有不多的几个属性。

这些维度的处理往往采用把大属性转为小属性、退化处理,增加更多的不同分类字段等特殊处理。

====================================分割线================================

本文转自d1net(转载)

时间: 2024-08-30 05:17:27

数据平台维度模型设计十个技巧的相关文章

【阿里在线技术峰会】李金波:企业大数据平台仓库架构建设思路

本文根据阿里云高级技术专家李金波在首届阿里巴巴在线峰会的<企业大数据平台仓库架构建设思路>的分享整理而成.随着互联网规模不断的扩大,数据也在爆炸式地增长,各种结构化.半结构化.非结构化数据的产生,越来越多的企业开始在大数据平台下进行数据处理.分享中,李金波主要从总体思路.模型设计.数加架构.数据治理四个方面介绍了如何利用大数据平台的特性,构建更贴合大数据应用的数据仓库. 直播视频: (点击图片查看视频) 幻灯片下载:点此进入 以下为整理内容. 总体思路 随着互联网规模不断的扩大,数据也在爆炸式

建设大数据平台,从“治理”数据谈起

本文是大数据杂谈 6 月 15 日分享内容整理. 一.大数据时代还需要数据治理吗? 数据平台发展过程中随处可见的数据问题 大数据不是凭空而来,1981 年第一个数据仓库诞生,到现在已经有了近 40 年的历史,相对数据仓库来说我还是个年轻人.而国内企业数据平台的建设大概从 90 年代末就开始了,从第一代架构出现到现在已经经历了近 20 年的时间. 在这 20 年的时间里,国内数据平台实施者可以说是受尽折磨,数据项目一直不受待见,是出了名的脏活累活. 可以说,忽视数据治理给数据平台建设带来了不少问题

农行赵维平:农业银行自主可控的大数据平台建设

4月27日,中国大数据峰会上,农总行赵处的讲演,引得台下掌声雷动."大数据建设只有起点,没有终点,我们一直在路上.在国产化的道路上,希望民族工业无比强大,在国际市场上挺起腰杆!" 500-333文章照片-大数据推动金融创新- 赵维平 中国农业银行软件开发中心的专家赵维平 农总行赵处的讲演的数据着实令国人振奋!农业银行以国产数据库GBase 8a为基础的国内最大的金融大数据平台采用混搭融合架构.双活数据仓库.超大规模数据库集群这些先进技术全部应用其中.56是生产环境,现在实现了56环境的

Redis正确使用的十个技巧_Redis

Redis 在当前的技术社区里是非常热门的.从来自 Antirez 一个小小的个人项目到成为内存数据存储行业的标准,Redis已经走过了很长的一段路.1.停止使用 KEYS * Okay,以挑战这个命令开始这篇文章,或许并不是一个好的方式,但其确实可能是最重要的一点.很多时候当我们关注一个redis实例的统计数据, 我们会快速地输入"KEYS *"命令,这样key的信息会很明显地展示出来.平心而论,从程序化的角度出发往往倾向于写出下面这样的伪代码: for key in 'keys *

从数据仓库到大数据,数据平台这25年是怎样进化的?

" 从「数据仓库」一词到现在的「大数据」,中间经历了太多的知识.架构模式的演进与变革.数据平台这25年究竟是怎样进化的? 我是从2000年开始接触数据仓库,大约08年开始进入互联网行业.很多从传统企业数据平台转到互联网同学是否有感觉:非互联网企业.互联网企业的数据平台所面向用户群体是不同的. 那么,这两类的数据平台的建设.使用用户又有变化?数据模型设计又有什么不同呢? 我们先从两张图来看用户群体的区别. 用户群体之非互联网数据平台用户  企业的boss.运营的需求主要是依赖于报表.商业智能团队的

如何设计好部落格的十个技巧

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 来源:GBin1.com 写 部落格很长一段时间了,我想是时候该讲一些关于部落格设计相关的内容了.而且,现在很流行通过写部落格来赚取一定的收入,全职或者半职业写手.我刚开始写 部落格那个时间,部落格设计还是刚刚兴起的概念,各种不同部落格风格的延伸有很大的发展空间.2008年到现在短短四年时间,我不得不说这种状态已经达到 饱和了.如果你仔细看看

曙光“城市大数据平台”冲破数据孤岛、创造数据价值

现代城市是在传统工业化时代形成的.人口膨胀.安全隐患.环境污染和交通拥挤等矛盾成为城市通病.移动互联网.云计算.物联网和大数据等新一代信息技术的成熟和普及,为城市发展和管理模式创新以及产业结构转型开辟了新空间.美国著名咨询公司Forrester提出:"当政府.企业.社区更加依靠信息化应对快速城市化带来的挑战时,城市则会更加智慧". 曙光城市大数据平台作为智慧城市建设的基础支撑平台,它围绕"城市云"打造以承载城市智慧化运行的城市数据服务中心,逐步构建城市特征数据深度融

阿里十年经验输出,大数据平台“数加”的前世今生

2016 年1月20日,在云栖大会上阿里云发布了一站式大数据平台"数加",该平台集合了阿里巴巴十年的大数据能力以及上万名工程师实战检验,该平台是一站式的解决方案,首批亮相20款产品,覆盖数据采集.计算引擎.数据加工.数据分析.机器学习.数据应用等数据生产全链条. 数加平台由大数据计算服务(MaxCompute).分析型数据库(Analytic DB).流计算(StreamCompute)共同组成了底层强大的计算引擎,速度更快.成本更低.计算引擎之上,"数加"提供了丰

精彩推荐:.Net编程的十个技巧

编程|技巧 .NET编程的10点技巧-------------------------------------------------------------------------------- 不管你是对Windows Forms, ASP .NET, Web Services感兴趣, 还是对 .NET Framework感兴趣,这些技巧帮助你探索新的.NET技术.By Dino Esposito .NET Framework比以前更大了,包含了大量的类和方法,但是开发团体还没有探索和理解大