Top
首页 > 正文

柏睿数据新一代极速全场景分析型数据库RapidsDB的技术建构之道

发布时间:2023-04-13 14:32        来源:赛迪网        作者:

近年来,新一代硬件产品不断蓬勃发展,如多核CPU、GPU、FPGA,以及XPU,如TPU(Tensor Processing Unit,张量处理单元)等。以TPU为例,它可以在硬件层面上处理人工智能和机器学习经常涉及的张量数据结构和张量相关的计算,这大大提高了数据处理和计算的效率。

此外,新一代硬件的革新也在推动数据库系统和架构发生变化,数据库系统作为硬件和企业需求之间的纽带,需要通过巧妙精细的架构把硬件的能力和特性充分发挥出来,更好地满足企业分析和管理数据的需求。

因此,在新一代硬件的基础上,柏睿数据从数据库架构层面优化,融合内存计算、分布式计算、人工智能和机器学习计算、流计算等新兴技术,构建全球领先的数据智能分析处理平台——RapidsDB,以完全自研的分布式全内存数据库、实时流数据库、数据库人工智能、跨源异构查询连接器、数据库安全&加速卡等为核心,充分利用和发挥新一代硬件的性能,针对海量、高吞吐、高并发、多源异构的数据进行实时分析处理与海量数据高效管理。

如何构建更快、更简单、性价比更高的新一代数据智能分析处理平台?柏睿数据联合创始人、全球副总裁、首席技术官马珺表示:“柏睿数据拥有完全自主知识产权的全内存分布式数据库RapidsDB,重点瞄准了以下四个技术实现方向,包括内存计算——存储介质的变化,分布式计算——架构的横向扩展,智能技术在大数据领域的应用——计算向敏捷智慧化发展,数据联邦——数据接口的革新。”

内存VS磁盘,从储存到计算、实时分析的巅峰对决

柏睿数据RapidsDB是基于分布式架构的内存数据库。相较于传统数据库用磁盘存储数据,内存数据库直接在内存上进行数据存储和计算。

内存数据库避开了数据访问时磁盘的I/O瓶颈,存取速度更快。将内存与磁盘的访问速度对比可知,内存访问速度是纳秒级,而磁盘访问速度是毫秒级,数据处理速度差异高达百万倍。

内存数据库能够用压缩和优化的格式来存储数据,从而更好地发挥CPU、GPU等现代硬件,而传统的磁盘数据存储则无法实现。

内存数据库中从内存访问数据所使用的内存更少。这是因为从磁盘上读取数据时会涉及诸多复杂操作和过程,而从内存访问数据的过程指令集较少,所使用的内存也较少。

除了性能优势外,内存数据库还在一些有趣的领域具有磁盘存储和索引难以实现的优势。例如,列式存储和行式存储,内存数据库能够很容易地在两者之间灵活切换,且可以很容易地实现分层数据模型,甚至矩阵张量数据模型。而对于基于磁盘的存储来说,实现这样复杂的模型是难以想象的。

正因如此,柏睿数据RapidsDB选择基于内存存储架构进行设计和优化,具有无磁盘IO、高可扩展、高吞吐、高并发、低时延、节省内存等特性,比传统数据库性能提高近百倍,分布式架构支持按需动态在线扩展,支持日增20TB数据量实时采集与分析,满足100TB全内存数据量分析500/秒并发,TB级数据毫秒级响,且数据与内存空间的占用比例少于1:2,相较于传统数据库节省内存采购成本60%以上,充分满足企业对海量高并发大数据进行快速、精准智能分析和决策支持的需求。

相较于基于磁盘架构的传统数据库,RapidsDB在内存优化方面有四大显著特性:

RapidsDB是一个分布式横向扩展系统,可以在普通硬件上扩展到数千台机器。

没有缓冲池,不易造成资源争用。

无锁数据结构,使用内存优化的无锁跳过列表作为其索引,允许高吞吐量的高度并发读写,且读取永远不会被阻止。

代码生成,无锁的数据结构很快导致动态SQL解释成为限制查询执行的瓶颈, RapidsDB可将SQL向下编译为本机代码,以获得最高性能。

此外,RapidsDB虽然使用内存作为数据的主要存储模块,但会通过事务日志和定期快照不断地将数据备份到磁盘,这些特性可以从同步持久性(每个事务在完成之前都记录在磁盘上)一直调整到纯内存持久性(最大持续吞吐量)。同时,RapidsDB提供选项来控制性能和持久性之间的权衡,在其最持久的状态下,RapidsDB不会丢失任何一个已确认的事务。

重塑JOIN,实现更强大的分布式数据库

现代社会日新月异,万事万物数据化生成海量大数据,并在多维时空高速传播。为高效存储、处理、利用好海量大数据,分布式计算逐渐成为众多大数据平台采用的计算方式。原因在于,分布式数据库解决了传统集中式单机数据库面临的存储、处理等性能瓶颈。首先,分布式数据库能够简便的实现横向扩展集群,即通过增加更多的节点综合提升数据处理能力;其次,它能实现成本优化,部署的节点可以根据应用场景需求进行灵活设计;再次,具备高容错率,保证不会因为单点故障而影响整体的可用性。

但是,由于现实世界中数据处理繁杂多样,分布式数据库不能只是简单划分并分配计算任务给每个节点;尤其是作为数据库中最基本、最广泛使用的算子之一的JOIN(表连接),在分布式计算中实现系统节点间的数据交互,而随着分布式集群规模增大,网络数据传输量大增,节点之间的数据交互效率降低,从而导致分布式数据库扩容带来的性价比愈发降低,此时分布式数据库往往需要重新设计JOIN,以实现更优性能,降低部署成本。面对这一问题,柏睿数据RapidsDB基于BLOOM JOIN(布隆连接)和BLOOM FILTER(布隆过滤器)提出了解决方案。BLOOM JOIN通过在节点集群中连接BLOOM FILTER,能够完成数据筛选、处理、连接工作;借助BLOOM JOIN,分布式数据库能够排除不使用、不必要的大量数据,保留具有查询意义的数据,以达到高效数据交互的目的。

由BLOOM JOIN连接的BLOOM FILTER也被称为概率数据结构,它能够将大型数据压缩进一个非常复杂的数据结构,例如将原本几百个二进制位数据,变成只有一个或几个二进制位数据。因此,BLOOM FILTER比其他数据结构更节省空间,尽管它存在一定的误判,但这并不影响其性能优化目标的实现。

事实上,RapidsDB很早就已经开始部署BLOOM JOIN,然而当前许多数据库系统都还没有部署;即使已经部署了BLOOM JOIN的数据库,其使用方式也比较复杂,会对工作效率造成一定影响。不仅如此,柏睿数据的数据库产品还会智能地使用BLOOM JOIN,即数据库系统会动态探测和优化连接,根据不同的数据需求,自主选择BLOCK JOIN或 HASH JOIN。

人工智能技术,推动计算走向智算

为进一步提升数据库系统的性能,我们还能如何优化查询计划来更智能地处理数据?想解答这一问题,首先需要了解传统数据库究竟有什么局限。

尽管每个数据库系统,都有一套自己的优化方式,但是对于传统数据库而言,往往面临一些挑战。传统的数据库通常基于关系代数、系统配置、参数等信息来估测查询的最佳执行计划,但是系统列出的查询计划往往会非常繁杂,且查询计划相似;系统通常采用基于规则和启发式算法的方法评估查询计划成本,以选出性价比最优的查询计划,但这实际上是一个NP难题;此外如果出现临时性宕机等网络问题,传统数据库则不能继续执行操作,这些情况将会导致数据处理效率低、效果不佳。

虽然对于分布式数据库来说,这些问题依然需要面对,但是RapidsDB能够充分胜任,根据查询运行时收集的统计信息智能优化和调整查询计划,极大地提升了查询执行的高效性、易用性、灵活性和稳定性。

查询更高效:通过JIT编译技术优化查询计划

借助JVM(JAVA虚拟机)强大的编译功能,RapidsDB将数据结构图转化成动态程序,将SQL查询转换成JAVA字节码程序,再重新加载程序;当JVM发现某个程序被频繁运行时(或一个多次执行的循环体),就会对该程序本身进行编译,将JAVA字节码转换成机器码。这就是JIT编译技术的强大之处,不仅能够避免重复编译查询,而且运行更高效。

结果更精准:基于人工智能和机器学习算法的动态查询优化技术

传统数据库已然面临NP难题,对于要考量CPU、I/O、网络等诸多要素的内存分布式数据库来说,如何更好地实现优化查询计划,情况则更为复杂。RapidsDB给出了一个智能解决方案,即基于人工智能和机器学习算法自主研发出的动态查询优化技术。

查询优化的核心问题之一在于连接排序,尤其是面对多连接查询和大型连接查询场景时。假设一个查询条件要从人员表中选择身份证号和地址数据,看上去信用评分和教育程度两个条件的先后顺序是等价的,但在查询的实际运行过程中会发现,这两个条件执行的先后顺序对不同年龄段的人群来说有很大差别,原始查询的工作条件却检测不到这一点。

但RapidsDB数据库引擎能够通过动态查询优化技术,根据数据分布特征,预先有效捕获到不同列/表之间的相关性,并自动插入条件语句来完成优化查询计划,从而得到更精确的查询结果;同时也能对查询计划成本进行预先评估,在查询计划的结果准确性一致的情况下,选择最佳的查询计划。

目前,柏睿数据的动态查询优化技术已经获得了美国专利,这也表明动态查询优化技术是一项具有创新意义的先进水平的技术。

运行更稳定:动态查询优化技术持续自主调整查询计划

在遇到突发的网络宕机情况时,分布式数据库上的查询依然能够继续运行,因此RapidsDB动态查询优化技术可以完美的应对这一复杂情况。在运行过程中,RapidsDB能够自动检测到报表的故障问题,并自主动态调整查询计划,以确保系统正常运行。

基于数据联邦智慧集成构筑数据“群”岛

大数据时代,数据多样性意味着诸多不同的数据源,不同的数据技术、大数据技术供应商和数据处理模式,同时数据也会被存储在不同的位置,诸如此类;所以当进行数据查询时,多样性导致了复杂性。因此,柏睿数据设想应该有一种虚拟数据源,来处理数据并迎接多源异构数据所带来的挑战,柏睿数据针对这一虚拟数据源给出的答案是数据联邦,即对数据接口进行革新,实现多源异构数据的集成融合。

Rapids Federation在数据库平台设置了一个叫做联邦连接器的接口层,使之能与各种不同类型的数据库和数据源相连接,包括ORACLE、Postgres、GREENPLUM连接器、流数据连接器、JDBC连接器、HDFS Hive连接器等,通过联邦连接器运行查询,从而有效解决多源异构数据在不交换数据情况下的协作问题,突破数据共享瓶颈,实现多方数据安全高效流通。

同时,Rapids Federation可实现自适应查询下推,数据处理更加智能化、高效化。联邦连接器能够将部分数据的查询向下推送到数据源,以让能力更适配的数据源直接处理这些数据;并能够通过识别多种不同的数据结构来读取不同类型的数据。这也是Rapids Federation的优势特性之一。

结语

基于内存计算、分布式计算、智能技术、数据联邦这四个重点技术方向,柏睿数据构建了具备完全自主知识产权的全内存分布式数据库RapidsDB,助力企业建立实时数据分析与海量数据高效管理平台,目前已在金融、通信、政务、医疗、能源、工业互联网等行业实现了广泛而深入的业务场景落地。

未来,柏睿数据将携手千行百业的企业机构持续开展数智化转型,助力其构建全域数字能力,全面激活业务数据价值,实现降本增效、业务创新和绿色低碳发展。

每日必读

专题访谈

合作站点