2020年整个技术圈子要说话题最多的,应该是大数据方向。新感念层出不穷,数据湖概念就是其中之一。这篇文章是关于数据仓库、数据湖、数据集市、数据中台等一些列的概念和发展进程。希望给大家带来一个全面的感知。
本文作者:Murkey学习之旅、开心自由天使
本文整理:大数据技术与架构,未经允许不得转载。
如今,随着诸如互联网以及物联网等技术的不断发展,越来越多的数据被生产出来-据统计,每天大约有超过2.5亿亿字节的各种各样数据产生。这些数据需要被存储起来并且能够被方便的分析和利用。
随着大数据技术的不断更新和迭代,数据管理工具得到了飞速的发展,相关概念如雨后春笋一般应运而生,如从最初决策支持系统(DSS)到商业智能(BI)、数据仓库、数据湖、数据中台等,这些概念特别容易混淆,本文对这些名词术语及内涵进行系统的解析,便于读者对数据平台相关的概念有全面的认识。
一、数据仓库数据仓库平台逐步从BI报表为主到分析为主、到预测为主、再到操作智能为目标。
从过去报表发生了什么--->分析为什么过去会发生---->将来会发生什么---->什么正在发生----->让正确的事情发生
商务智能(BI,Business Intelligence)是一种以提供决策分析性的运营数据为目的而建立的信息系统。是属于在线分析处理:On Line Analytical Processing(OLAP),将预先计算完成的汇总数据,储存于魔方数据库(Cube) 之中,针对复杂的分析查询,提供快速的响应。在前10年,BI报表项目比较多,是数据仓库项目的前期预热项目(主要分析为主的阶段,是数据仓库的初级阶段),制作一些可视化报表展现给管理者。
-
它利用信息科技,将分散于企业内、外部各种数据加以整合并转换成知识,并依据某些特定的主题需求,进行决策分析和运算;
-
用户则通过报表、图表、多维度分析的方式,寻找解决业务问题所需要的方案;
-
这些结果将呈报给决策者,以支持策略性的决策和定义组织绩效,或者融入智能知识库自动向客户推送。
1.1、数据仓库基本定义
数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化的(Time Variant)数据集合,用于支持管理决策和信息的全局共享。其主要功能是将组织透过资讯系统之联机事务处理(OLTP)经年累月所累积的大量资料,透过数据仓库理论所特有的资料储存架构,作一有系统的分析整理,以利各种分析方法如联机分析处理(OLAP)、数据挖掘(Data Mining)之进行,并进而支持如决策支持系统(DSS)、主管资讯系统(EIS)之创建,帮助决策者能快速有效的自大量资料中,分析出有价值的资讯,以利决策拟定及快速回应外在环境变动,帮助建构商业智能(BI)。
-
所谓主题:是指用户使用数据仓库进行决策时所关心的重点方面,如:收入、客户、销售渠道等;所谓面向主题,是指数据仓库内的信息是按主题进行组织的,而不是像业务支撑系统那样是按照业务功能进行组织的。
-
所谓集成:是指数据仓库中的信息不是从各个业务系统中简单抽取出来的,而是经过一系列加工、整理和汇总的过程,因此数据仓库中的信息是关于整个企业的一致的全局信息。
-
所谓随时间变化:是指数据仓库内的信息并不只是反映企业当前的状态,而是记录了从过去某一时点到当前各个阶段的信息。通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
1.2、数据仓库系统作用和定位
数据仓库系统的作用能实现跨业务条线、跨系统的数据整合,为管理分析和业务决策提供统一的数据支持。数据仓库能够从根本上帮助你把公司的运营数据转化成为高价值的可以获取的信息(或知识),并且在恰当的时候通过恰当的方式把恰当的信息传递给恰当的人。
图3 数据仓库的作用
-
是面向企业中、高级管理进行业务分析和绩效考核的数据整合、分析和展现的工具;
-
是主要用于历史性、综合性和深层次数据分析;
-
数据来源是ERP(例:SAP)系统或其他业务系统;
-
能够提供灵活、直观、简洁和易于操作的多维查询分析;
-
不是日常交易操作系统,不能直接产生交易数据。
数据仓库针对实时数据处理,非结构化数据处理能力较弱,以及在业务在预警预测方面应用相对有限。
1.3、数据仓库能提供什么
图4 数据仓库提供价值
1.4、数据仓库系统构成
数据仓库系统除了包含分析产品本身之外,还包含数据集成、数据存储、数据计算、门户展现、平台管理等其它一系列的产品。图5 数据仓库产品构成图6 数据仓库产品构成
二、数据湖
数据湖(Data Lake)是Pentaho的CTO James Dixon提出来的(Pentaho作为一家BI公司在理念上是挺先进的),是一种数据存储理念——即在系统或存储库中以自然格式存储数据的方法。
Pentaho首席技术官James Dixon创造了“数据湖”一词。它把数据集市描述成一瓶水(清洗过的,包装过的和结构化易于去使用的)。数据湖更像是在自然状态下的水。数据流从源系统流向这个湖。用户可以在数据湖里校验,取样或完全的使用数据。
这个也是一个不精确的定义。数据还有以下特点:
-
从源系统导入所有的数据,没有数据流失。
-
数据存储时没有经过转换或只是简单的处理。
-
数据转换和定义schema 用于满足分析需求。
2.1、维基百科对数据湖的定义
数据湖(Data Lake)是一个存储企业的各种各样原始数据的大型仓库,其中的数据可供存取、处理、分析及传输。数据湖是以其自然格式存储的数据的系统或存储库,通常是对象blob或文件。数据湖通常是企业所有数据的单一存储,包括源系统数据的原始副本,以及用于报告、可视化、分析和机器学习等任务的转换数据。数据湖可以包括来自关系数据库(行和列)的结构化数据,半结构化数据(CSV,日志,XML,JSON),非结构化数据(电子邮件,文档,PDF)和二进制数据(图像,音频,视频)。来源:维基百科。
目前,Hadoop是最常用的部署数据湖的技术,所以很多人会觉得数据湖就是Hadoop集群。数据湖是一个概念,而Hadoop是用于实现这个概念的技术。
图7 数据湖的处理架构
图8 数据湖示意图
2.2、数据湖能给企业带来多种能力
数据湖能给企业带来多种能力,例如,能实现数据的集中式管理,在此之上,企业能挖掘出很多之前所不具备的能力。另外,数据湖结合先进的数据科学与机器学习技术,能帮助企业构建更多优化后的运营模型,也能为企业提供其他能力,如预测分析、推荐模型等,这些模型能刺激企业能力的后续增长。数据湖能从以下方面帮助到企业:
-
实现数据治理(data governance);
-
通过应用机器学习与人工智能技术实现商业智能;
-
预测分析,如领域特定的推荐引擎;
-
信息追踪与一致性保障;
-
根据对历史的分析生成新的数据维度;
-
有一个集中式的能存储所有企业数据的数据中心,有利于实现一个针对数据传输优化的数据服务;
-
帮助组织或企业做出更多灵活的关于企业增长的决策。
3、数据仓库与数据湖差异
-
在储存方面上,数据湖中数据为非结构化的,所有数据都保持原始形式。存储所有数据,并且仅在分析时再进行转换。数据仓库就是数据通常从事务系统中提取。
-
在将数据加载到数据仓库之前,会对数据进行清理与转换。在数据抓取中数据湖就是捕获半结构化和非结构化数据。而数据仓库则是捕获结构化数据并将其按模式组织。
-
数据湖的目的就是数据湖非常适合深入分析的非结构化数据。数据科学家可能会用具有预测建模和统计分析等功能的高级分析工具。而数据仓库就是数据仓库非常适用于月度报告等操作用途,因为它具有高度结构化。
-
在架构中数据湖通常,在存储数据之后定义架构。使用较少的初始工作并提供更大的灵活性。在数据仓库中存储数据之前定义架构。表1 数据仓库和数据湖的区别
3.1、产生的背景
企业在过去信息化的历程中形成了大量生产经营及专业业务应用成果,同时也累积了大量的企业数据资产。限于传统的数据仓库技术手段,数据管理和分析能力成为信息化工作中的短板。
企业信息系统众多,系统管理独立,数据存储分散,横向的数据共享和分析应用仅由具体业务驱动,难以对全局数据开展价值挖掘,从规模上和效果上都无法真正体现集团庞大数据资产的价值。
市场竞争和产业链日益全球化,企业不只满足于内部数据的分析,更要通过互联网、微信、APP等新技术手段结合外部市场数据进行整体分析。
1)传统的数据仓库不能满足数据分析需求
企业在数据分析应用方面呈现“五大转变”(从统计分析向预测分析转变、从单领域分析向跨领域转变、从被动分析向主动分析转变、从非实时向实时分析转变、从结构化数据向多元化转变),并且对统一的数据中台平台诉求强烈,对数据中台的运算能力、核心算法、及数据全面性提出了更高的要求。
2)数据中台的处理架构发生了变化
一是以Hadoop、Spark等分布式技术和组件为核心的“计算&存储混搭”的数据处理架构,能够支持批量和实时的数据加载以及灵活的业务需求。
二是数据的预处理流程正在从传统的ETL结构向ELT转变。传统的数据仓库集成处理架构是ETL结构,这是构建数据仓库的重要一环,即用户从数据源抽取出所需的数据,经过数据清洗,将数据加载到数据仓库中去。而大数据背景下的架构体系是ELT结构,其根据上层的应用需求,随时从数据中台中抽取想要的原始数据进行建模分析。
3.2、数据中台建设是数字化转型的支撑
数据中台成为热点,“中台”这个概念,是相对于前台和后台而生,是前台和后台的链接点,将业务共同的工具和技术予以沉淀。数据中台是指数据采集交换、共享融合、组织处理、建模分析、管理治理和服务应用于一体的综合性数据能力平台,在大数据生态中处于承上启下的功能,提供面向数据应用支撑的底座能力。
广义上来给数据中台一个企业级的定义:“聚合和治理跨域数据,将数据抽象封装成服务,提供给前台以业务价值的逻辑概念”。
图9 数据中台建设是数字化转型的关键支撑
中台战略核心是数据服务的共享。中台战略并不是搭建一个数据平台,但是中台的大部分服务都是围绕数据而生,数据中台是围绕向上层应用提供数据服务构建的,中台战略让数据在数据平台和业务系统之间形成了一个良性的闭环,也就是实现应用与数据之间解藕,并实现紧密交互。
-
敏捷前台:一线作战单元,强调敏捷交互及稳定交付的组织能力建设。
-
业务中台:能力固化与赋能,固化通用能力,赋能前线部队,提升配置效率,加快前线响应,产品化业务化,开辟全新生态。
-
数据中台:资产整合与共享,整合多维数据,统一资产管理,连通数据孤岛,共享数据资源,深入挖掘数据,盘活资产价值。
-
稳定后台:以共享中心建设为核心,为前中台提供专业的内部服务支撑。
3.3、数据中台定义及处理架构
数据中台是指通过企业内外部多源异构的数据采集、治理、建模、分析,应用,使数据对内优化管理提高业务,对外可以数据合作价值释放,成为企业数据资产管理中枢。数据中台建立后,会形成数据API,为企业和客户提供高效各种数据服务。
图10 数据中台架构图
数据中台整体技术架构上采用云计算架构模式,将数据资源、计算资源、存储资源充分云化,并通过多租户技术进行资源打包整合,并进行开放,为用户提供“一站式”数据服务。
利用大数据技术,对海量数据进行统一采集、计算、存储,并使用统一的数据规范进行管理,将企业内部所有数据统一处理形成标准化数据,挖掘出对企业最有价值的数据,构建企业数据资产库,提供一致的、高可用大数据服务。
数据中台不是一套软件,也不是一个信息系统,而是一系列数据组件的集合,企业基于自身的信息化建设基础、数据基础以及业务特点对数据中台的能力进行定义,基于能力定义利用数据组件搭建自己的数据中台。
3.4、数据中台带来价值
数据中台对一个企业的数字化转型和可持续发展起着至关重要的作用。数据中台为解耦而生,企业建设数据中台的最大意义就是应用与数据解藕。这样企业就可以不受限制地按需构建满足业务需求的数据应用。
-
构建了开放、灵活、可扩展的企业级统一数据管理和分析平台, 将企业内、外部数据随需关联,打破了数据的系统界限。
-
利用大数据智能分析、数据可视化等技术,实现了数据共享、日常报表自动生成、快速和智能分析,满足集团总部和各分子公司各级数据分析应用需求。
-
深度挖掘数据价值,助力企业数字化转型落地。实现了数据的目录、模型、标准、认责、安全、可视化、共享等管理,实现数据集中存储、处理、分类与管理,建立大数据分析工具库、算法服务库,实现报表生成自动化、数据分析敏捷化、数据挖掘可视化,实现数据质量评估、落地管理流程。
四、传统数据仓库与数据中台的差异点
图11 数据中台与传统数据仓库比较
表2 技术路线对比
作为工业企业,一般采用混搭架构:
表3 技术路线选型比较
四、数据湖(Data Lake)和数据仓库(Data Warehouses)理解误区误解一:数据仓库和数据湖二者在架构上只能二选一
很多人认为数据仓库和数据湖在架构上只能二选一,其实这种理解是错误的。数据湖和数据仓库并不是对立关系,相反它们的并存可以互补给企业架构带来更多的好处。数据仓储存储结构化的数据,适用于快速的BI和决策支撑,而数据湖可以存储任何格式的数据,往往通过挖掘能够发挥出数据的更大作为。所以在一些场景上二者的并存是可以给企业带来更多效益的。
误解二:相对于数据湖,数据仓库更有名更受欢迎
人工智能(AI)和机器学习项目的成功往往需要数据湖来做支撑。因为数据湖可让您存储几乎任何类型的数据而无需先准备或清理,所以可以保留尽可能多的潜在价值。而数据仓库存储的数据都是经过清洗,往往会丢失一些有价值的信息。
数据仓库虽然是这两种中比较知名的,但是随着数据挖掘需求的发展,数据湖的受欢迎程度可能会继续上升。数据仓库对于某些类型的工作负载和用例工作良好,而数据湖则是为其他类型的工作负载提供服务的另一种选择。
误解三:数据仓库易于使用,而数据湖却很复杂
确实,数据湖需要数据工程师和数据科学家的特定技能,才能对存储在其中的数据进行分类和利用。数据的非结构化性质使那些不完全了解数据湖如何工作的人更难以访问它。
但是,一旦数据科学家和数据工程师建立了数据模型或管道,业务用户就可以利用建立的数据模型以及流行的业务工具(定制或预先构建)的来访问和分析数据,而不在乎该数据存储在数据仓库中还是数据湖中。
五、数据仓库、数据集市与数据湖的对比Pentaho首席技术官James Dixon创造了“数据湖”一词。它把数据集市描述成一瓶水(清洗过的,包装过的和结构化易于去使用的)。数据湖更像是在自然状态下的水。数据流从源系统流向这个湖。用户可以在数据湖里校验,取样或完全的使用数据。
这个也是一个不精确的定义。数据还有以下特点:
-
从源系统导入所有的数据,没有数据流失。
-
数据存储时没有经过转换或只是简单的处理。
-
数据转换和定义schema 用于满足分析需求。
下面让我们分析一下数据湖与数据仓库的5个关键的区别。
5.1数据湖保留全部的数据
数据仓库开发期间,大量的时间花费在分析数据源,理解商业处理和描述数据。结果就是为报表设计高结构化的数据模型。这一过程大部分的工作就是来决定数据应不应该导入数据仓库。通常情况下,如果数据不能满足指定的问题,就不会导入到数据仓库。这么做是为了简化数据模型和节省数据存储空间。
相反,数据湖保留所有的数据。不仅仅是当前正在使用的数据,甚至不被用到的数据也会导进来。数据会一直被保存所有我们可以回到任何时间点来做分析。
因为数据湖使用的硬件与数据仓库的使用的不同,使这种方法成为了可能。现成的服务器与便宜的存储相结合,使数据湖扩展到TB级和PB级非常经济。
数据仓库主要存储来自运营系统的大量数据,而数据湖则存储来自更多来源的数据,包括来自企业的运营系统和其他来源的各种原始数据资产集。
由于数据湖中的数据可能不准确,并且可能来自企业运营系统之外的来源,因此不是很适合普通的业务分析用户;数据湖更适合数据科学家和其他数据分析专家。
对于数据仓库与数据湖的不同之处,你可以想象一下仓库和湖泊的区别:仓库存储着来自特定来源的货物,而湖泊的水来自河流、溪流和其他来源,并且是原始数据。
数据仓库供应商包括AWS、Cloudera、IBM、谷歌、微软、甲骨文、Teradata、SAP、SnapLogic和Snowflake等。数据湖提供商包括AWS、谷歌、Informatica、微软、Teradata等。
5.2.数据湖支持所有数据类型
数据仓库一般由从事务系统中提取的数据组成,并由定量度量和描述它们的属性组成。诸如Web服务器日志,传感器数据,社交网络活动,文本和图像等非传统数据源在很大程度上被忽略。这些数据类型的新用途不断被发现,但是消费和存储它们可能是昂贵和困难的。
数据湖方法包含这些非传统数据类型。在数据湖中,我们保留所有数据,而不考虑源和结构。我们保持它的原始形式,并且只有在我们准备好使用它时才会对其进行转换。这种方法被称为“读取模式”与数据仓库中使用的“写入模式”方法。
5.3.数据库支持所有用户使用
在大多数公司或组织中,80%或更多的用户是运营人员。他们希望获得他们的报告,查看他们的关键绩效指标或每天在电子表格中分割相同的数据集。数据仓库通常是这些用户的理想选择,因为它结构良好,易于使用和理解,并且专门用于回答他们的问题。
接下来的10%左右,对数据做更多的分析。他们使用数据仓库作为数据源,但通常会返回源系统以获取仓库中未包含的数据,有时还会从组织外部导入数据。他们最喜欢的工具是电子表格,他们创建的新报告通常分布在整个组织中。数据仓库是他们的数据源,但他们经常超出其范围
最后,最后几个百分比的用户做了深入的分析。他们可能会根据研究创建全新的数据源。他们混合了许多不同类型的数据,并提出了全新的问题来回答。这些用户可能会使用数据仓库,但往往会忽略它,因为他们通常被控超越其功能。这些用户包括数据科学家,他们可能会使用高级分析工具和功能,如统计分析和预测建模。
数据湖方法同样支持所有这些用户。数据科学家可以去湖边工作,并使用他们需要的非常庞大和多样化的数据集,而其他用户则可以使用更为结构化的数据视图来提供他们使用的数据。
5.4.数据湖很容易适应变化
关于数据仓库的主要抱怨之一是需要多长时间来改变它们。在开发过程中花费大量时间来获得仓库的结构。一个好的仓库设计可以适应变化,但由于数据加载过程的复杂性以及为简化分析和报告所做的工作,这些更改必然会消耗一些开发人员资源并需要一些时间。
许多业务问题都迫不及待地让数据仓库团队适应他们的系统来回答问题。日益增长的对更快答案的需求促成了自助式商业智能的概念。
另一方面,在数据湖中,由于所有数据都以其原始形式存储,并且始终可供需要使用它的人访问,因此用户有权超越仓库结构以新颖方式探索数据并回答它们问题在他们的步伐。
如果一个探索的结果被证明是有用的并且有重复的愿望,那么可以应用更正式的模式,并且可以开发自动化和可重用性来帮助将结果扩展到更广泛的受众。如果确定结果无用,则可以丢弃该结果,并且不会对数据结构进行任何更改,也不会消耗开发资源。
5.5.数据湖支持快速洞察数据
最后的区别实际上是其他四个的结果。由于数据湖包含所有数据和数据类型,因为它使用户能够在数据转换,清理和结构化之前访问数据,从而使用户能够比传统数据仓库方法更快地获得结果。
但是,这种对数据的早期访问是有代价的。通常由数据仓库开发团队完成的工作可能无法完成分析所需的部分或全部数据源。这让驾驶座位的用户可以根据需要探索和使用数据,但上述第一层业务用户可能不希望这样做。他们仍然只想要他们的报告和KPI。
在数据湖中,这些操作报告的使用者将利用更加结构化的数据湖中数据的结构视图,这些视图与数据仓库中以前一直存在的数据相似。不同之处在于,这些视图主要存在于位于湖泊中的数据之上的元数据,而不是需要开发人员更改的物理刚性表格。
5.6 数据仓库vs.数据集市
数据集市和数据仓库经常会被混淆,但两者的用途明显不同。
数据集市通常是数据仓库的子集;它等数据通常来自数据仓库 – 尽管还可以来自其他来源。数据集市的数据专门针对特定的用户社区(例如销售团队),以便他们能够快速找到所需的数据。通常,数据保存在那里用于特定用途,例如财务分析。
数据集市也比数据仓库小得多 – 它们可以容纳数十千兆字节,相比之下,数据仓库可以存储数百千兆字节到PB级数据,并可用于数据处理。
数据集市可从现有数据仓库或其他数据源系统构建,你只需设计和构建数据库表,使用相关数据填充数据库表并决定谁可以访问数据集即可。
5.7 数据仓库vs.ODS
操作数据存储(ODS)是一种数据库,用作所有数据的临时存储区域,这些数据即将进入数据仓库进行数据处理。我们可以将其想象成仓库装卸码头,货物在此处交付、检查和验证。在ODS中,数据在进入仓库前可以被清理、检查(因为冗余目的),也可检查是否符合业务规则。
在ODS中,我们可以对数据进行查询,但是数据是临时的,因此它仅提供简单信息查询,例如正在进行的客户订单状态。
ODS通常运行在关系数据库管理系统(RDBMS)或Hadoop平台。ODS中的数据通常通过数据集成和数据提取工具(例如Attunity Replicate或Hortonworks DataFlow)提供。
5.8 关系型数据库vs.数据仓库和数据湖
数据仓库、数据湖与关系数据库系统之间的主要区别在于,关系数据库用于存储和整理来自单个来源(例如事务系统)的结构化数据,而数据仓库则用于存储来自多个来源的结构化数据。数据湖的不同之处在于它可存储非结构化、半结构化和结构化数据。
关系数据库创建起来相对简单,可用于存储和整理实时数据,例如交易数据等。关系数据库的缺点是它们不支持非结构化数据库数据或现在不断生成的大量数据。这使得我们只能在数据仓库与数据湖间做出选择。尽管如此,很多企业仍然继续依赖关系数据库来完成运营数据分析或趋势分析等任务。
内部或云端可用的关系数据库包括Microsoft SQL Server、Oracle数据库、MySQL和IBM Db2、以及Amazon Relational Database Service、Google Cloud Spanner等。
六、小结一、数据湖
由数据驱动的决策非常流行。从数据科学,机器学习和高级分析到实时仪表板,决策者都需要数据来帮助做出决策。
该数据需要一个家,而数据湖是创建该家的首选解决方案。该术语由Pentaho的CTO James Dixon发明并首次描述,他在博客中写道:“如果您将数据集市视为瓶装水的存储库,经过清洗,包装和结构化以便于使用,那么数据湖就很大了。水体处于更自然的状态。数据湖的内容从源头流入整个湖中,并且该湖的各种用户可以来检查,潜水或取样。”斜体关键点是:数据在原始数据中格式和格式(自然或原始数据)。
数据由各种用户使用,即由大型用户社区访问和访问。
企业大数据湖弥合了现代互联网公司随心所欲的文化之间的鸿沟,在现代文化中,数据是所有实践的核心,每个人都是分析师,大多数人都可以编写和滚动自己的数据集,而企业数据仓库则以数据为代表。 贵重商品,由专业的IT人员精心照管,并以精心准备的报告和分析数据集的形式提供。
为了成功,企业数据湖必须提供三个新功能:
1.经济高效,可扩展的存储和计算功能,因此可以存储和分析大量数据,而不会产生高昂的计算成本
2.经济高效的数据访问和治理,因此每个人都可以查找和使用正确的数据,而不会因编程和手动临时数据获取而造成昂贵的人力成本。
3.分层,受控制的访问权限,因此可以根据不同用户的需求和技能水平以及适用的数据治理策略为不同的用户提供不同级别的数据.
数据湖成熟度:数据湖是一个相对较新的概念,因此定义您可能会观察到的某些成熟阶段并清楚地阐明这些阶段之间的差异非常有用:数据水坑基本上是建立的单一目的或单一项目数据集市使用大数据技术。它通常是采用大数据技术的第一步。数据水坑中的数据是出于单个项目或团队的目的而加载的。它通常是众所周知的,并且被人们所理解,使用大数据技术代替传统数据仓库的原因是为了降低成本并提供更好的性能。
数据池是数据水坑的集合。它可能像设计不良的数据仓库,实际上是同一位置的数据集市的集合,或者可能是现有数据仓库的卸载。虽然较低的技术成本和更好的可伸缩性是显而易见的诱人好处,但是这些结构仍需要很高的IT参与度。此外,数据池仅将数据限制为项目所需的数据,并且仅将数据用于需要它的项目。鉴于高昂的IT成本和有限的数据可用性,数据池并不能真正帮助我们实现使数据使用民主化或推动业务用户自助服务和数据驱动型决策的目标。
数据湖在两个重要方面不同于数据池。首先,它支持自助服务,使业务用户能够查找和使用他们想要使用的数据集,而不必依赖IT部门的帮助。其次,它旨在包含业务用户可能需要的数据,即使当时没有任何项目需要它。
数据海洋将自助数据和数据驱动的决策扩展到所有企业数据,无论它在哪里,无论是否将其加载到数据湖中。
下图说明了这些概念之间的区别。随着成熟度从水坑到池塘到从湖泊到海洋的增长,数据量和用户数量都在增长,有时会非常大。使用模式已从高度接触的IT参与之一转变为自助服务,并且数据的扩展范围超出了立即项目所需的范围。二.数据仓库:
数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。
1、数据仓库是面向主题的;操作型数据库的数据组织面向事务处理任务,而数据仓库中的数据是按照一定的主题域进行组织。主题是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。
2、数据仓库是集成的,数据仓库的数据有来自于分散的操作型数据,将所需数据从原来的数据中抽取出来,进行加工与集成,统一与综合之后才能进入数据仓库;
数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。
数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。
数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到当前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
3、数据仓库是不可更新的,数据仓库主要是为决策分析提供数据,所涉及的操作主要是数据的查询;
4、数据仓库是随时间而变化的,传统的关系数据库系统比较适合处理格式化的数据,能够较好的满足商业商务处理的需求。稳定的数据以只读格式保存,且不随时间改变。
5、汇总的。操作性数据映射成决策可用的格式。
6、大容量。时间序列数据集合通常都非常大。
7、非规范化的。Dw数据可以是而且经常是冗余的。
8、元数据。将描述数据的数据保存起来。
9、数据源。数据来自内部的和外部的非集成操作系统。
数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它并不是所谓的“大型数据库”。数据仓库的方案建设的目的,是为前端查询和分析作为基础,由于有较大的冗余,所以需要的存储也较大。为了更好地为前端应用服务,数据仓库往往有如下几点特点:
1.效率足够高。数据仓库的分析数据一般分为日、周、月、季、年等,可以看出,日为周期的数据要求的效率最高,要求24小时甚至12小时内,客户能看到昨天的数据分析。由于有的企业每日的数据量很大,设计不好的数据仓库经常会出问题,延迟1-3日才能给出数据,显然不行的。
2.数据质量。数据仓库所提供的各种信息,肯定要准确的数据,但由于数据仓库流程通常分为多个步骤,包括数据清洗,装载,查询,展现等等,复杂的架构会更多层次,那么由于数据源有脏数据或者代码不严谨,都可以导致数据失真,客户看到错误的信息就可能导致分析出错误的决策,造成损失,而不是效益。
3.扩展性。之所以有的大型数据仓库系统架构设计复杂,是因为考虑到了未来3-5年的扩展性,这样的话,未来不用太快花钱去重建数据仓库系统,就能很稳定运行。主要体现在数据建模的合理性,数据仓库方案中多出一些中间层,使海量数据流有足够的缓冲,不至于数据量大很多,就运行不起来了。
从上面的介绍中可以看出,数据仓库技术可以将企业多年积累的数据唤醒,不仅为企业管理好这些海量数据,而且挖掘数据潜在的价值,从而成为通信企业运营维护系统的亮点之一。
广义的说,基于数据仓库的决策支持系统由三个部件组成:数据仓库技术,联机分析处理技术和数据挖掘技术。其中数据仓库技术是系统的核心。
4.面向主题
操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织的。主题是与传统数据库的面向应用相对应的,是一个抽象概念,是在较高层次上将企业信息系统中的数据综合、归类并进行分析利用的抽象。每一个主题对应一个宏观的分析领域。数据仓库排除对于决策无用的数据,提供特定主题的简明视图。
三、数据沼泽(The Data Swamp):
没有足够的信息,很难区分湖泊中的数据。它不再是沼泽,而是泥坑。一切看起来都一样,您无法分辨出好消息还是坏消息。
清理湖面并不是要使湖面看起来更加井井有条,而是要使湖面看起来平整无奇,而是让湖面看起来像沼泽一样。当然,我们不能回到模型中,在所有模型都可用之前必须对其进行完整描述,就像许多数据仓库一样(而且我们都知道故事的结局)。取而代之的是,在人们最初使用该数据时收集其元数据并不断收集更多信息的过程是确保灵活性并抓住重用和共享机会的最佳方法。
这种方法还可以确保了解数据的人(因为他们生产和使用数据)描述和记录有关数据的信息。人们之所以愿意这样做,是因为他们看到了价值,因为有了这些信息,也可以更轻松地查找和使用湖泊中的数据。因此,这是一次公平的交流:轻松访问有关数据的知识以及如何使用它们。目前,这是唯一可以自然扩展的可行方法。
许多技术有望解决数据沼泽问题。尽管它们确实解决了问题的各个方面,但主要的挑战是确保可以看到数据集的真实性,而不是将其隐藏在看似平静的表面之下。为了应对这一挑战,组织必须使他们的数据在湖泊中可见,并将发现数据的过程(通过数据目录)与收集有关数据的信息的过程联系起来。没有这种联系,数据湖可能看起来很平静,但是它将是一片毫无特色的广阔区域,而不是丰富多样的景观。
四、数据集市:data marts
数据集市(Data Mart) ,也叫数据市场,数据集市就是满足特定的部门或者用户的需求,按照多维的方式进行存储,包括定义维度、需要计算的指标、维度的层次等,生成面向决策分析需求的数据立方体。 从范围上来说,数据是从企业范围的数据库、数据仓库,或者是更加专业的数据仓库中抽取出来的。数据中心的重点就在于它迎合了专业用户群体的特殊需求,在分析、内容、表现,以及易用方面。数据中心的用户希望数据是由他们熟悉的术语表现的。
数据集市就是企业级数据仓库的一个子集,他主要面向部门级业务,并且只面向某个特定的主题。为了解决灵活性与性能之间的矛盾,数据集市就是数据仓库体系结构中增加的一种小型的部门或工作组级别的数据仓库。数据集市存储为特定用户预先计算好的数据,从而满足用户对性能的需求。数据集市可以在一定程度上缓解访问数据仓库的瓶颈。
1.数据集市的特征包括规模小。
2.有特定的应用。
3.面向部门。
4.由业务部门定义、设计和开发。
5.业务部门管理和维护。
6.能快速实现。
7.购买较便宜。
8.投资快速回收。
9.工具集的紧密集成。
10.提供更详细的、预先存在的、数据仓库的摘要子集。
11.可升级到完整的数据仓库。
五、数据水坑(Data Puddles):
数据水坑通常是为小型团队或专门用例而构建的。这些“水坑”是单个团队拥有的中等规模的数据集合,通常由业务部门使用影子IT在云中构建。在数据仓库时代,每个团队都习惯于为其每个项目构建一个关系数据集市。除了使用大数据技术外,构建数据水坑的过程非常相似。通常,数据水坑是为需要大数据的功能和规模的项目构建的。许多高级分析项目,例如那些关注客户流失或预测性维护的项目,都属于此类。
有时,构建数据水坑是为了帮助IT人员进行自动化的计算密集型和数据密集型流程,例如提取,转换,加载(ETL)卸载,这些将在后面的章节中详细介绍,在这些章节中,所有转换工作都从数据仓库或仓库中转移。昂贵的ETL工具到大数据平台。另一个常见用途是通过提供一个称为“沙箱”的工作区域为单个团队提供服务,数据科学家可以在其中进行实验。
数据水坑通常范围较小,数据种类有限-它们由小型专用数据流填充,并且构建和维护它们需要技术团队或IT部门的大力参与。
数据池(Data Ponds):数据池是数据水坑的集合。正如您可以将数据池视为使用大数据技术构建的数据集市一样,您也可以将数据池视为使用大数据技术构建的数据仓库。随着更多的水坑被添加到大数据平台,它可能有机地存在。创建数据池的另一种流行方法是将数据仓库卸载。
与ETL卸载不同,ETL卸载使用大数据技术来执行填充数据仓库所需的一些处理,此处的想法是将数据仓库中的所有数据加载到大数据平台中。愿景通常是最终摆脱数据仓库以节省成本并提高性能,因为大数据平台比关系数据库便宜得多且可伸缩性更高。但是,仅卸载数据仓库并不能使分析人员访问原始数据。由于仍然保持适用于数据仓库的严格体系结构和治理,因此组织无法解决数据仓库的所有挑战,例如冗长而昂贵的变更周期,复杂的转换以及将人工编码作为所有报告的基础。最后,分析人员通常不喜欢从具有闪电般快速查询的精细数据仓库迁移到可预测性差得多的大数据平台,在该平台上,大批查询的运行速度可能比数据仓库中的运行速度快,但更典型的小型查询可能需要几分钟的时间。数据池的一些典型局限性:缺乏可预测性,敏捷性以及无法访问未经处理的原始数据。
六. 数据孤岛(data silos):
企业发展到一定阶段,出现多个事业部,每个事业部都有各自数据,事业部之间的数据往往都各自存储,各自定义。每个事业部的数据就像一个个孤岛一样无法(或者极其困难)和企业内部的其他数据进行连接互动。”我们把这样的情况称为数据孤岛。简单说就是数据间缺乏关联性,数据库彼此无法兼容。
专业人士把数据孤岛分为物理性和逻辑性两种。物理性的数据孤岛指的是,数据在不同部门相互独立存储,独立维护,彼此间相互孤立,形成了物理上的孤岛。逻辑性的数据孤岛指的是,不同部门站在自己的角度对数据进行理解和定义,使得一些相同的数据被赋予了不同的含义,无形中加大了跨部门数据合作的沟通成本。
数据湖 | 一文读懂Data Lake的概念、特征、架构与案例
重磅 | Delta Lake正式加入Linux基金会,重塑数据湖存储标准