马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 168主编 于 2019-5-21 15:48 编辑
一、文章概述 数据模型就是数据组织和存储方法,一个良好的数据模型强调从业务场景、数据存取和使用角度合理存储数据。合理的基础数据存储模型会给大数据管理带来很多好处: 性能:良好的数据模型能帮助我们快速地查询所需要的数据,减少数据I/O吞吐。 成本:良好的数据模型能够极大地减少不必要的数据冗余,同时能够实现计算结果复用。 效率:良好的数据模型能够极大地改善用户体验,提高使用数据的效率。 质量:良好的数据模型能够改善数据统计口径的不一致性,减少数据计算错误的可能性。
二、数据模型 在几年以前,hadoop、Spark、Hive、kafka等分布式计算与存储、消息中间件技术还未成熟的时候,建设数据仓库主要是基于Oracle、DB2等关系型数据库。采用关系理论描述数据之间的关系作为数据仓库建设的基础一直沿用至今。随着时间的推移,传统数据仓库的数据计算和存储能力已经难以支撑容量庞大的数据仓库建设。因此大数据(分布式)技术才被广泛应用于数据仓库建设。
提到数据仓库不能不解释一下OLTP和OLAP的区别:
数据仓库的建模方式有Inmon ER模型、Kimball维度模型、Data Vault模型以及Anchor模型。
需要全面了解公司的业务和数据。 实施周期非常长。 对建模人员的能力要求非常高。
采用ER模型建设数仓的基本思想是数据整合和数据规范化,从公司整体角度出发,将公司各个业务系统中的数据按照主题进行“相似性组合”。数据通常从操作型数据源中获得,在ETL过程中进行处理,这部分操作通常被称为数据采集。这种规范的、原子数据的仓库被称为企业数据仓库(Enterprise Data Warehouse,EDW)。尽管Kimball架构也可以选择使用规范化以支持ETL处理,但是Inmon架构强调的是利用规范化的EDW承担这一角色,而Kimball架构强调的是具有统一一致性维度的企业总线架构的重要性。 采用Inmon架构的数仓通常是允许用户根据数据细节程度和数据可用性要求访问EDW。通过ETL过程发布的数据中台以满足报表和业务数据需求。虽然Inmon架构也是维度结构,但是产生的结果分析数据中台通常与Kimball架构展现区存在差别,分析数据通中台常以部门为中心(而不是围绕业务过程来组织的)。如果ETL过程中数据所应用的业务规则超越了EDW基本概要,那么将分析数据中台和EDW原子数据联系起来还是非常困难的。
Inmon架构在实践中最经典的代表是Teradata公司基于金融业务发布的FS-LDM(Financial Services Logical Data Model),它通过对金融业务的高度抽象和总结,将金融业务划分为10大主题。建模一般分为: 高层模型:在一个高度抽象的层级上,描述各个主题以及主题间的关联关系。 中层模型:在高层模型的基础上,细化各个主题的属性。 物理模型:在中层模型的基础上,需要同时考虑平台特点和性能进行设计,对中层模型涉及到的表需要进行合并或者分区操作等。
选择需要进行分析决策的业务过程。业务过程可以是单个业务事件,比如交易的支付、退款等;也可以是某个事件的状态,比如当前的账户余额等;也可以是一系列的相关业务事件组成的业务流程。 确定粒度。我们需要预判所有分析需要细分的程度,从而决定选择的粒度。粒度是维度的一个组合。 识别维表。选择好粒度之后,需要基于此粒度设计维表,包括维表字段属性,用于分析时进行分组或者筛选。 确定事实。确定分析需要衡量的指标。
Hub:是数仓的核心实体,由实体key、代理键、加载时间和数据来源组成。 Link:表示Hub之间的关系,把关联关系单独抽象是该模型与ER模型的最大区别。 Satellite:是Hub的详细描述,一个Hub可能会有多个Satellite。它是由Hub的代理键、加载时间、来源、详细的Hub描述信息组成。
互联网数据仓库模型的选择基本上经历了三个阶段: 将数据以源表的形式同步到Oracle、DB2等DBMS系统中,数据开发同学基于ODS表进行数据统计、分析。 通过一些模型手段消除数据冗余,提升数据一致性。这个时期可能会采用ER模型,但是构建ER模型风险非常大。是在业务发展变化快、并且不太成熟的条件下,不太适合采用ER模型设计。 选择Kimball的维度模型进行建模是目前互联网公司核心的建模方法论,同时也会加强并优化既有的维度建模思想,增加构建公共层模型数据架构体系。
三、总结
要想根据业务场景选择合适的模型设计方案,就必须要理解各个模型设计方案才能融会贯通。笔者公司采用的就是Kimball架构和Inmon架构嫁接的方式,这种架构利用了EDW的中心地位,但是此处的EDW和分析用户是完全隔离的。它仅仅作为部分Kimball风格展现区的数据来源,其中的数据是维度的、原子的(辅以聚集数据)、以过程为中心的。实际上该架构与Inmon架构基本一致。
最后推荐几本数仓方面的书籍: 范式建模经典图书,《数据仓库(原书第4版)》【[美] 荫蒙(Inmon W.H) 著,王志海 等 译 】。 维度建模经典图书,《数据仓库工具箱(3版)》【[美]金博尔(RalphKimball),[美] 罗 著】。 Data vault模型图书,《数据架构 大数据 数据仓库以及Data Vault 》【美,威廉,H,英蒙,W ... 著,唐富年 译 】。 数据架构概述图书,《大数据之路 阿里巴巴大数据实践》。 数据分析类图书,《数据驱动:从方法到实践》,《引爆用户增长》。
作者:清和 来源:大数据漫路求索 |