数据仓库、数据湖与数据中台
一、数据仓库
1.1 数据仓库的定义
根据全球数据仓库之父 W.H.Inmon的定义,数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化的(Time Variant)数据集合,用于支持管理决策和信息的全局共享。其主要功能是将组织透过资讯系统之联机事务处理(OLTP)经年累月所累积的大量资料,透过数据仓库理论所特有的资料储存架构,作一有系统的分析整理,以利各种分析方法如联机分析处理(OLAP)、数据挖掘(Data Mining)之进行,并进而支持如决策支持系统(DSS)、主管资讯系统(EIS)之创建,帮助决策者能快速有效的自大量资料中,分析出有价值的资讯,以利决策拟定及快速回应外在环境变动,帮助建构商业智能(BI)。
1.2 数据仓库的特点
① 面向主题:指数据仓库内的信息是按主题进行组织的,而不是像业务系统那样按照功能组织。
②集成:指数据仓库中的信息不是从各个业务系统中简单抽取出来的,而是经过一系列加工、整理和汇总的过程,因此数据仓库中的信息是关于整个企业的一致的全局信息。
③数据是基于历史的:指数据仓库内的信息并不只是反映企业当前的状态,而是记录了从过去某一时点到当前各个阶段的信息。通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
1.3 数据仓库逻辑架构
1.4 数据仓库系统作用和定位
数据仓库系统的作用能实现跨业务条线、跨系统的数据整合,为管理分析和业务决策提供统一的数据支持。数据仓库能够从根本上帮助你把公司的运营数据转化成为高价值的可以获取的信息(或知识),并且在恰当的时候通过恰当的方式把恰当的信息传递给恰当的人。
是面向企业中、高级管理进行业务分析和绩效考核的数据整合、分析和展现的工具;
是主要用于历史性、综合性和深层次数据分析;
数据来源是ERP(例:SAP)系统或其他业务系统;
能够提供灵活、直观、简洁和易于操作的多维查询分析;
不是日常交易操作系统,不能直接产生交易数据;
数据仓库针对实时数据处理,非结构化数据处理能力较弱,以及在业务在预警预测方面应用相对有限。
二、数据湖
2.1 数据湖的定义
数据湖(DataLake)是Pentaho的CTO James Dixon提出来的(Pentaho作为一家BI公司在理念上是挺先进的),是一种数据存储理念——即在系统或存储库中以自然格式存储数据的方法。
2.2 数据湖的特点
-
数据湖以自然格式存储数据 -
数据不需要提前进行定义, 在准备使用数据时,再定义即可,提高了最高的灵活性与可扩展性。
2.3 数据湖的处理架构
目前,Hadoop是最常用的部署数据湖的技术,所以很多人会觉得数据湖就是Hadoop集群。数据湖是一个概念,而Hadoop是用于实现这个概念的技术。
2.4 数据仓库与数据湖差异
在储存方面上,数据湖中数据为非结构化的,所有数据都保持原始形式。存储所有数据,并且仅在分析时再进行转换。数据仓库就是数据通常从事务系统中提取。
在将数据加载到数据仓库之前,会对数据进行清理与转换。在数据抓取中数据湖就是捕获半结构化和非结构化数据。而数据仓库则是捕获结构化数据并将其按模式组织。
数据湖的目的就是数据湖非常适合深入分析的非结构化数据。数据科学家可能会用具有预测建模和统计分析等功能的高级分析工具。而数据仓库就是数据仓库非常适用于月度报告等操作用途,因为它具有高度结构化。
在架构中数据湖通常,在存储数据之后定义架构。使用较少的初始工作并提供更大的灵活性。在数据仓库中存储数据之前定义架构。
数据仓库 |
数据湖 |
|
处理的数据 类型 |
主要处理历史的、结构化的数据,而且这些数据必须与数据仓库事先定义的模型吻合。 |
能处理所有类型的数据,如结构化数据,非结构化数据,半结构化数据等,数据的类型依赖于数据源系统的原始数据格式。 |
目的与作用 |
处理结构化数据,将它们或者转化为多维数据,或者转换为报表,以满足后续的高级报表及数据分析需求。 |
拥有足够强的计算能力用于处理和分析所有类型的数据,分析后的数据会被存储起来供用户使用。 |
数据访问特点 |
数据仓库通常用于存储和维护长期数据,因此数据可以按需访问。 |
数据湖通常包含更多的相关的信息,这些信息有很高概率会被访问,并且能够为企业挖掘新的运营需求。 |
三、数据中台
3.1 数据中台的定义
数据中台是指通过企业内外部多源异构的数据采集、治理、建模、分析,应用,使数据对内优化管理提高业务,对外可以数据合作价值释放,成为企业数据资产管理中枢。数据中台建立后,会形成数据API,为企业和客户提供高效各种数据服务。
3.2 数据中台的特点
-
数据是“打平”的 ,而非主题式,以利于企业从全局角度对数据进行分析。 -
数据是实时的 , 实时不是简单指数据只有最新数据,而是不仅仅有历史数据,也有当前实时数据,当数据发生变化时,如果对历史数据产生影响,历史数据的影响也要能实时反应出来。 -
数据是可平滑扩充的 , 利用分布式存储与分布式计算技术,当数据量扩大或者分析业务扩充时,能够在不影响已有数据的情况下,快速平滑扩充。 -
数据的变化与使用是可追溯的 , 支持血缘追溯功能,当数据发生错误时,可快速定位错误的来源,并且对数据的影响范围与用户清晰,化被动为主动。 -
数据是以业务语言表示的 , 业务人员可直接使用: 不同于数据仓库时代数据都是以表和字段等技术语言来表示,数据中台的数据要支撑管理模型,对外以业务语言来表示,能够为业务人员直接使用。 -
数据与业务松耦合 , 当数据发生变化时,不会对业务分析造成困扰,同样当业务需求发生变化时,也不会直接影响到数据中台的数据组织方式。
3.3 数据中台的架构
数据中台整体技术架构上采用云计算架构模式,将数据资源、计算资源、存储资源充分云化,并通过多租户技术进行资源打包整合,并进行开放,为用户提供“一站式”数据服务。
3.4 数据中台与数据仓库的比较
数据仓库的出发点为一个支撑性的技术系统,即一定要先考虑我具有什么数据,然后我才能干什么,因此特别强调数据质量和元数据管理;而数据中台的第一出发点不是数据而是业务,一开始不用看你系统里面有什么数据,而是去解决你的业务问题需要什么样的数据服务。
在具体的技术处理环节,二者也有明显不同,数据的预处理流程正在从传统的ETL结构向ELT结构转变。传统的数据仓库集成处理架构是ETL结构,这是构建数据仓库的重要一环,即用户从数据源抽取出所需的数据,经过数据清洗,将数据加载到数据仓库中去。而大数据背景下的架构体系是ELT结构,其根据上层的应用需求,随时从数据中台中抽取想要的原始数据进行建模分析。
四、小结
根据以上数据仓库、数据湖和数据中台的概念论述和对比,总结如下:
-
数据中台、数据仓库和数据湖没有直接的关系; -
数据中台、数据仓库和数据湖在某个维度上为业务产生价值的形式有不同的侧重; -
数据中 台是企业级的逻辑概念,体现企业数据向业务价值转化的能力,为业务提供服务的主要方式是数据 API ; -
数据仓库是一个相对具体的功能概念,是存储和管理一个或多个主题数据的集合,为业务提供服务的方式主要是分析报表; -
数据中台距离业务更近,能够更快速的响应业务和应用开发需求,从而为业务提供速度更快的服务; -
数据仓库是为了支持管理决策分析,而数据中台则是将数据服务化之后提供给业务系统,不仅限于分析型场景,也适用于交易型场景; -
数据中台可以建立在数据仓库之上,是加速企业从数据到业务价值的过程的中间层。