数据库技术诞生至今,发展创新的脚步从未停歇,本文将带你全面了解数据库架构的演进路线和趋势。
引言
“数据库”一词问世于20世纪60年代,其发展经历了多个阶段。
起初,以Oracle、DB2、SQLServer为代表的关系型数据库占据大部分市场,纵横数据库江湖数年。
20世纪90年代,伴随着基于MPP架构的Netezza和Teradata数据库的产生,尤其是大数据技术的产生以及分布式处理Hadoop技术的出现,使得占主导地位的Oracle、DB2、SQLServer等传统产品在分析型场景上面临严峻的考验。
然而,Hadoop架构并无法完全解决企业的需求。随着云计算时代的到来数据库结构设计,Hadoop架构在延迟、拓展性、小文件处理和读写灵活性等方面的局限日益凸显,促使行业拥抱云架构下的云原生数据库。
数据库架构发展主要阶段
接下来,我们将对以上几种数据库架构的特点逐一进行解读。
基于SMP(对称多处理)架构数据库
自20世纪80年代初以来,数据库市场一直由Oracle、Microsoft和IBM主导,他们提供了满足当时用户的通用解决方案,其底层硬件和数据库系统架构是在20世纪70年代开发的,使用的是对称多处理(Symmetrical Multi-Processing,SMP)架构,核心原理是多处理器共享统一的内存和磁盘等,应用场景以单机为主。
上图展示了Windows任务管理器,它显示了8个处理器正在SMP架构数据库服务器上执行指令。基于SMP架构数据库具有以下特点:
优点>>>
缺点>>>
基于MPP(大规模并行处理)架构数据库
1984年,基于MPP架构的TeraData交付了第一个TB级生产数据库。两年后,福布斯杂志将TeraData授予“年度产品”称号。此后,MPP架构被Netezza,Microsoft Parallel Data Warehouse (PDW)和HP Vertica等采用。
下图提供了MPP架构的图示,该架构的典型特点是单独的服务器接收用户的SQL语句,然后再被分配到多个独立运行的数据库服务器上。这些数据库服务器都是一台独立的计算机,具有自己的CPU、内存和磁盘,这些服务器连接起来作为单个集群运行,服务器之间通过内部网络进行通信。
MPP架构为数据仓库和数据分析平台提供了出色的解决方案,查询可以分散到节点并行执行,可以显著地提高性能。但是,与SMP架构不同,MPP架构的数据分布方式至关重要,直接影响到数据库吞吐量和响应时间。下图展示了三种常用的MPP数据分布方式。
复制方式:通常用于较小的表,采用此方式分布数据,在每个节点上都重复着所有数据,存在一定的浪费。此方式在维度表时可以考虑,因为维度表通常需要与一个数据量大的事实表进行关联,这样就类似在集群的每个节点的本地磁盘进行关联计算,从而避免了跨节点的数据转移。一致性Hash:通常适用于较大的事实表,主要是通过一定方式生成键值,将每一行记录分配到相应的服务器上,此方式可以保证数据均匀分配,但是如果键值生成方式不恰当,导致节点数据分布不均匀,会影响整体性能。轮循方式:此方式主要是以循环方式依次对将数据依次写入节点中,这种方式适合临时层的表,这些表通常只被读写一次。它的优点是能保证数据均匀分布。使用此方式,需要将所有的表轮循分配到所有的节点,否则整体性能会比较差。
相比于SMP架构,基于MPP架构数据库具有以下优缺点:
优点>>>
缺点>>>
基于Hadoop/HDFS架构数据库
上图展示了2010-2015年之间行业内对大数据技术的关注度显著提升。在此期间,关于数据仓库是否已经消亡以及Hadoop/HDFS的架构能否替代MPP架构的讨论也很多,但是行业内普遍的共识是Hadoop/HDFS是数据仓库技术的补充,而不是MPP架构的替代品。有工程师曾表示,期待Hadoop能替代企业级数仓的人绝大部分都失望而归。
与MySQL和PostgreSQL(开源数据库)不同,Hadoop不是单一产品,而是相关项目的开源生态系统。Hadoop能在大规模计算机集群中对海量数据进行分布式计算,下图展示了Hadoop的一些关键组件和Hadoop的分发器。
Hadoop是一个庞大的处理平台数据库结构设计,它解决的主要问题包括:
大容量数据存储和批处理:Hadoop和HDFS通常被用于廉价的数据存储和数据湖构建平台。由于它能扩展到数千个节点,因此它非常适合大规模批量数据处理。实时处理:HDFS适合运行大批量数据,其他组件,例如Kafka、Spark Streaming、Storm以及Flink,专门用于提供微批或者实时流式数据处理。随着物联网行业的发展,需要提供越来越多的实时或准实时结果,Hadoop的实时处理能力越来越突出。文本挖掘和分析:Hadoop平台能够处理包括文本在内的非结构化数据,这极大不同于传统的数据库适用于行和列中的结构化数据。
上图是Hadoop/HDFS架构图,显示Hadoop处理数据的流程。Hadoop/HDFS作为一个海量数据分布式处理的软件架构,有着以下优缺点:
优点>>>
缺点>>>
基于云原生架构的数据库
为了解决MPP架构存储和计算紧耦合问题,行业内出现了云原生架构数据库,其核心是充分发挥云基础设施带来的各种资源弹性的优势,通过将计算和存储分离,提高数据库资源配置效率,实现计算和存储弹性扩展,按需分配,为客户带来超高的ROI。
目前,完全支持云原生架构的数据仓库产品有:Snowflake, Google的BigQuery 以及HashData云数仓。
与传统数据仓库相比,云原生数仓围绕着对象存储和抽象服务构建,通过融合大规模并行处理数据库优异的SQL功能和性能、Hadoop/Spark计算存储分离理念,以及云计算的弹性和扩展性,帮助企业客户轻松应对数据仓库、数据湖以及数据共享实施中面临的各种挑战。
以Snowflake为例,它能够启动多个独立的计算资源集群,每个集群的大小和操作都是独立的,可以从公共数据存储中加载和查询数据。Snowflake可以部署多个独立的计算资源集群,这意味着用户可以在批量加载数据的表上进行数据科学操作,同时为用户提供亚秒级响应时间。
在国内,HashData是最早进入云原生数仓赛道的厂商,其技术架构如下图所示:
HashData云数仓架构上分为三个层次,依次是元数据服务层、计算层以及数据存储层,每层之间完全解耦。持久化数据由数据存储层提供,计算集群所有节点都可以访问数据存储层;元数据服务层负责整体集群的的元数据管理和事务管理;计算层主要是负责具体的接收用户查询请求、查询协调、查询调优和计算工作,工作流程与MPP架构类似。计算层可以直接连接磁盘或者SSD盘用于本地缓存的同时,架构上独立的存储服务层也意味着存储服务层和计算层都可以独立地扩容,弹性调整计算集群的大小。这种设计在提供了MPP架构所有优势的同时,很大程度上解决了MPP架构的许多局限。
同时,HashData云数仓也提供了功能丰富的管理控制平台(Cloudmanager),作为云端数据仓库的重要组件,管理控制台通过对各类云平台资源的统一管理,整合数据库集群的监控、运维、管理等功能,建立统一的数字化管理运维平台,实现图形化、自动化操作,达到“所见即所得”的效果,极大地降低了数据仓库集群的运维管理成本,对于上万节点的数据仓库集群也能实现高效便捷管理。
Hashdata云数仓凭借其先进的架构设计,具备以下优点:
首先,可以同时启动多个独立的计算集群,共享存储服务,从共享存储中加载和查询数据。每个集群的资源和操作都是独立的,从而可以实现高度的敏捷性。用户可以按需启动、暂停或者扩容集群,无需停机或者暂停当前的工作负载,新提交的查询自动在调整后的新集群运行。
其次,可以在同一个共享存储的不同计算集群上独立运行不同的任务,这样就实现了基于同一份数据并行运行大吞吐量工作负载,可以满足用户低延迟、快速响应的需求。如图:
最后,由于存在多个集群,因此可以在不停机或者对性能无影响的情况下,对单个集群进行扩缩容操作,提供了真正的弹性,节点数可以在2个和1024个之间任意伸缩。
综上,云原生架构与MPP架构相比具有以下优势:
结束语
本文总结了用于支持大型分析或商业智能平台的主要数据库架构,包括SMP(具有多个处理器的单个节点)、MPP(具有并行数据加载和分布式查询处理的多个节点)、Hadoop,以及最新的云原生架构 。
随着智能时代的到来,传统的数据库架构已经无法应对多样的业务变化。伴随着技术的发展和架构的演变,云原生架构的优势越来越突出,云计算推动了现代数据库技术的发展,提供了近乎无限的低成本存储以及更好的扩展性。云原生解决了MPP平台的许多缺点,并支持真正的弹性和灵活性。
HashData始终坚持云原生架构和云原生路线,致力于降低大数据分析的门槛,用行业领先的技术优势消除规划、购买和运维大量基础设施给企业带来的负担,让企业重新聚焦核心业务,释放数据价值。
参考资料:
1、本站资源针对会员完全免费,站点中所有资源大部分为投稿作者付费教程,切勿轻易添加教程上除本站信息外的任何联系方式,谨防被割,如有疑问请随时联系客服。
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。