深度解析中国信通院电信场景分析型数据库性能测试平台(一)
1.研发背景
数据库是软件系统存储的关键模块,是数据产业生态体系构建的重要基石。自1969年IBM公司研制出首个层次模型数据库起,数据库产品经历50余年的不断演化迭代,形成了复杂多样的技术架构。近年来,在市场需求和行业应用的双重驱动下,企业业务系统呈现大数据量、高并发度等特征,对数据库产品提出了更多的需求和挑战。
另一方面,计算机硬件和大数据开源生态的发展,为数据库产品的技术演变提供了新的增长点。对国内市场来说,数据库作为信息化的基石,其自主可控的需求是其他数据产品无可替代的,受到了越来越多的重视。在需求、技术和国际环境等因素的影响下,国产数据库行业进入了一个蓬勃发展的阶段,越来越多的国产数据库产品涌入市场。多样的产品和纷繁复杂的技术架构标志着行业的欣欣向荣,也在一定程度上对数据库使用方的选型造成了困难。
相较于日趋成熟的事务型数据库来说,用于对海量数据进行存储分析的分析型数据库更是选型中的重点难点。判断一个分析型数据库是否能用、好用,需高度依赖应用场景。不同的技术架构和设计理念,使得数据库产品有各自的优势和劣势。
例如通过Apache Kylin 构建CUBE结构,对数据进行一定的预计算,能实现对查询的亚秒级响应,但若使用场景数据维度过高,则会产生维度爆炸,存储空间的需求将成为制约因素。当今企业的真实业务场景是非常复杂的,判断数据库是否适用最可靠的方式就是在尽可能真实的场景下对数据库进行查询操作并记录量化指标(如QPS等),确保测试场景的数据量、表结构、测试用查询语句、并发程度都尽可能贴合真实的业务。基于以上考虑,中国信通院于2019年开始了分析型数据库性能测试平台的研发工作,并于2020年完成了测试平台的开发并先后推出了金融、电信两个场景。
该平台初次被用于中国信通院第十一批产品评测中,到目前为止,已有十余家企业使用了该平台进行测试和选型。通过积极的收集用户反馈和快速的迭代优化,平台在可用性和用户体验方面有了进一步的提高,受到了各方越来越多的关注。
2.架构设计
平台设计考虑到需对不同数据库产品的支持,并尽可能减少测试的时间成本,在保证测试结果的正确性的基础上,设计的重心放在了灵活性、可扩展、和易于学习部署等方面。平台提供场景和驱动的接入功能, 用户只需上传jdbc驱动和定义场景的excel文件即可适配各种被测产品和测试场景。平台具有灵活的数据生成功能,可以支持各种数据类型,多种统计学分布类型的数据生成。平台包含简单易懂的图形化操作界面,用户可根据提示选择驱动及场景、配置参数,进行引导式的实验设计。开发过程基于Java语言及Spring框架,具有良好的跨平台部署能力。平台采用模块化设计,各模块间耦合度低,采用TCP/IP通信,设计过程中也为将来的容器化改造打下了基础。
图1:平台整体架构
2.1驱动管理模块
平台采用JDBC连接的方式实现数据源访问,支持多种驱动的上传,用户可根据测试需要灵活加载不同的驱动。测试过程中针对不同数据库或未知数据源,无需修改工具代码, 只需选择对应的驱动即可,极大地提升了测试效率。 目前为止,已经使用过的数据源包括greenplum,MySQL,hive,xcloud,TiDB,postgresql等。
2.2任务管理模块
支持多任务配置,各任务流程相互独立、互不干扰。平台的后端使用MySQL数据库实时记录实验进度、结果和状态日志等数据,确保测试数据不会因断电等原因丢失。支持状态日志查询,状态进度查询,状态重置等功能。
2.3数据初始化模块
该模块用于测试参数的初始化和数据的生成与导入。支持场景选择、数据量配置、数据的自动生成和DDL元数据修改,支持测试数据手动或自动导入等功能。
2.4压测模块
压测模块的主要功能是生成测试负载并收集被测数据库反馈的数据。考虑到各产品的建表及查询语句存在区别,压测模块支持测试语句语法的适配性调整。数据收集方面,支持服务器级实时指标收集和测试数据的合法性校验。
2.5结果统计模块
该模块的主要功能是结果的统计、指标的计算以及结果展示。支持测试数据加载,串行,并发测试时间统计以及SQL完成度统计。可以计算性能指标,性价比指标,金融场景代价指标并展示测试参数及测试期间CPU,内存,IO的负载曲线。
2.6场景接入模块
场景接入模块确保了不同的测试场景可以灵活接入。场景设计模块起到了解释器的作用,参与场景设计的人员无需编程背景,通过excel即可完成场景表结构、测试用SQL语句、及数据生成规则的配置工作。
图2:通过excel表格自定义数据生成规则
具体的测试场景设计是一个复杂且重要的过程,还请关大家注后续发布的第二部分,届时将介绍电信场景设计过程中的实践经验。
有兴趣持续探讨相关话题的,请联系
王超伦 wangchaolun@caict.ac.cn
中国通信标准化协会大数据技术标准推进委员会(CCSA TC601,简称:数标委/BDC),旨在凝聚产业链各个环节,识别和解决大数据发展面临的重大问题,开展大数据技术、数据资产管理、数据共享与流通、数据安全等共性基础标准研究,以标准推进工作为纽带,推动大数据与实体经济深度融合。欢迎加入我们的行列!
入会咨询:张德民 15313961683
zhangdemin@caictyds.cn