6月中旬起,量子位发起了以数据库为主题的系列公开课,邀请来自浪潮信息、蚂蚁集团、腾讯云等头部企业的数据库技术线负责人,围绕数据库的行业现状、趋势与技术进展等内容,以线上直播的形式为大家带来3期分享。
第二期直播中,浪潮信息数据库产品线总经理—乔鑫讲述了HTAP数据库的技术原理、优化方案以及开发部署概要等技术问题,为数百位观众带来前瞻的指导。
直播回放:
以下是分享内容实录:
当前数据库行业市场趋势
当前大数据时代,数据量持续的爆发。在行业权威报告中,我们能够从定性到定量有一个更清晰的认知:
从1970年到2005年,甚至2010年,数据的发展相对来讲比较缓慢,并且大部分数据是结构化数据。从2015年到2020年,数据量有了爆发性的增长。一方面,结构化数据在持续增长,另一方面,非结构化数据迅速增加。在2015年时,结构化数据与非结构化数据各占半壁江山,但到了2020年时,结构化数据约占1/5,非结构化数据将占到4/5。
随着互联网、云计算、大数据的普及,数据量增长速度加快,数据的类型也更加丰富多样。根据IDC的预估来看,2020年整个数据量能达到50ZB,到2025年整体数据量将达到175ZB。
数据的结构分类
结构化数据、非结构化数据、半结构化数据都表示什么?
用技术的语言来讲,能用二维表的方式表现出来的数据就是结构化数据,用关系型数据库来做相应的支撑和存储。结构化数据典型性的代表,有:银行账户信息、企业CRM、ERP信息等数据,包括我们在上学时的档案信息等。
与结构化数据相对应的就是非结构化的数据,结构化的数据是用二维表能够进行表现、存储管理,非结构化数据无法用二维表去表现和存储。非结构化数据的结构不规则、不完整,没有预定义的数据模型。比如我们通常看到的文本数据、图像数据、音视频数据等都属于非结构化数据。
在结构化数据和非结构化数据之间,还有半结构化数据。半结构化数据、包含相关标记,用一些分隔符可以对数据进行相应的分割,但是实际上里面还是有大量的数据的结构是不规则的。邮件、html、xml等都是常见的半结构化数据。
数据的价值分类
上述分类是根据数据的类型进行分类,我们也尝试着根据数据的价值分类,分为稠密数据和稀疏数据。
稠密数据具有三大特点,首先是价值密度比较大,数据容量较小。以金融行业为例,信用卡的数据就是稠密数据,用户的每一条消费记录都是有价值、不能丢失的。稠密数据的数据量通常是在GB到TB级别,少数能达到PB级,它的数据容量相对来讲还比较小。其次稠密数据的变更相对比较频繁,数据流量比较小。
稀疏数据也有三大特点,首先是数据价值密度比较小,但整个的数据的容量是比较大的,有几百TB甚至达到几十PB的规模。其次稀疏数据产生的速度比较快,数据来源比较多样。比如拍摄视频的摄像头,一天24小时都在记录、产生大量的数据,但是这些数据里的价值密度相对比较小,可能只有在发生某些事故时,我们去查看对应的某一段或者是某几帧来了解事故的情况,才体现出一些价值。
针对稠密的数据和稀疏的数据,我们用什么样的架构来进行支撑呢?
稠密数据一般采用核心式架构来进行相应的支撑。核心式架构最主要的特点是数据的一致性要求非常高,节点级的可靠性要求也非常高。节点级的可靠性一方面是指软件(基础软件、操作系统、数据库),另一方面也指硬件(服务器、存储、网络等),对于可靠性的要求都非常高。核心式架构的另一个特点是业务稳定性非常高,对于整体的运维来讲比较便捷。
稀疏数据一般采用敏捷式架构来进行支撑。敏捷式架构是一种分布式的方式,它的特点首先是在横向扩展有比较大的优势。另外稀疏数据也是有一定价值的,因此敏捷式架构的高可用更多从系统级进行相应的考虑。从吞吐量上来讲,上述讲到稀疏数据有海量的数据,所以说敏捷式架构具有巨大的数据吞吐。最后敏捷式架构易于部署、开发敏捷,同时部署的成本比较低。
数据库产品的发展
数据库分类
首先是数据库的分类,主要包括关系型数据库、非关系型数据库和其他类型的数据库。
关系型数据库是我们谈论的比较多的,比如在国际上比较有名的Oracle数据库、IBM的DB2数据库、微软的SQLServer数据库,以及MySQL,PG等开源数据库。国内的关系型数据库包括浪潮的K-DB、达梦、人大金仓、神州通用、阿里OceanBase等。
非关系型数据库比较常用的如MongoDB、Redis、HBase等数据库。其他类型数据库常见的比如多媒体数据库、工程数据库、嵌入式数据库、时序数据库等。
从关系数据库的和非关系数据库的特点上来讲,关系型数据库一般适用于稠密数据,非关系型数据库适用于稀疏数据。相对应的,关系型数据库的特点是有固定的数据结构,对SQL的标准支持做的比较好,对于复杂的数据库增、删、改、查操作都有很好的支撑;但是相应的其横向扩展上存在一些困难。
非关系型数据库的特点一是数据的格式比较多样,二是横向扩展的能力比较高,而且它整个的架构比较灵活;但在SQL标准化上存在一些问题,而且对于一些复杂的数据操作还存在一些不足。
数据库的市场情况
接下来看一下全球数据库市场的排名情况,国际上比较认可的是DB-Engines Ranking的排名。我们发现排在前几名的是一些主流的关系型数据库,排到前四名的分别是Oracle、MySQL、SQL Server、PostgreSQL,关系型数据库现在持续占据全球数据库市场排名前列。
另外近年来很多非关系型数据库发展迅速,在排名上增长较快,比如第5名的MongoDB,第8名的Redis,但是从得分情况来看,与关系型数据库还存在一定差距。
再来看中国的数据库市场情况,关系型数据库Oracle的销售额占中国市场的40%-50%。
但是近几年我们也可以看到国产数据库百花齐放,据不完全统计,现在中国的数据库厂家达到百余家,尤其是18、19年国产数据库高速发展,关系型、非关系型的数据库产品,及相关技术上都日益成熟。浪潮作为一家中国的数据库企业很欣喜能看到这样的现状。
企业数据平台升级方案
数据平台通用架构
从底层看,首先是数据源,包括结构化数据、半结构化数据、非结构化数据。然后通过获取层采集这些数据去做ETL等相应处理。
再往上是数据层,主要包括两个部分:一部分是核心库,包含主数据库和数据仓库,可以直接从获取层提取相应的数据;一部分是大数据平台,可以处理一些稀疏数据,并且把处理完的数据打到核心库里边。
经过数据层两部分的处理,接着向上提供数据的统一服务和开发,包括数据分析、数据挖掘、实时处理等能力。再往上是针对最终客户的业务应用,形成一些应用的支撑。
结合上述两部分内容,核心数据库里面存放的大部分是稠密数据,大数据平台里存放的大部分是稀疏数据。今天我主要介绍核心库如何处理稠密数据。
应用需求变化
在应用的需求层面,目前主要有4点变化。一是需要海量数据存储,数据总量大、数据增长快,已经到了PB级。二是要求数据实时入库,大量新增数据需要实时入库,同时还需要实时清理低价值数据。三是秒级分析和挖掘以防止价值点缺失,需要极高的查询相应速度。四是复杂的业务场景,频繁发生新建分区、建立索引、插入、更新等工作,对数据的一致性要求更强。
对于海量数据存储、秒级分析挖掘,实际上更多的是对传统OLAP数据库的一些要求。而对于数据实时入库、复杂业务场景,更多的是对OLTP的要求。但实际上很多客户既要求有OLTP这种实时入库的性能,同时也要有OLAP这种秒级分析和挖掘的性能。所以我们就需要进一步的数据平台升级,满足客户应用需求的变化。
浪潮的分布式架构方案
浪潮提供了一个分布式的架构方案—inData,是软硬件一体化的方案。
从软件来看,在计算节点上我们使用了K-DB数据库的计算引擎,和K-DB独有的K-RAC技术(类似于Oracle的功能,能够实现业务的动态负载,同时在 n-1个节点宕机时,剩下的节点还能保持高可用,对于用户业务的高可用性提供了很好的支持)。
从硬件来看,硬件分为存储、网络和计算几个层次。我们加了存储的虚拟化,把用户的所有数据分散到不同的存储节点上,这种计算节点和存储节点都可以用x86服务器来进行相应的支撑。
浪潮分布式架构的技术优势
首先是高扩展性,可以动态增加计算节点和存储节点。计算节点我们可以加到8个、16个或更多,存储节点的数量可以增加到千的数量级,并且随着节点数的增加,架构的性能、容量呈线性增长。
其次是高可靠性,浪潮的分布式架构是全冗余的架构,没有单点故障。从硬件上来讲,在服务器、存储、网络方面都避免了单点故障。从软件层面来讲,我们也支持多副本技术,实现了数据级的冗余,可以实现数据的两副本或者三副本,实现整个系统级的高可靠性。
第三点是高性能,随着客户应用、业务的变化,对数据库性能的要求更高。浪潮通过智能过滤、高速缓存、存储索引等技术,实现了海量的吞吐、微秒级的延迟。
第四点就是易管理,浪潮提供了一体化的图形监控工具,可以智能识别、定位故障源,实时监控数据库软硬件的状态,使用户的运维管理更加方便。
关键技术保障HTAP高性能
上述第三点展开来讲,浪潮主要是从4个方面提高了分布式架构的性能。
一是智能过滤技术。在应用智能过滤技术之前,如果要在计算节点上做一个复杂的大量的查询,就需要在存储节点上把整个的负荷要求的数据都传输到计算节点上,极大消耗了计算资源、占用了网络带宽。通过智能过滤技术,就把第一步的查询下移到了存储节点上,更好的利用了存储节点的计算能力,释放计算节点计算力。降低网络负载。
二是高速缓存技术。在计算节点的内存之间、存储节点的磁盘之间,我们用闪存做了一个热缓冲,缓存热数据,提高了对查询、插入等操作的响应速度。
三是配合智能过滤的存储索引技术。智能过滤更多的是释放计算资源和网络资源,而存储索引技术更多的释放了存储资源。我们对用户的数据做了透明处理、自动维护,建立一个自动的索引,极大地提升了索引效率。
四是列压缩技术。能够提升5-10倍的数据压缩率,同时消耗的计算资源较小,可以控制在1%-2%。
上述4种技术进一步提升了浪潮一体化方案的性能,能够满足客户的海量数据录入需求,同时也会能够实现秒级的分析和挖掘需求。
浪潮inData数据库一体机支持的场景主要包括五个部分。一是传统SAN架构的替代,大幅度降低采购成本、运维进一步简化。二是数据库的性能方面实现很大的加速。三是HTAP混合负载,性能大幅提升,解决了IO、带宽瓶颈。四是数据库的整合,把分散的数据进行系统性的整合,同时建立起自己的数据库云平台。五是很好的替代了Oracle的Exadata,是去IOE的最佳实践,并且具有更高的性价比。
案例分享
最后介绍一个客户案例。这个客户的特点一是数据量很大,数据初始总量约为200TB,同时每天新增1TB;二是需要实时入库,并且要求与原来的初始数据做出整合,实现秒级的数据分析和挖掘。
浪潮提供的方案是,首先给给数据做双副本,保证业务的高可用;其次在计算节点和存储节点,针对客户的业务量和性能要求做了相应的测算和配置,采用了定制化的4+30配置,即4个计算节点,30个存储节点。整体来看,很好的支撑了客户的核心库应用,并且能够支撑其未来三年的数据增长。
最后为浪潮的K-DB数据库做一个广告。K-DB已经服务于全行业,包括金融、能源、政府、交通等,为500多家客户、2000多套业务系统提供了数据库的支撑。同时我们也希望未来有更多的用户来支持国产数据库的发展。浪潮作为国产数据库厂商,一定会做好产品、做好技术,为中国的数据库发展添一份力量,谢谢大家。
— 完 —
量子位 QbitAI · 头条号签约
关注我们,第一时间获知前沿科技动态
“