数据仓库的概念、特点、基本架构与建设方案

数据仓库的概念

(1)定义

两位大佬是这样描述数据仓库的:

Bill lnmon:数据仓库是一个面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合,用于对管理决策过程的支持。

Ralph Kimball:数据仓库是一个将源系统数据抽取、清洗、规格化、提交到维度数据存储的系统,为决策的制定提供查询和分析功能的支持与实现。

(2)理解

数据仓库通俗的来说,就是存放了公司不同来源的绝大部分数据,用来做有效的数据分析,也会基于它产出供分析挖掘的数据,或者数据应用需要的数据,例如企业年度报告策略分析报表,日常业务报表等。数据仓库可以解决的问题:信息化社会的发展,越来越多的信息需要进行分析和处理。很多企业也是依靠处理数据,得出决策性的结论来生成的。面对庞大,来源多样的数据,使用数据仓库是一个很好的选择,它就是针对上述问题而产生的一种技术解决方案,它是基于大规模数据库的决策支持系统环境的核心。

(3)优点

  • 整合不同来源数据,例如: 目志数据,非结构化数据,数据库数据,实时数据等;
  • 提升开发效率,使用 hql 开发,并使用 udf 函数做辅助,提升开发效率的同时降低了开发门槛;
  • 满足大量数据的处理, 例如:数据清洗,不同数据源数据的整合等;
  • 能更好的为分析决策提供便利。


数据仓库的特点

1. 面向主题

主题是一个抽象的概念,是指用户使用数仓进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。例如学校的主题通常为学生、老师、教室等;保险公司的主题通常有顾客、保险单、保险费、索赔等。数据仓库中的数据是按照一定的主题域进行组织的。不同的类型的企业,主题集合往往不同。

2. 集成

在企业中,多个部门之间所使用的数据系统可能会存在差异,例如市场部、财务部、研发部等等,他们的数据系统之间会存在数据格式、命名字段、代码含义、业务口径等等多方面的不一致情况。若需要进行跨部门的联合分析时,由于数据形状的不一样,导致需要做大量的数据清洗工作才可以完成分析。

此时,构建数据仓库的作用便凸显出来。数据仓库中的数据是源于多个数据源的集成,企业数据仓库中的数据源来源于企业原有的核心数据存储系统。但数据仓库并不是简单的集成,而是需要对数据源进行一系列的抽取、清洗、转换过程,整合为最终的形式一致、语义一致的数据集合。在集成过程中,数据仓库会对不同操作系统中的多种数据格式、命名字段等进行编码,形成统一的格式及字段,同时也可以对多种描述信息进行整理,形成又多方面汇总的标准描述。企业在集成后具有统一标准,统一语义形式一致的数据上进行分析,可以有效减少数据歧义。

3. 非易失

在数据仓库中,数据一旦进入一般情况下会被长期保存,很少进行数据更新、删除等操作。这一点有别与传统的操作型数据库,在业务应用系统中,用户会有数据插入、删除、修改、访问等行为,有频繁地数据更新。数据仓库中保存的数据是一系列历史快照,一般不做更新和删除,而不是对现状的记录和体现。

4. 反应历史变化

数据仓库的数据是随着时间而变化的,会定期接收新的集成数据,从而反映出最新的数据变化。数据仓库的历史数据存储时间很长,通常为5~10年的时间,是数据的复杂快照,具有键码结构包括时间元素。操作型环境中,数据的保存期限比较短,一般为60~90天,会实时记录数据更新行为,键码结构可能包含也可能不包含时间元素。数据仓库中的稳定的数据是以只读格式保存,且不会随着时间而进行改变。

数据仓库VS数据库

  • 数据库是面向事务的设计,设计目的是为了捕获数据,一般存储在线交易数据,并且在设计时尽量避免冗余,常采用符合范式的规则来设计。
  • 数据仓库是面向主题设计的,设计目的是为了分析数据,一般存储的是历史数据,但在设计时有意引入冗余,采用反范式的方式来设计。


数据库 数据仓库
面向 事务 分析
数据类型 细节、业务 综合、清洗过的数据
数据特点 当前的、最新的 历史的、跨时间维护
目的 日常操作 长期信息需求、决策支持
设计模型 基于ER模型, 面向应用 星形/雪花模型,面向主题
操作 读/写 大多数为读(分析)
数据规模 GB到TB >=TB

数据湖

数据湖是一个以原始格式存储数据的系统或存储库。数据湖通常是所有企业数据的单一存储。 用于报告、可视化、高级分析和机器学习等任务。数据湖可以包括来自关系数据库的结构化数据、半结构化数据、非结构化数据和二进制数据。

数据仓库 数据湖
数据来源 往往来源于企业的核心业务系统 日志、电商、社交媒体等各种各样的架构化、半结构化、非结构化数据
数据存储 往往通过清洗、过滤、转换等操作并按照主题进行存储 往往原始数据形式保存
数据处理模式 写入型Schema 读取型Schema
性价比 存储成本高、维护成本较低、读取性能高 存储成本低、维护成本高、读取性能较低
适用对象 数据分析师、企业决策者 数据科学家、数据开发人员、数据分析师
使用场景 批处理报告、BI、可视化 机器学习、预测分析、数据发现

数据库基本架构

传统数仓的参考架构

数据仓库中的数据都是集成自企业各个业务系统,抽取中各个系统中的数据到贴源层,作为数据仓库的数据源。

数据仓库核心概念

1. ETL-抽取、转换、加载



ETL是将数据从来源端经过抽取(Extract)、交互转换(Transform)、加载(Load)只目的端的过程。ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据的清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。

2. ELT-抽取、加载、转换

如目标系统比源系统或中间应用系统具有更强的转换能力,则数据处理的顺序可以切换为ELT。当数据量特别大,大数据平台即数据仓库所在平台能力较强,可以先执行抽取源数据到数据仓库平台中,加载在目标系统后,在数据仓库的平台中进行转换的过程。使用ELT的方式加载至数据湖,在大数据环境中很常见,该模型应用越来越广。

3. 贴源层ODS--操作数据存储(Operational Data Store)

贴源层是一个面向主题的、集成的、可变的、当前的细节数据集合,用户支持企业对即时性的、操作性的、集成的全体信息的需求。数据仓库的事务性能力就是贴源层所需要的,实时数仓指的是数据仓库中的贴源层可以存储实时数据并且进行分析的能力。贴源层常常被作为数据仓库的过渡,数据源数据先流入贴源层,然后数据仓库中的数据在贴源层进行集成,是数据仓库体系结构中的一个可选部分。

贴源层的作用是在业务系统和数据仓库中间形成的一个隔离层,可以提供细节的当前数据,是数据仓库中其他各层所不具备的能力。当业务系统的查询分析能力较弱,或者系统正在进行大量的业务操作,查询对业务操作有较大影响时,可以把查询分析的操作转移到贴源层中。贴源层中存储的的当前的细节数据,与当前业务系统有延迟,但延迟较低,可以执行查询分析功能。

4. 基础明细层

数据仓库的中间层,从ODS层获取数据,按主题进行组织,经过清洗、校验、转换、合并等规范化处理,形成业务数据的完整视图。并非简单拿取数据,而是需要对数据进行组织清洗。它通常存储经过清洗、转换的数据,该数据相对细节和完整,但是不做聚合和汇总。基础明细层可以为数据分析(宏观趋势性分析、在线交互式分析)提供最完整的基础明细数据支撑。

5. 轻度汇总层

根据企业的业务分析需求,对基础明细层的细节数据进行细粒化(轻度)聚合、汇总和统计,例如:将交易数据汇总成一小时或一天。它可以快速的支撑数据分析需求,提前计算出细粒度的基础汇总指标,减轻后期数据分析的压力。

6. 主题模型层

主题模型层针对企业级宏观主题,按主题模型进行数据组织,构建相关的多个主题域模型,从基础明细/轻度汇总层中获取数据。具有按主题模型进行数据组织,为业务分析应用、数据集市构建提供直接数据支撑的作用。

数据仓库建设方案

1. 企业级·数据仓库--EDW

2. 星环分布式闪存数据库ArgoDB

通过ArgoDB构建数据湖、数据仓库、数据集市一体的模式

通过轻量级ETL工具——Transporter将数据源中的数据集成到ArgoDB中,在ArgoDB中进行数据分级存储和处理,可以同时支撑数据仓库以及数据集市的需求,并通过各类Data Service提供数据分析和数据展示功能。

Slipstream是实时流处理引擎,可以对接kafka,将kafka的数据进行实时的分析计算,通过Slipstream和ArgoDB相结合可以构建实时数仓平台。数据资产目录catalog负责管理和展示元数据、数据资产,例如数据渲染分析。



评论
登录后可评论
发布者
icon
扬仔无敌
文章
31
问答
119
关注者
10
banner
关注星环科技
获取最新活动资讯

加入TDH社区版技术交流群

获取更多技术支持 ->

扫描二维码,立即加入