企业用什么样的数据库存储大数据,关键要看这些数据的结构和应用场景,具体问题具体分析,最终找到与之匹配的数据库。
SQL/NoSQL/NewSQL数据库数据量—实时性分布图
回答这个问题,我想从目前常见的SQL、NoSQL和NewSQL,这三大类数据库说起。
众所周知,SQL(或称OldSQL)数据库就是传统关系型数据库(RDBMS),它们的特点是“标准统一”:
使用统一的SQL语言
坚持统一的ACID标准
支持统一的开发模式
这让绝大多数使用者可以在不同SQL数据库系统之间自如切换。但它最大的不足就是难以扩展,大吞吐性能也有限。例如,在通信领域,仅一个省级运营商每日处理的离线数据量便可达到100TB以上,实时数据上千亿条,如此大的总量和增量,如果不能做到灵活扩展,那么系统的生命周期将极为短暂,项目的总成本将会直线增长。
NoSQL数据库是非关系型数据库,它弥补了SQL数据库在一些场景下的不足,便于存储非结构化数据,同时具有高性能、高可用性、高伸缩性的特点。可是,利弊之间总要有所平衡:
不支持ACID,仅保证“最终一致性”
没有通用的查询语言
细分类型众多,彼此间无法兼容
因此,现实中往往会选择NoSQL+SQL的模式,共同搭建系统的数据层。
NewSQL数据库既保留了SQL数据库对SQL语句和ACID的支持,又兼具NoSQL数据库高性能、高扩展的特性。其中比较常见的是MPP数据库,它是一种采用Shared Nothing架构的分布式并行结构化数据库,这种架构中的每个节点都是独立平等的,且整个系统中不存在单点瓶颈,因此具有非常强的扩展性,日渐成为市场的新宠。
SQL、NoSQL、NewSQL对比
在MPP数据库出现以前,数据密集型企业大多选用国外的商用数据库。它们虽然性能优越,但价格昂贵。同时,由于大多数行业仍以结构化数据和事务型运算(OLTP)为主,因此它们很难转向使用NoSQL数据库。所以,MPP数据库的出现显然为他们提供了一个两全其美的方案。而近年来“去IOE”的趋势使得不少企业都倾向于选择一款国产MPP数据库。
这就要提一下金融行业对数据库的选择过程,因为它正是国内众多企业数据库选型之路的一个缩影。在21世纪初,国有大型银行开始规划并建设各自的数据仓库。比如某国有银行选择了Sybase IQ,这是当时为数不多的可以支撑海量数据高效查询的数据库产品。可随着业务分析(OLAP)需求的增加,原有系统的处理性能已达到极限,数仓的扩展性成为系统发展的瓶颈。于是,他们开始注意到MPP数据库,并认识到这种架构能支撑未来业务数据的极速增长,同时性价比高、运行可靠。最终,他们选择了南大通用的GBase 8a MPP数据库(下文简称为GBase)[1]。
根据GBase的官网显示,该银行数仓集群达到1400+个节点,总数据量已达28PB;同时,每天都会有5000多个复杂作业在数仓内运行。
支撑这个规模的数仓,对任何一个数据库产品来说都是个挑战。没有金刚钻,可揽不了瓷器活,这足以证明GBase在应对海量数据存储、处理方面的强大实力。
此外,正如刚才所提到的,银行内部还有相当一部分数据分析的需求,比如银行的风控分析。按照要求,银行必须对大额、可疑交易进行筛选、判断、报告。筛选“大额交易”还算简单,逻辑上用SQL语句基本就能实现。虽然交易数据很多,但这对于成熟的数据库产品而言,也并非难事。
而判断“可疑交易”的难度可就大了。要知道,按照规定,单日累计现金存取款超过5万元就算大额交易了,如此算来,每天的大额交易笔数估计也是个不小的数目。如果每笔大额交易都要人工判断的话,那这显然是个“不可能的任务”。因此,风控系统中都含有大量专业的筛选、甄别模型,用来自动识别可疑行为。这些模型所分析的不单单是某笔大额交易本身,而是全面分析这笔交易上下游资金链、历史交易、交易双方身份等等一系列数据,最终借助AI模型辨别出是否是可疑交易。
显然,在PB级数据库中进行如此复杂的关联分析,对数据库稍有了解的人都清楚,这对数据库的读写性能、并发能力都是相当严峻的考验。值得一提的是,某国有银行风控系统实现了2500万笔交易量实时重点监测的技术创新,成为国内首个重点实时监测系统,得到了上级主管部门的肯定[2]。GBase在分析运算方面经受住了严苛业务场景的考验。
其实除了在金融行业,GBase在通信、能源、政府等行业都具有广泛的应用,它的能力得到了业界的认可,很多特性都让人眼前一亮:
比如它内置了十余种数据压缩算法,以此实现了1:20的高压缩比,有效节省存储资源,降低磁盘IO。
比如它采用粗粒度的智能索引,以数据包为单位(有别于传统的行索引),索引占用空间少,检索效率高。
联手第三代英特尔至强可扩展处理器后,GBase更是如虎添翼,一举冲上TPC-DS榜单前三名。并在单项指标中,GBase的节点数量最少,单节点算力最高,加载性能最优。
TPC-DS测评结果
这一优异的成绩除GBase自身不俗的实力外,也得益于第三代英特尔至强可扩展处理器的助力。该处理器单片最多可达40核,与上一代相比,其性能、吞吐量和主频都显著提高。特别是该处理器内置的AI加速功能,最高可以提供高达74%的加速水平,并在虚拟化、5G、数据库、数据分析能方面均表现得十分出色。
第三代英特尔至强可扩展处理器负载性能
在Decision Support Benchmark负载测试中,其他配置不变,仅CPU升级到第三代至强处理器的情况下,GBase的性能就大幅提升了42%。由此可见,第三代英特尔至强可扩展处理器有效提升了GBase的性能,使其可以用更少的IO时间支撑更多的并发用户,提高数据分析速度。并且由于单服务器节点性能的显著提升,GBase能够在单位节点中支撑更多的应用实例,进而减少相应的总拥有成本(TCO)。
关于英特尔第三代至强可扩展处理器的更多技术细节,我在之前的回答和视频里做过详细解读,有兴趣的朋友可以看看。
总而言之,企业在选择数据库这个问题上,不能盲目跟风,一味追求市场上“贵”的、“热”的产品,而是应该从自身实际情况出发,综合考虑业务需求、产品性能、性价比等因素,有针对性地做出选择。
数据库是互联网时代企业早期应用的核心,当数据洪流袭来,数据应用也渗透到技术、业务等各个层面时,企业在面对数据存储及分析时也面临着一些新的挑战。尤其是金融行业的数据存储问题,业务增长和拓展往往伴随着海量的结构化数据处理,再加上金融行业对数据存储在安全、效率、合规等多方面的要求,传统的数据库已经很难满足金融行业业务发展需求。
目前国内大数据领域快速发展,国产数据库的崛起已成必然之势。在这样的背景下,南大通用自主研发的GBase 8a脱颖而出,它是一款大规模分布式并行处理(MPP)数据库集群系统,面向海量数据查询分析应用,可以满足结构化数据的存储、分析、挖掘、备份等多种需求,可以有效支撑起金融行业业务拓展的需求。(点击下方链接进入南大通用专区了解更多平台方案详情)
首先来说,金融行业由于自身特殊的行业属性,在发展过程中会面临结构化数据的飞速增长,其数据库应用主要面临以下四个难点:一是数据多样化且迅速爆发,数据分析及吞吐量出现瓶颈;二是TCO快速攀升,快速膨胀的数据库系统带来了对于云与数据中心基础设施的旺盛需求,推动了总体拥有成本(TCO)的快速攀升;三是数据存储IO效率低,难以支撑企业内部协作展开;四是数据安全,这是金融行业中备受关注的问题,企业用户在选择数据库时不仅要考虑性能、时延等因素,还要对数据存储的安全性及容灾能力进行评价,特别是在业务进行数据分析时对数据权限的把控。
再看南大通用GBase 8a数据库产品。这是一个大规模分布式并行处理(MPP)数据库集群系统,相比于传统数据库,GBase 8a在结构化数据的处理上具备突出优势,支持从数TB到数十PB的数据集。这主要得益于GBase 8a强大的扩展性。GBase 8a的每一个服务器使用的均是本地资源,基于节点对等扁平架构,让GBase 8a的横向扩展能力大幅增强。同时,集群计算性能和存储容量能够跟随集群扩展呈现线性增加。
GBase 8a同样具备新型的列存储引擎、高数据存储压缩比、免维护的粗粒度索引及多实例部署等多项大数据处理技术。在MPP高效分布式计算模式下,结合分布式智能优化器,GBase 8a能够完成对PB级结构化数据分析类应用的支撑。
CPU是数据库系统整体性能发挥的核心,基于GBase 8a的英特尔精选解决方案可充分发挥英特尔至强可扩展处理器的性能优势,随着第三代英特尔®至强®可扩展处理器的推出,方案升级后GBase8a的性能表现再次增强,业务运行效率随之提高。
第三代英特尔®至强®可扩展处理器在性能和功能方面均有大幅提升,具体来看主要有三点:一是对于数据库应用而言,第三代英特尔®至强®可扩展处理器最新的微架构以及核心数量的增加,是推动数据库性能实现增长的关键,有助加速IO密集型负载的处理,在同等的服务器数量前提下,实现性能的显著增长;二是第三代英特尔®至强®可扩展处理器提供了8个插槽配置的多插槽内核计数密度,每个处理器最多可达40个核心,与第二代英特尔至强可扩展处理器相比,性能、吞吐量和CPU频率显著提高,在主流数据中心工作负载上性能平均提升46%;三是第三代英特尔®至强®可扩展处理器增加了数项全新的增强型平台功能,针对云、人工智能、高性能计算、网络、安全和物联网工作负载进行优化,在处理20种主流机器学习、深度学习工作负载时,第三代英特尔®至强®可扩展处理器能够带来高于其他CPU 1.5倍的性能提升。且其新增了PCIe-Gen4 支持,增加了内存带宽,每路处理器内存容量达6TB,还增加了AVX-512指令。
当然,英特尔全面的产品及技术有效支撑了数据库产品的创新。其英特尔®傲腾™持久内存的两种运行模式——内存模式和App Direct模式,可以通过多种方式提高数据库性能。英特尔®傲腾™持久内存的内存模式可用于降低缓存层成本,而App Direct 模式则是提供高速大批量数据存储能力,通过优化数据存储,从而提高数据库中的读写速度。实际产品应用中,搭配傲腾固态盘P5800X/P5801X,能够提升单服务器的可扩展性,实现数据库加速、写入缓存、高性能分层等功能,让用户在部署数据集时更加便利。
未来企业发展存算分离,结构化、半结构化、非结构化等多种结构数据并存。南大通用GBase 8a借助英特尔在核心性能、硬件组合及软件优化方面的支持,将传统业务结构化数据存储革新,并不断提升数据库性能,为企业用户的数字化转型打造坚实基石。随着大数据行业的演进,全新的数据库解决方案将会应用到越来越多的行业,推动数字经济的建设。