GBase新闻

专注于数据库软件产品和服务,致力于成为用户最信赖的数据库产品供应商

【技术前瞻】分布式数据库——未来行业应用主流数据库

发布时间:2020-09-01

伴随着云计算、大数据技术的发展,传统信息技术及应用受到了巨大冲击,数据库作为基础软件也迎来了新的挑战和机遇。未来,各行各业在信息化应用的数据库选型将会越来越倾向分布式数据库。本文将从典型业务应用类型来分析未来行业信息化对分布式数据库的需求。

1、分布式数据库是适应新技术及行业应用发展的需要

分布式数据库可以认为是由位于不同位置的多个计算机节点通过网络互相连接,共同组成一个完整的、全局的、逻辑上集中、物理上分布的数据库。未来,传统的基于单物理服务器节点的数据库将在更多的场景下被分布式数据库取代,分布式数据库应用前景将越来越广。

分布式数据库的发展至少从以下几个方面看是必要的:

  • 单体小型机已经逐步被集群PC服务器替代.。现有数据中心更多的是采用集群而非小型机来提升计算存储能力,这种趋势必然促使数据库也要适应分布式集群而非小型机的基础设施;

  • 未来数据中心将更多基于云基础设施来提供服务。云计算环境的基本特点就是按需分配计算存储资源,而云的计算存储资源是建立在分布式的节点上,自然,在云环境下的数据库也需要适应分布式的环境;

  • 单一服务器无法管理数据不断增长的数据库。很显然,数据库系统不跨出单一服务器的局限,是难以应对数据规模的不断增长并确保性能的需要,而跨节点、可横向扩展的数据库可以很好解决大规模海量数据的计算存储需要;

  • 单一服务器无法提供大数据平台的高可用服务。大数据时代,有限的2个或若干个的节点是无法满足未来大数据环境的需要,而数据资源的跨节点分布既可以保证数据高可用也可以适应未来数据大规模增长的需要,而且跨多节点分布在大规模数据分析处理速度上也有明显优势。

Gartner预计,2018年-2023年间,云数据库市场将会保持31%的年复合增长,并且到2021年,云数据库在整个数据库市场中的占比将达到50%,而在2023年,这一占比更是达到75%。相关调查显示,目前企业上云的意愿剧增到84%,随着企业越来越习惯采用云上的IT架构,适应部署在云环境的分布式数据库技术也将成为数据库的发展趋势。


2、分布式数据库在OLTP业务应用趋势

分布式数据库用在OLTP应用场景已经越来越多。特别是最近几年,随着新兴互联网加在线应用的快速增长,分布式OLTP数据库得到更加广泛的应用。由于这些应用对数据库的强一致要求不是很高,很多相应快、规模化应用是遵循数据库的BASE理论,来提升分布数据库吞吐量和性能的。这些分布式OLTP应用与传统依赖小型机的模式相比,至少在成本和扩展灵活性上具有显著优越性。

对于应用强一致要求高的行业,特别是金融行业的核心系统,分布式数据库应用也在发展,但由于这些特殊行业对一致性要求苛刻,所以分布式OLTP数据库的深入广泛应用尚需技术的进一步完善。由于分布式数据库的一个重要特点是采用多副本机制来保证系统的安全可靠,而数据库一旦跨节点分布,那么,节点故障、网络故障、磁盘故障及综合故障,都会带来一系列复杂难以解决的多副本一致性问题。现在,在解决多副本一致的方法上,业界的Paxos和Raft一致性协议,提供了很好的理论支持,特别是Raft协议,是一种易于理解和实现的分布式一致性协议,但raft算法也存在两方面性能瓶颈问题:一是每次日志写入后都需要刷盘才能返回成功,而刷盘是一个比较耗时的操作。另一是由于算法限制,所有的请求都由 Leader 处理,很难做到所有节点皆可提供服务。所以,在算法实现中,往往还需要对raft算法进行优化。

当然,分布式OLTP还有不少技术难点也需要进一步完善,比如,全局时钟服务问题,由于全局时钟服务受制于局部节点的计算能力,容易造成整体系统扩展瓶颈。OLTP技术难点还有不少有待进一步解决,不过各种技术应对策略也不少。目前,国内外也有不少开源和自研的分布式OLTP产品,这些产品已经在政务、零售、电信、制造、物流、气象等各个行业得到应用,在金融行业的应用也在进一步深化。分布式OLTP数据库的进一步成熟,也将是国产化数据库替换传统Oracle等数据库的需要。

以下是经典的OLTP分布式数据库架构:


1.jpg


3、分布式数据库在OLAP业务应用趋势

分布式数据库在OLAP业务应用已经成熟, 在OLAP应用上使用分布式数据库有明显优势并成为趋势。现在OLAP应用场景几乎都会面临海量数据,很显然,单服务器是无法应对未来海量数据的快速增长。国内十年前OLAP场景还大量使用Teradata、Sybase等国外分布式数据库,随着国内分布式数据库产品技术及生态的发展,替换国外产品已经不是问题,至少在成本及服务上具有明显优势。

国内比较著名的分布式OLAP产品有南大通用的Gbase 8a,阿里 AnalyticDB 和华为的GaussDB 200等。目前国内OLAP产品已经在数据仓库及大数据平台得到广泛应用,金融这个对数据存储处理特别苛刻的行业也已经大规模使用分布式OLAP数据库。其中,经典的OLAP应用有农业银行的数据仓库应用,该数据仓库的数据来源包括核心系统、信贷、财务、投资、电子银行等120多个业务系统,集群规模共1156个节点,其中主库112*2节点,数据集市8个,分别为个人客户集市、对公客户集市、财务数据集市、监管数据集市、风险数据集市、运营风控集市、审计内控集市和分行数据集市,数据总量超过20PB 单库裸数据超过5PB,每日增量4.7TB及38W张表,最大表超过2.5万亿行,每天运行15000个以上的库内加工作业,日加工数据时间8小时。其应用规模已经超过历史上国外产品在国内的应用规模。

技术上,OLAP不要求强一致,读数据的比例远高于写比例,所以OLAP支撑的数据规模也会远大于OLTP的规模。OLAP数据库重要技术特点通常包括列存技术、数据分片技术等。OLAP通常要支持列存技术,列存可以只读取需要的列,跳过无用数据,同质数据存储更紧凑,编码压缩友好,这些优势可以减少IO。数据分片可以支持数据库扩展、容错及读取性能,同时数据分片还可以让运维更自动化,横向扩展更灵活,好的数据分片技术还可以避免部分节点IO负载过热而另外一些节点IO负载过冷,达到负载均衡。

除了以上常见关键技术外,OLAP的计算检索效率、生态适应能力也是非常重要的,经过最近多年的技术发展,国产OLAP分布式数据库在与数据湖的融合、云环境的适应以及国产化操作系统、芯片的适配等多个关键技术方面都取得了突破,随着大数据的进一步发展,未来OLAP分布式数据库依然发展潜力巨大。

以下是经典的OLAP分布式数据库架构:

2.jpg

 
4、分布式数据库在HTAP业务应用趋势

在信息化应用中,也有许多业务场景,其涉及的业务类型大部分是数据的读取分析,少部分是数据的更新;还有许多业务场景,同时包含了事务处理以及对最新历史数据的实时分析,这些业务类型,既不是单纯的OLTP也不是单纯的OLAP业务类型,而是OLTP和OLAP两种类型的混合。比如,常见的各个行业的在线销售, 其在线订单管理是OLTP业务类型,销售统计分析是OLAP业务类型,而热销推荐及促销调价,则既不是OLTP也不是OLAP,这种业务类型需要的是在交易发生的同时也能够迅速的计算出热销的是什么东西,而且还能依据促销的情况作少量的价格调整,这种业务类型属于HTAP(混合事务 / 分析处理)。HTAP是Gartner提出的一个名词,是指一个数据库同时能具备OLTP和OLAP两种能力。
  
为了面对各种需求,OLTP和OLAP的技术特点是有区别的,传统上,OLAP数据通常来自OLTP,而且OLAP和OLTP系统间也会有几分钟甚至几小时的时延,这样,对分析的实时性要求很高的业务场景不容易实现,而且由于企业需要维护不同的数据库、支持两类不同的任务,会带来维护成本的提高。 因此,能够统一支持事务处理和业务统计分析的数据库成为一种需求。HTAP数据库可以避免在传统架构中,在线与离线数据库之间大量的数据交互,HTAP也是基于分布式架构,支持弹性扩容,可按需扩展吞吐或存储,能应对高并发、海量数据场景。   

目前实现HTAP的方式通常有两种:一种是对OLTP和OLAP业务类型分别采用各自的计算解释引擎,但对数据资源统一管理,不同的计算解释引擎执行不同的业务类型,OLTP和OLAP也分别使用同一数据的不同副本,更好实现均衡负载和隔离;另一种实现HTAP的方式是仍保持OLTP和OLAP各自的相对独立,数据也是两套,但两套数据之间,从OLTP到OLAP通过同步工具实现快速同步复制。显然,第一种模式,数据冗余程度低,一致性更好,但OLAP的吞吐能力及性能局限大,而第二种方式,基本保留了OLTP和OLAP的特色,允许各自发挥特长。

分布式数据库在OLTP和OLAP的应用优势也是HTAP的优势,HTAP虽然是个比较新的概念,但许多综合OLTP和OLAP的应用场景早已经存在,HTAP也可以通过OLTP和OLAP融合技术实现,最佳一体化解决方案应该与实际业务关系很大,可以根据实际情况采用相应的方案。

以下是经典的HTAP分布式数据库架构图:

3.jpg