电子信息产业推进国产化意义之一是避免核心技术受制于人, 以及保障网络空间安全和国家安全. “核高基”研究任务中的“基”即指以数据库、操作系统等为核心的基础软件产品, 数据库的国产化替代是重点技术攻关难题. 通过自研国产数据库管理系统来弱化对市场上其他数据库产品的过度依赖是当前的产业需求. 数据库国产化替代的难点在于, 当前IT建设运行多年, 类似商业银行等对数据安全性要求较高的领域已经对Oracle等数据库形成依赖, 因此政府机构、商业银行、金融证券公司、中央企业在进行信息系统建设与改造时面临数据库的选型问题. 如何实现国产数据库迁移、评估国产化改造对业务运行的影响、分析国产数据库及架构的适用性都是国产化进程中需要解决的问题.
1 数据库国产化 1.1 主流数据库产品DB-Engines是关于关系型数据库和非关系型数据库的全球性知识库, 每月对数据库管理系统进行热度排名. 表1是DB-Engines评选的近二年国际市场上热度排名前5的数据库管理系统, 图1是排名趋势变化, 排名策略是根据Google、Bing、Yandex搜索引擎、技术网站及社交平台上的查询频度[1]. 目前主流数据库管理系统以关系型数据库为主导产品, 尤其是Oracle、MySQL、Microsoft SQL Server、PostgreSQL、MongoDB等.
目前以Oracle为代表的国外商业数据库占主导地位. PostgreSQL开源对象关系型数据库的关注度持续增高. 随着保障数据库国产化与信息安全的总体规划, 国产数据库产业发展提速, 国内典型的数据库产品有人大金仓Kingbase数据库、达梦数据库、南大通用GBase、神舟通用数据库等[2]. 信息技术迅速发展导致海量数据激增问题, 国内数据库厂商尤其是大型云平台厂商开发出分布式架构的数据库系统以解决多用户并发支持、在线扩容等问题, 并向政府、金融等领域推广. 分布式关系数据库OceanBase具有数据强一致、高可用、高性能、在线扩展、高度兼容SQL标准等特点; RDS MySQL、MongoDB云数据库等分布式架构产品可根据云租户需求被部署于虚拟机、ECS云服务器并有良好兼容性; GaussDB采用大规模并行处理MPP(Massive Parallel Processing)架构, 提供PB级别数据量的处理能力; 分布式架构的Taurus具备可弹性扩展的虚拟块存储服务、高可靠性、高I/O吞吐能力.
1.2 国产化必要性
当前重要应用领域数据库系统依赖于国外的技术、产品及服务. 2018年美国商务部对中兴、华为进行芯片、软件禁售. 银监发[2014]39号文《关于应用安全可控信息技术加强银行业网络安全和信息化建设的指导意见》指出安全可控信息技术在银行业总体达到75%左右的使用率. 由于大数据、物联网、移动互联网等新技术的发展与产业融合, 网络数据量异常庞大且不断有增量数据产生. 大型企业日数据处理量已达到百TB级别(如微信官方统计其每天处理的信息量为450亿条). 作为信息存储的主要载体, 数据库系统国产化是保障网络安全和国家安全的必然要求.
2 数据库选型测评指标研究 2.1 DBMS选型性能分析数据库国产化替代关键在于适配性调研、测试选型、SQL性能优化以及网络安全评估. 技术层面的调研应包含数据库事务正确执行的4个基本特性(ACID), 即原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability). 原子性强调事务是不可分割的工作单位, 如果事务中一个SQL语句执行失败, 则数据库事务回滚到之前状态. 一致性强调数据库的完整性约束不受破坏. 隔离性是事务之间隔离, 并发执行的各个事务之间无法相互干扰. 持久性强调事务提交后的永久性, 其它操作或故障不应对事务产生影响.
数据库评价指标的确定要考虑关系型数据库(RDMS)和非关系型数据库(NoSQL)的差异性. 关系型数据库采用了关系模型来组织数据, 符合严格的范式设计与ACID要求. 对通用SQL语言的支持使得关系型数据库具备易用性、实体完整性、参照完整性和用户定义的完整性等特征, 但存在难以应对高并发、海量数据表查询时的低效率问题以及难以横向扩展问题. 非关系型数据库是分布式、不保证遵循ACID原则的数据存储系统, 以键值对存储数据且结构不固定, 数据之间没有耦合性及库表关联. NoSQL数据库基于BASE(基本可用、软状态、最终一致)模型, 具有更高的水平可扩展性、灵活性、可用性[3], 但不适合持久存储海量数据. 根据OWASP组织发布的十大最关键Web应用风险(OWASP Top 10), SQL注入攻击在2017年被列为威胁最严重的攻击方式. 2019年初我国境内大量使用的MongoDB、Elasticsearch数据库相继曝出存在网络安全漏洞, 存在泄露信息的风险, 因此应将数据库网络安全评价指标纳入测评指标体系[4,5].
2.2 选型测评指标体系模型在数据库产品特性分析的基础上建立一个选型测评指标体系模型, 指标的确定适当考虑了数据库ACID特性的实现, 保证在重要系统建设中实现国产化替代后的业务功能衔接.
依据GB/T 25000.51-2016《系统与软件工程 系统与软件质量要求和评价(SQuaRE)第51部分: 就绪可用软件产品(RUSP)的质量要求和测试细则》、TPC事务处理性能委员会测试基准(如TPC-C/E/H)及GB/T 28448-2019《信息安全技术网络安全等级保护测评要求》中的三级安全计算环境测评要求, 可以从3个方面建立选型测评指标体系模型, 第一类是性能效率指标, 包括高并发支持性、TPC基准性能、时间性能、传输效率; 第二类是信息安全性指标, 包括身份鉴别、访问控制、安全审计等, 信息安全目标可保证数据的保密性、完整性、可用性; 第三类是其他的不可量化质量特性指标, 包括功能性、兼容性、可靠性、可维护性、可移植性; 国产数据库选型测评指标体系模型如图2, 主要评价数据库的产品质量特性[6,7].
通过产品质量特性确定数据库选型指标, 测评结果映射到不同的区域, 可以综合评价不同数据库产品的差异. 选型测评基本思路是在新建设系统或者原系统升级前进行业务特征提取与分析, 对现运行系统的数据库性能和业务增量评估, 对不同数据库产品进行横评测试, 最终在国产化迁移完成后进行性能压力测试以确保对业务的良好支撑.
3 指标体系测试内容 3.1 性能效率指标
一般通过可量化指标对性能效率进行评价, 通过开源或行业通用工具模拟正常、峰值及异常负载条件对数据库的各项性能指标进行测试.
3.1.1 高并发支持性通过Loadrunner、Jmeter模拟压力测试, (1)库表建立, 针对被选型的多款数据库产品建立同样的表结构及外键约束, 生成关联表及大于5000万条记录; (2)建立测试进程与连接配置, 国产数库广泛支持JDBC接口(JDBC Driver Class驱动), 选择Query_Type并添加库表的读写测试脚本; (3)进行持续性压力测试并收集平均响应时间、吞吐率、错误率等结果.
3.1.2 TPC基准测试TPC组织公布的测试标准包括TPC-C/E/H. TPC-C是专门针对联机交易处理系统(OLTP)的测试规范, 被众厂商认可(TPC-E比TPC-C基准模拟的应用环境更真实, 模型的仿真性和完备性也更优秀). 本文量化指标体系将TPC-C/E/H基准全部纳入, 在进行国产数据库选型时可裁减选择一种基准, 在不少于1000个数据仓库与虚拟终端并发的场景下记录其tpmc值[8].
3.1.3 时间性能与传输效率性能与效率测评是对数据库基本写入、读取、同步、迁移性能进行量化评估. (1)库表建立, 建立与高并发支持性相同的数据环境; (2)进行关联查询与写入测试, 对SQL语句(如Select、Insert)进行严格的条件限定并对比返回时间; (3)全量数据迁移的传输性能(单位MB/s)和同步性能(单位TPS); (4)数据库异地实时同步备份的时间效率, 搭建跨区域测试环境, 设计用例验证实时同步的时间效率.
3.2 信息安全性指标信息安全性指标的目标是实现数据可用性、完整性、保密性. 评估方法为身份鉴别、访问控制、安全审计、入侵防范、数据备份恢复[9].
3.2.1 身份鉴别(1)评估是否对登录用户进行身份标识和鉴别, 核查标识唯一性、鉴别信息复杂性、更换周期性要求; (2)评估是否对登录失败及登录超时情况进行处理; (3)是否支持SSL/SSH等安全的远程连接方式以保证重要信息的加密传输; (4)是否支持双因素身份认证.
3.2.2 访问控制(1)数据库的账户和权限分配策略; (2)检查数据库系统是否可设置安全策略, 应支持用户和/或用户组可以根据身份规定对库表的访问控制策略; (3)访问控制的粒度应达到主体为用户级或进程级, 客体为文件、数据库表级.
3.2.3 安全审计安全审计评估数据库的日志记录及审计功能, 审计应覆盖到每个用户并对重要的用户行为和重要安全事件进行审计, 审计记录可备份, 审计进程受保护.
3.2.4 入侵防范入侵防范方面主要评估数据库系统是否有高风险漏洞、产品补丁更新周期与更新策略等.
3.2.5 数据备份恢复数据备份恢复主要评估数据库系统是否提供本地备份与恢复功能, 包括数据全量备份、增量备份、异地实时同步、故障可恢复能力等.
3.3 其他指标其他指标包括了不可量化的一些质量特性, 测试顺序为搭建测试环境、部署测试数据及场景、验证指标是否可达.
3.3.1 功能性验证国产数据库基础表管理功能, 对数据定义语言DDL、数据操作语言DML、数据查询语言DQL、事件控制语言TCL、数据控制语言DCL进行SQL语句验证, 评估数据库事务处理功能支持、完整性约束(唯一性约束、非空值约束), 对分布式部署数据库应验证分表分库、SQL自动路由、读写分离、主副本节点数据一致性等功能.
3.3.2 兼容性验证对JDBC、ODBC接口的兼容性、支持的数据类型, 数据类型包括字符串、数值、日期时间、布尔、二进制串、XML等. 增强要求下验证中间件、B/S架构Web应用中对浏览器的兼容性、多源异构及Oracle语法和数据类型兼容性等.
3.3.3 可靠性通过ACID中一致性和持久性的反映验证可靠性, 测试用例从容错性、数据保护、易恢复性、运行稳定性角度设计. (1)对人机接口输入的SQL语法及数据进行有效性检验, 以避免失效、误操作、死机; (2)数据库在规定的极限情况下不丢失数据; (3)黑盒测试模拟异常, 可实现数据恢复功能; (4)模拟数据库读写压力并运行8小时, 验证是否出现故障和错误.
3.3.4 可维护性从可重用、易修改、易测试等方面验证可维护性, 要求数据库补丁升级时中断服务时间小于特定指标, 集群架构及分布式数据库应保证节点个数在业务繁忙时可即时扩展, 能承载更多的业务流量QPS.
3.3.5 可移植性从适应性、易替换性方面验证可移植性, (1)对Windows、Linux操作系统的兼容性验证, 以及网络软件及合作应用软件的适应性; (2)支持异构数据库迁移, 且迁移停服时间受控.
4 国产数据库选型测评实践 4.1 测评实施在测评实践过程中, 针对具有代表性的国产数据库进行选型测评, 参考测评指标体系模型, 通过适用性原则选择具体3类指标并设计测试用例, 针对大量业务并发运行及全国分布式访问节点的业务特点, 搭建图3所示的模拟测试环境.
设计测试流程与指标, 如图4所示. A类非量化指标重点针对分布式数据库事务功能、ACID特性及接口兼容性等. B类量化指标测试中选用TPC-C基准, 通过TPCC、BenchmarkSQL创建1000个warehouse的测试数据并执行1小时, 分析tpmc值; 设计外键关联查询的Select脚本, 模拟10 000虚拟用户并发执行脚本10分钟, 记录不同数据库的平均响应时间RtAVG及错误率ErrAVG; 时间性能方面主要对数据批量Select/Insert、全量/增量迁移时间进行测评. C类指标仅选择身份鉴别、安全审计、备份恢复3项指标. 最终进行结果分析与选型比对.
4.2 测试结果分析
5类数据库tpmc结果对比如图5所示.
通过图5对性能效率指标中的TPC-C基准测试结果进行分析. 在TPC-C基准测试阶段工具脚本建立客户表、商品表、订单表等9个数据表, 添加交易数据并持续模拟1小时内该商品交易市场的订单流通场景, 导出的评价因子为每分钟商业事务(tpmc)吞吐量, 值越大则相同情况下数据库性能可判定为更优. 图5的对比, 可以部分反映不同数据库的质量特性可达程度, 其中数据库E、数据库A呈现出更好的高并发支持性(对环境配置具有强依赖性), 本次结果分析仅通过可量化的性能效率指标对数据库性能进行评价, 在其他测评应用中需兼顾性能效率、信息安全性、其他类不可量化指标的结果.
5 结论与展望本文分析了主流数据库市场应用情况, 以及实现数据库国产化选型测评的必要性. 本文研究了关系型数据库与NoSQL的特性, 结合软件质量特性及安全测试标准, 提出了数据库选型测评指标体系模型, 从性能效率、信息安全性、其它类指标3个方面进行建模, 并针对各指标给出了通用的测试内容. 使用该指标体系针对5类国产主流数据库进行测评实践, 并给出了基于TPC-C基准的量化测评结果, 验证了测评指标体系的合理性和可操作性.
[1] |
DB-Engines. https://db-engines.com/en/.
|
[2] |
周亚洁. 数据库国产化替代面临的问题及对策研究. 信息安全研究, 2018, 4(1): 24-30. DOI:10.3969/j.issn.2096-1057.2018.01.005 |
[3] |
Kabakus AT, Kara R. A performance evaluation of in-memory databases. Journal of King Saud University-Computer and Information Sciences, 2017, 29(4): 520-525. DOI:10.1016/j.jksuci.2016.06.007 |
[4] |
国家互联网应急中心. 2019年上半年我国互联网网络安全态势. 北京: 国家互联网应急中心, 2019.
|
[5] |
赵琳娜, 倪明, 喻卫东. 基于异构冗余的拟态数据库模型设计与测试. 计算机系统应用, 2019, 28(9): 251-257. DOI:10.15888/j.cnki.csa.007070 |
[6] |
全国信息技术标准化技术委员会. GB/T 25000.51-2016 系统与软件工程 系统与软件质量要求和评价(SQuaRE)第51部分: 就绪可用软件产品(RUSP)的质量要求和测试细则. 北京: 中国标准出版社, 2016.
|
[7] |
郭盈, 周润松. MPP数据库非功能测评指标及其效率测试方法. 工业技术创新, 2018, 5(1): 30-34. |
[8] |
冯玉杰. 企业级数据库服务器性能测试工具设计与实现[硕士学位论文]. 大连: 大连理工大学, 2017.
|
[9] |
全国信息安全标准化技术委员会. GB/T 22239-2019 信息安全技术 网络安全等级保护基本要求. 北京: 中国标准出版社, 2019.
|