【无标题】

维度建模指南-数据仓库工具箱(自译)

背景: 在数据仓库中维度建模的基本原理讲解书籍资料主要是是kimball的书籍,但是国内翻译的版本一定程度上是直译,阅读过程中对理解维度建模基本的原理有一定阻碍,因此阅读原文加深理解.以下是阅读笔记,如果想对维度建模有兴趣,还是阅读原文.

第一章 维度建模基础

(本章主要内容 说明BI/DW系统设计目标;维度建模的基本概念和核心;kimball架构和几种相关的架构对比;以及对维度建模几个误区说明;)

  • BI/DW系统是围绕业务需求来建设的,因此首先必须紧紧围绕业务需求,然后考虑逻辑和物理设计以及决定采用先关的技术和工具.
  • 操作型数据和分析型数据区别
    信息作为企业最重要的资产之一,主要有两种用途操作型数据保存数据记录和分析数据制定决策.从输入输出角度来说,操作型数据数入口,而BI系统是数据输出口.
    操作型系统使得企业正常运转,如下单,注册新用户,管理操作活动的状态,日志故障.操作性系统优势处理事务快速,通常在一个单位时间内处理一个记录.处理重复的企业业务过程,操作型系统不会保留过长的历史数据,但会经常更新数据反应最新的状态.
  • DW|BI 系统 研究企业的运转,使得企业运行的更有效率.如:比较当天的订单数和最近一周的订单数;新签新客户的原因;顾客抱怨的原因.几乎不会在一个时间内处理一个事务,尽管保存了明细数据来应对问题的转变.BI系统的优势是面对成千上万亿级别的事务查询有比较高的性能,并且将结果集中输出.BI系统保存比较长的历史数据,为了精确分析过去某一段时间内的企业效率.

DW|BI系统的设计目标

  • 1.海量业务数据易于访问
    数据对于业务方的展示必须是简单快捷.数据结构和标签需要和业务用户的思维和认知一致.对数据的上卷和下钻灵活,易于使用,响应时间迅速.
  • 2.数据信息展现必须是一致的
    数据必须是可信的.一致性也意味着公共的标签和定义,在不同的数据源使用.如果两个指标有相同的名字必须代表着相同的含义(同名同意)-在同一领域内.如果相同的事情有两个指标,需要有不同的标识.
  • 3.必须适应业务变化
    用户需求,业务环境,数据,技术很容易产生变化.系统需要处理不可避免的变化并且对已有的数据和应用无影响.新增的数据火这查询对已有系统也会产生改变或者混乱.如果描述性数据必须修改,则需要更改对用户透明.
  • 4.及时反馈业务信息
    由于bi系统是来源是操作性数据系统,原数据转化为业务行为信息时效性可能会很高,在数据预处理时间少的情况下,需要实时的处理数据.
  • 5.成为保护信息资产安全的基础
    数据仓库加载了各种数据源信息,导致数据会有泄露的风险,需要对访问企业的数据进行有效控制.
  • 6.服务于决策的制定过程中必须是权威和可信的
    数据经过ETL系统后数据质量必须保证,用可靠的数据支持业务决策.dw|BI系统最重要的输出价值是基于分析证据产生的决策,这体现了DW|BI系统的影响和价值.dw|BI最好的描述: 决策支持系统.
  • 7.BI系统的成功标志是被业务群体接受
    用户不关心是分析系统是否使用最好的产品组件或者在那个平台,如果不能被用户群体接受分析系统和积极使用,整个系统就是一个失败的例子.操作型系统用户没有太多选择使用新的系统,BI|dw系统来说,用户会选择对可操作信息(actionable information )有简易快速特点的系统.(搜索和过滤操作)

上述每一条需求都很重要,但是最后两条最重要.为了能够建设比较有影响力的数仓需要不仅需要技术还需要了解业务用户,换句话说需要同时具备数据库管理员和数据分析师的技能.

出版社比喻BI|DW管理者

比较出版社主编和DW管理者的责任,高级编辑需要处理杂志内容,风格,发行.主要是以下内容

理解读者: 了解读者受众人群;发掘读者感兴趣的内容;发掘能持续订阅和购买杂志广告中产品的读者;发掘潜在新读者以及知道该杂志.

确保杂志内容可以吸引读者: 选择有趣的扣人心弦的杂志内容;杂志的布局和渲染使读者满意;作品和编辑标准质量高,且风格一致;持续的监控文章的准确性和广告的需求;适当的改变读者的口味(profile)和从网络渠道找到新的作者和撰稿人;

持续发行: 吸引广告商提高利润;定期发行;维持读者对杂志信任;让投资人满意;

主编不应该遵守的一些目标:建设特定的打定技术或者写作风格不能被读者理解或者排版乱拥挤.

出版商和BI|DW管理者有很强的相似性: 按照业务需求,bi管理者需要手机不同数据数据源保证数据的质量和一致性然后公布数据.出版社比喻强调关注外部的消费者而不是内部的产品和业务过程.金光使用了技术但是仅仅达到目的一种手段.技术和建设系统的技能不应该出现在建设顶层项目的工作中.

重新定义DW|BI的职责:

理解业务用户: 梳理业务方的的工作职责,长期和短期的目标;确定业务用户使用DW|BI系统可以得到哪些帮助;推广bi系统培养老用户和新用户;

对业务用户输出: 高质量, 有价值,易于使用的信息和分析:

在企业各种原数据系统中慎重选取数据,经过etl加工后把健壮和可操作性的数据放在展示区;开放给业务方的接口和应用尽可能简易并且风格一致的模板;确定数据是精确的可信的且数据标签在企业内部跨部门保持一致;对数保持监控追踪和分析;合理的适应复杂的用户需求变化和业务优先级,以及企鹅包新数据源的适应性.

运维DW|BI环境: 大部分的业务决策使用BI|DW系统数据来支持;在成熟的基础上更新DW系统;用户持续信任;业内好的口碑.

如果忽视上述任意一项规则,可能导致意外的的事情.上述工作更多是面向用户和业务事件而不是技术本身,这正是dw|bi的魅力所在.

维度建模介绍

理解了DWBI系统的设计目标之后,介绍维度建模的基本理念,维度建模之所以广泛应用,主要是同时解决了两个需求: 用户方便的理解数据和快速查询开发.

Deliver data that's understandable to the business users.

Deliver fast query performance.

维度建模技术,存在超过50年的历史了, 为了使得数据库结构更简化而衍生出的是历史比较久的技术. 在大量的案例中,满足用户对维度的简单的易理解的结构符合用户的对数据简洁易懂的基本要求. 当描绘"我们售卖多种样式的产品,并且随时给出销量数据", 主要强调维度:产品, 市场和时间. 构建数据立方体,并且根据维度任意的切分, 维度建模可以可视化的把抽象的数据集以一种具体和直观的可视化是它易于理解的关键. 维度建模开始简易, 最后的过程也是简易的, 爱伊斯坦说: make everything as simple as possible, but not simpler. 直到不能简单为止.

尽管维度建模是关系型数据库的一种实例化例子,但是并不会遵守消除冗余的3NF模型. 标准的3NF 模型将数据分成很多可描述的实体entities, 然后互相关联组成关系表. 在业界3NF模型也叫做是ER模型. ER模型图描绘了表之间的关系.由于都包含可关联的关系表, 3nf和维度建模都可以用呢ER图表示. 他们之间关键的不同之处是规范化的深度. 由于两者都可以被ER图表示, 为了消除误解, 将3NF模型称作规范化模型.

标准的3NF模型比较广泛的应用于操作型系统中,在数据库的同一个地方插入和更新记录. 规范化的模型对BI查询很不友好, 因为用户很难记住 检索, 好像身处于洛杉矶复杂的高速公路系统中. 无法面向用户复杂的查询请求, 也不支持对数据快速高性能的检索. 维度建模在这方面有独特的优势.维度模型和规范化模型包含的信息相同,但是维度模型把数据封装成易理解,易查询和易于扩展的弹性数据集合.

星型模型和OLAP立方体模型 对比

在关系型数据系统中实施维度建模方法的过程中与星型结构类型,所以维度模型又叫星型模型. 在多维数据库系统中的维度建模定义为OLAP.如下图:

在DW|BI系统中如果包含星型模型或者OLAP, 则是使用了维度建模的基本理念. 星型和OLAP模型有一个公共的逻辑设计,在具体的物理设计上是不同的.

当数据被加载到OLAP系统中, 针对维度数据设计存储和索引, OLAP立方体中频繁创建和管理性能更好聚合表和预计算的表. 因为OLAP中有大量的预计算,索引策略等,所以整个系统有着比较高效的查询性能. 可以对已经预处理好的OLAP立方体数据,进行任意的上卷和下钻, 但是需要额外的开销来存储大量的数据.

第二章 kimbal维度建模技术综述

基本概念

  • 收集业务需求和数据的实际情况
    在开始业务需求之前团队需要理解业务的需要,以及重要源数据的真实情况。业务需求:与资深的业务同学沟通理解业务目标,通过业务关键指标 强业务诉求 分析支持等问题更进一步了解需求。 数据源:需要和源系统同学交流以及进行数据性能探查。
  • 维度模型协作
    维度模型设计过程中需要和业务的数据治理和主题设计者来协作完成。模型的设计者和业务方进行一系列高质量的交流进一步深度理解业务需求。模型设计建立在业务理解和业务需求之上。
  • 维度建模的四个过程
    1.选择业务过程 select the bussiness process
    2.清晰粒度 declear the grain
    3.定义维度 identify the dimensions
    4.定义事实
相关推荐
csding111 小时前
写入hive metastore报问题Permission denied: user=hadoop,inode=“/user/hive”
数据仓库·hive·hadoop
不会写代码的女程序猿20 小时前
关于ETL的两种架构(ETL架构和ELT架构)
数据仓库·架构·etl
ssxueyi1 天前
数据仓库有哪些?
大数据·数据仓库·数据湖
武子康1 天前
大数据-256 离线数仓 - Atlas 数据仓库元数据管理 正式安装 启动服务访问 Hive血缘关系导入
大数据·数据仓库·hive·hadoop
向阳逐梦1 天前
开源云原生数据仓库ByConity ELT 的测试体验
数据仓库·云原生·开源
ssxueyi1 天前
数据仓库是什么?数据仓库简介
数据仓库
小刘鸭!2 天前
Hive解决数据倾斜
数据仓库·hive·hadoop
武子康2 天前
大数据-255 离线数仓 - Atlas 数据仓库元数据管理 数据血缘关系 元数据
大数据·数据仓库·hive·hadoop·spring
故苏呦2 天前
全域数据集成平台ETL
数据仓库·etl
武子康4 天前
大数据-253 离线数仓 - Airflow 任务调度 核心概念与实际案例测试 Py脚本编写
java·大数据·数据仓库·hive·hadoop·springboot