关于数据库:数据仓库数据集市数据湖你的企业更适合哪种数据管理架构

40次阅读

共计 4640 个字符,预计需要花费 12 分钟才能阅读完成。

建设企业级数据平台,首先须要理解企业数据,确认治理需要,并抉择一个数据管理架构。那么面对纷繁复杂的数据起源,多元化的数据结构,以及他们的治理应用需要,企业数据平台建设该从何处动手呢?哪个数据管理架构适宜本人的企业呢?本篇将介绍数据仓库、数据集市、数据湖。

— 数据仓库(Data Warehouse)—

数据仓库是 Bill Inmon 在 1991 年出版的“Building the Data Warehouse”一书中所提出的定义被宽泛承受:数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、绝对稳固的(Non-Volatile)、反映历史变动(Time Variant)的数据汇合,用于反对管理决策(Decision Making Support)。

数据仓库是企业的对立的数据管理形式,将不同利用中的数据汇聚,而后对这些数据加工和多维度剖析,并最终展示给用户。它帮忙企业将纷纷浩杂的数据整合加工,并最终转换为要害流程上的 KPI,从而为决策 / 治理等提供最精确的反对,并帮忙预测发展趋势。因而,数据仓库是企业 IT 中十分外围的零碎。

依据企业构建数据仓库的次要利用场景不同,咱们能够将数据仓库分为以下两种类型,每一种类型的数据仓库零碎都有不同的技术指标与要求。

  • 企业数据仓库

企业会把数据分成外部数据和内部数据,外部数据通常分为两类,OLTP 交易系统以及 OLAP 剖析零碎数据,他们会把这些数据全副集中起来,通过转换放到数据库当中,这些数据库通常是 Teradata、Oracle、DB2 数据库等。而后在这下面进行数据的加工,建设各种主题模型,再提供报表剖析业务。一般来说,数据的解决和加工是通过离线的批处理来实现的,通过各种利用模型实现具体的报表加工。

* 实时数据仓库

随着业务的倒退,一些企业客户须要对一些实时的数据做一些商业剖析,譬如批发行业须要依据实时的销售数据来调整库存和生产打算,风电企业须要解决实时的传感器数据来排查故障以保障电力的生产等。这类行业用户对数据的实时性要求很高,传统的离线批处理的形式不能满足需要,因而他们须要构建实时处理的数据仓库。数据能够通过各种形式实现采集,而后数据仓库能够在指定的工夫窗口内对数据进行解决,事件触发和统计分析等工作,再将数据存入数据仓库以满足其余一些其余业务的需要。因而,实时数据仓库加强了对实时性数据的解决能力要求,外围的计算引擎须要基于实时计算平台,如开源的 Flink 或星环科技自研的 Slipstream,通过实时引擎来对接机器学习、可视化剖析和实时调度类利用。

 —数据集市(Data Mart)—

数据集市是一个有针对性的数据仓库版本,它蕴含一个较小的数据子集,这些数据对组织内的单个团队或选定用户组很重要且是必须的。因为数据集市蕴含较小的数据子集,因而在应用更宽泛的数据仓库数据集时,数据集市使部门或业务线可能更快地发现更有针对性的洞察。最后创立数据集市的目标是应答组织在 20 世纪 90 年代建设数据仓库的艰难。过后集成来自整个组织的数据须要进行大量手动编码,而且十分耗时。与集中式数据仓库相比,数据集市的范畴更无限,使其实现起来更容易且更疾速。到了大数据时代,尽管企业数据仓库和数据湖在各个企业都曾经遍及,然而每个部门本身也有对业务数据进行解决剖析统计的需要,而且不波及到和其余数据交互,因而特定的部门不心愿在数据量大的数据仓库进行操作(因为操作慢,而且可能影响到其他人解决数据),所以建设一个新的存储系统,把数据仓库里关联本人的数据存储到这个零碎,实质上算是数据仓库的一个子集。这个零碎叫做数据集市。

相比拟数据仓库,因为数据集市波及的数据源集中于某个部门或者业务线的主体,因而其解决的数据会小很多,业务构建比拟麻利,对用户需要的响应也会更加迅速。对集市的用户来说,因为仅凋谢给某个部门或业务主体,其对多租户隔离的需要也不是很强,用户能够更加简略不便的获取数据,能够简略的通过数据报表工具或 Excel 等工具来做数据分析,因而对基础设施的依赖就绝对比拟低,建设老本也绝对更低。此外,对集市的施行人员来说,波及到要加工解决的数据比拟少,数据加工工夫会短很多,平安治理的要求也比拟低,因而建设和运维绝对更低。总体上说,因为数据集市都是集中在某个繁多的业务畛域,对施行人员和业务用户来说都比拟麻利和灵便。

依照集市和数据仓库或数据库的关系,数据集市也能够分为三种类型:

  • 独立数据集市:独立的数据集市零碎,不依赖数据仓库或数据湖,个别间接从数据源零碎加载必要的数据做加工后依照业务主体提供业务剖析后果;
  •  关联数据集市:是数据仓库或数据湖的一个局部,个别对应数据仓库的数据集市层,相干的数据加工解决由数据仓库的批处理工作实现;
  • 混合数据集市:主题数据的起源包含了数据仓库、数据湖,也包含了其余的数据库。这种集市的益处是既能蕴含企业自顶而下设计的从数据仓库中加工而来的业务主题数据,又能满足自下而上的一线分析师的灵便提出的业务需要。

     数据集市的底层个别是一个独立的数据库,并且个别提供高并发的统计分析和检索服务,因而对数据库的并发计算性能要求比拟高。为了保证数据集市的并发性能,关键技术包含这两种:一是数据库层采纳反对高并发拜访的分布式数据库来撑持,二是采纳 OLAP Cube 技术。

分布式数据库因为其可扩展性能的劣势,可能撑持更高并发的连贯拜访,并且分布式计算引擎的统计分析 SQL 的性能更强,还能够通过减少硬件资源来扩大性能,因而针对一些用户规模较大、或者 BI 报表波及的报表计算非常复杂的部门或业务线,能够采纳分布式数据库。

OLAP Cube 技术是将一些数据建模后果事后计算出来,这样剖析人员应用数据的时候就能够灵便的做各种深入分析,如数据下钻、切片等,就能够通过预计算的数据来拜访,而无需去查问底层数据库或从新计算数据,因而如果拜访数据可能命中 Cube,业务的并发拜访性能将失去极大的晋升。OLAP Cube 自身是采纳空间换工夫的优化策略,它须要用户来指定预计算的 schema,此外 Cube 建模工具会有优化办法来缩小须要长久化的 Cube 数据,从而缩小预计算须要的解决工夫和存储空间。OLAP Cube 技术依据其长久化数据的形式又分为 ROLAP 和 MOLAP,简略了解 ROLAP 是将建模的 Cube 数据长久化在数据库中,而 MOLAP 个别是将 Cube 数据长久化在报表工具或建模工具中。

— 数据湖(Data Lake)—

数据湖是一种企业数据架构的实现形式,在物理实现上是一个存储库,容许用户以任意规模存储所有结构化和非结构化数据,并反对对数据进行疾速加工和剖析。用户能够按原样存储数据(无需先对数据进行结构化解决),并运行不同类型的剖析(从控制面板和可视化到大数据处理、实时剖析和机器学习,以领导做出更好的决策。

最后创立数据湖的目标是应答数据仓库无奈解决数量、速度和品种一直减少的大数据的状况。尽管数据湖比数据仓库慢,但它们的价格也更低廉,因为在采集之前简直不须要数据筹备。与数据仓库或数据集市不同的是,数据湖上存储原始数据,通常为 PB 级别,个别没有简单的业务建模,次要做一些根底的数据治理或者基础性的模型建设工作,更多的为企业外部提供一个公共的数据存储和摸索能力,并为上游的集市、仓库或者中台提供数据与计算能力。很多企业会同时建设数据湖和数据仓库,从而保障更好的数据架构与用户体验。

数据湖反对宽泛的用例,因为在收集数据时不须要定义数据的业务指标。数据湖能够存储结构化和非结构化数据,这种灵便的存储需要对于数据科学家、数据工程师和开发人员尤其有用,让他们可能拜访数据进行数据发现练习和机器学习我的项目。数据科学家能够应用数据湖进行概念验证。机器学习应用程序能够从可能在同一个中央存储结构化和非结构化数据中受害,这是应用关系数据库系统无奈实现的。数据湖也能够用于测试和开发大数据分析我的项目。当利用程序开发实现并辨认出有用数据后,能够将数据导出到数据仓库以供操作应用,并且能够利用自动化来实现应用程序扩大。数据湖还能够用于数据备份和复原,因为它们可能以低成本进行扩大。数据湖非常适合存储尚未定义业务需要的“以备不时之需”数据,当初存储这些数据意味着能够在当前呈现新打算时应用。

从实现形式上看,目前 Hadoop 是最罕用的部署数据湖的技术,也有采纳 MPP+Hadoop 的混合架构,近年也有一些基于私有云存储的数据湖计划呈现和落地。

为了满足多样化的数据存储与剖析的需要,在数据湖的建设中,咱们须要设计确保落地后的数据湖具备以下 4 个要害能力:

  • 数据整合能力
    数据湖须要提供相干的工具或能力,能够整合包含各种关系数据库存储的结构化数据,以及从各个其余渠道(包含互联网、外部文档、传感器)等收集和存储非结构化数据,并且具备多样化的数据整合策略,包含实时、准实时、离线整合等,容许整合过程中的数据转换等能力。
  • 数据计算能力
    因为数据湖中积攒了企业外部的多样化的数据,因为使用者能够买通外部各种数据,从而剖析其中的数据法则,从而进一步领导和预测剖析。因而,数据湖须要给使用者提供弱小的数据计算能力,可能疾速地从海量数据中检索到要害信息,或是可能做大量数据的碰撞找到关联关系,或是对非结构化数据进行深度的辨认剖析等,这些都须要数据湖的平台提供欠缺的数据计算能力。
  • 数据治理能力
    因为数据湖中会集了原始数据,未做简单的数据模型加工,因而可能存在湖内的数据自身有较多品质问题的状况,或者各个数据源头的规范不对立,因而不能很好地用于领导数据分析业务。因而,数据湖的建设者须要提供工具或计算能力给使用者,能够在数据湖内做进一步的数据治理,从而进步数据品质和价值。
  • 数据服务能力
    数据湖在设计的时候,须要充分考虑如何提供给更多的数据需求者来自助服务,用户能够在数据湖上发现数据、剖析数据、改良数据以及最终奉献数据,从而造成一个从数据到价值链路的闭环。在这个过程中,无效的数据资产目录能够无效地帮忙用户来买通数据链路,而多租户服务能力是外围的技术要求。

除了以上 4 个外围的功能性需要以外,还须要关注一些重要的非功能性需要,包含:

  • 互操作性
    数据湖自身须要跟企业外部的各个数据系统有很好的互操作性,因而数据整合的工具或零碎须要有良好的连贯互通性,能够与关系数据库、NoSQL、实时数据系统、企业级对象存储等各个系统建设高效的数据交互通道。
  • 无效的老本管制
    因为数据湖自身的特点,存储的数据量个别比拟大,数据价值密度低,因而须要十分关注自身的老本管制,总体方案上须要较低的硬件老本和运维老本,以及较好的资源应用效率,有较好的弹性伸缩,可能反对计量计费等。
  • 多租户
    数据湖个别会凋谢给企业内多个部门或组织共用,而每个使用者自身运行的业务各自有特殊性,譬如机器学习的工作计算复杂度高,CPU 耗费大,而检索类工作磁盘 IO 密集应用,面向多个用户同时提供服务,如果要保障用户体验,数据湖底层须要提供良好的资源共享与隔离能力。
  • 业务连续性
    此外,高可用与灾备能力也是数据湖的一个要害因素,在技术的设计上须要充分考虑相干的技术要求,从而实现极其故障下的业务疾速恢复能力。

    — 小结—

    本篇介绍了数据仓库、数据集市、数据库等数据管理架构。那么对于平台建设落地,该如何依据企业数字化水平,建设一个可继续演进技术架构呢?在接下来的几篇中,咱们将依据企业数字化水平,分五个阶段来介绍。下一篇:存储与算力根底建设

正文完
 0