国产数据库选型指南
在数字化时代,数据已成为企业最宝贵的资产之一,对提升生产效率和推动社会发展具有重要作用。在这个数据激增的时代,如何有效存储、管理和分析这些数据已成为每个企业面临的重大挑战。数据库作为数据存储的核心载体、信息系统的中枢,不同于普通应用软件,承载着企业宝贵的数据资产,直接关系到企业乃至国家的数据安全。为确保企业系统稳定、数据安全,并提高工作效率,选择一款合适的数据库产品对于企业的发展至关重要。
数据库分为多种类型,例如关系型、键-值型、多列型、面向文档型、图型、时序型和向量型,各种数据库有着其合适的使用场景。随着国产数据库技术的不断进步,中国数据库市场正展现出前所未有的繁荣。据不完全统计,国内已有超过 200 款数据库产品。如果企业要进行数据库国产化替代,不太可能将 200 多款数据库产品都测试一遍。因此,如何从几百家数据库厂商中挑选适合自身企业的数据库产品,需要有一定的方法论作为指导。
YashanDB 将从稳定可靠性、安全性、兼容性、性能、售后服务、生态体系、成本、产品前景等 8 个方面,为企业选择合适的关系型数据库提供选型指导。
1. 稳定可靠
随着互联网的发展和普及,企业对系统可用性指标越来越看重,系统的可用率是企业的生命线,数据库的稳定可靠显得尤其重要。
不论是 CTO 还是架构师、业务负责人、研发人员或者 DBA,稳定可靠性是选购数据库时最重要的因素。
各个行业以及领域对选购数据库的稳定可靠性是最基本要求。
1.1 负载测试
1. 模拟真实业务场景,对数据库进行高并发读写、复杂查询、大数据量等压力测试,观察数据库的响应时间、吞吐量以及稳定性;
2. 模拟数据库节点故障、网络故障等各种异常情况,测试数据库的故障恢复能力、数据一致性保障能力。
如上的压力测试和破坏性测试,在不同负载压力和异常场景下的数据库表现,对于证明数据库的稳定可靠性至关重要。
1.2 技术特性
1. 了解数据库的高可用架构是否包括主备部署、集群部署、负载均衡、故障切换等功能以及了解这些功能特性的实现机制和实际效果,可以提高数据库系统的可用性和可靠性;
2. 了解数据库的容灾能力以及评估相关技术的成熟度和可靠性,了解满足国际标准 SHARE 78 或者《信息系统灾难恢复规范》(GB/T 20988-2007)的容灾等级;
3. 自动故障检测和修复能力都可以一定程度提升数据库系统的可靠性和可用性;
4. 数据库产品故障率,如两次故障之间的平均运行时间、正常运行与故障时间可帮助评估系统稳定性、可用性能力。
1.3 客户案例
数据库在各行业的客户案例能相对客观地证明数据库软件在企业的实际效果和市场认可度,尤其是对数据一致性要求高、业务连续性要求高的金融、电信等关键行业的应用案例,以及在大型企业中的应用情况,可以提供成功的实际案例和经验参考,更好地帮助用户了解数据库在不同行业和应用场景下的应用效果,参考其他用户对数据库稳定性、可靠性方面的评价,借鉴其他客户的经验和教训,能提高选型的准确性和成功率。
2. 安全性
安全性是数据库系统的核心要素之一,代码自主化程度影响了数据库应对安全风险的能力,影响着数据的完整性、保密性和可用性,保护数据安全对于企业和组织来说至关重要。
对数据库选型的各个角色而言,安全性也是选购数据库时最重要的因素之一。
尤其在党政军领域,其次是金融、电力、电信、石油、交通、教育、医疗、航空航天等关于国计民生的八大行业,数据库安全性问题是选型底线。
2.1 自主可控
参考数据库产品在国家权威机构(如:工业和信息化部第五电子研究所)的开源软件产品检测的代码自主率,以开源率高低来反映自主率高低,开源率越低则自主率越高,代码自主率越高则出现内核问题的兜底能力越强、技术后门的风险越低、产品安全性越高;
2.2 安全标准
1. 确保数据库产品符合国家和行业的安全标准和法规要求,如信息系统安全等级保护、ISO 信息安全标准等;
2. 确保含有第三方权威机构对国产数据库进行过安全认证,如通过中国信息安全测评中心或国家保密科技测评中心的测评、取得 CC 认证等。
2.3 技术能力
数据库选型中需要评估数据库产品的安全功能和安全机制是否符合企业的需求
1. 数据加密
加密包含两方面,
第一,考虑数据库服务端与客户端之间传输数据是否采用了加密协议,以保护数据在传输过程中不被窃听;
第二,了解数据在存储过程中是否加密,防止因物理设备被盗数据被非法访问。
2. 访问控制
数据库内部通过实现身份信息验证,如用户名/密码、LDAP 等方式控制用户访问,同时为了更细粒度的控制用户访问,需要实现权限管理机制,防止敏感信息的泄露。
3. 审计
数据库是否能提供详尽的审计日志功能,记录谁进行了何种操作,并能够追踪到具体的数据修改,方便后期问题审查。
4. 备份与恢复
a、考虑数据库备份文件是否有加密功能且存储在安全物理介质中,保证数据备份的安全性;
b、考虑数据丢失或者安全事件发生后,能快速恢复并确保恢复的安全性。
5. SQL 注入攻击防护
检查数据库是否具备有效防护 SQL 注入攻击的机制,如绑定参数、预编译语句等。
6. 漏洞管理
评估数据库公开的漏洞是否能及时获得更新和修复,是否设计有完善的补丁管理机制。
3. 兼容性
在国产数据库替换过程中,为了确保新选购的数据库能够与现服务器、操作系统、应用程序、中间件以及数据格式能尽可能兼容,尽可能满足选购数据库的无缝集成。
兼容性的考量评估同样覆盖了数据库选型的各个角色,是选购数据库时核心考量因素。
金融、电信、医疗、制造业、云计算等行业领域,由于应用系统的数据集成度高、架构复杂,最注重选购数据库的兼容性。
3.1 数据库标准
1. 关系型数据库的选型,一般评估数据库对 SQL 标准(如 ANSI SQL)的兼容程度,是否包含常用的查询语法、函数和操作;
2. 需考虑对旧数据库数据类型的兼容程度,比如应用系统使用 Oracle/MySQL 数据库,选购数据库时需要考虑与 Oracle/MySQL 的数据类型兼容程度或者映射规则,以确保在数据迁移时不会出现类型不匹配的问题。
3.2 应用程序
1. 重点考虑选购数据库与应用系统用到的第三方框架的兼容适配,比如 ORM(Java 语言常用 mybatis-plus)框架、工作流(如 Flowable)框架的兼容;
2. 选购数据库是否提供与应用程序兼容的 ODBC/JDBC 驱动程序和 API,方便应用程序连接数据库进行数据存取。
3.3 操作系统
确认选购数据库能够在所需的操作系统环境中运行,以便于现有的 IT 基础设施兼容。
3.4 工具兼容
1. 评估选购数据库对不同数据格式(如 CSV、JSON、XML 等)的导入和导出支持情况,确保可以顺利进行数据迁移和集成;
2. 评估选购数据库的与第三方工具的集成,以满足日常运维、开发需求。
3. 评估数据库是否支持自定义扩展或插件机制,以便在未来的应用中进行功能增强。
4. 性能
数据库系统性能主要是指在应对大规模数据处理、高并发访问下的性能表现,是确保系统能够高效稳定运行的前提。
性能要求在选购数据库过程中是关键评估因素,架构师、DBA、业务负责人、CTO 等关键角色会对选购数据库的性能指标比较关注,但不同的角色有不同的关注点。
金融、电信、电商、互联网等行业,对数据库查询响应和并发性能要求特别高。
4.1 性能指标
1. 查询性能,评估选购数据库执行单表查询以及多表关联查询的响应时间,通常以每秒查询数(QPS)来衡量;
2. 写入性能,评估选购数据库进行写入或者批量写入操作的响应时间,通常以每秒写入数(WPS)来衡量;
3. 并发性能,考虑选购数据库能够高效处理的并发请求数量以及高并发情况下的事务执行效率,通常以每秒处理的事务数(TPS)来衡量;
4. 扩展性能,评估选购数据库在表空间扩容、增加新节点时的性能表现,是否能够有效支持读写分离及分库分表,以及增加资源(如 CPU、内存、存储等)的情况下性能提升程度;
5. 存储性能,数据库属于 IO 密集型应用需要考虑存储介质的读写速度,以及考虑数据压缩存储的性能表现;
6. 内存管理,评估选购数据库的缓存淘汰策略和内存管理机制,对高并发访问和查询写入的性能影响较大;
7. 备份恢复性能,考虑选购数据库的数据备份以及恢复效率。
4.2 基准测试
基准测试主要用于评估数据库系统的性能表现,提供调优方向,验证选购数据库是否符合企业(比如金融行业)性能要求,常用的数据库性能测试模型,可根据不同场景选择不同测试模型:
1. TPC-C:用于在线交易处理(OLTP)的基准测试,模拟多个客户的复杂业务事务,性能指标是事务吞吐量(tpmC),表示每分钟完成的交易数量;
2. TPC-E:模拟了一个典型的证券交易环境(OLTP),适合金融服务行业的评估,尤其是股票和证券交易,主要性能指标是每秒事务数(tpsE),该指标表示系统在标准负载下每秒可以处理的事务数量;
3. TPC-H:用于决策支持系统(DSS)的基准测试,关注复杂查询的性能,适用于(OLAP)分析性查询的场景。常用的指标是 QphH(查询每小时)以及查询平均响应时间;
4. TPC-DS:更复杂的决策支持测试,可以更全面地评估数据仓库系统(OLAP)的性能,适合现代数据分析需求。性能指标包括 QphDS(查询每小时)、查询执行时间及系统的总体响应能力;
5. SYSBench 是一个多线程基准测试工具,能够测试数据库的性能。它支持多种工作负载,包括 OLTP、读写混合等,可用于 TiDB、MySQL 系列和 PostgreSQL 系列等国产数据库的性能评估。评估指标有:TPS、QPS、响应时间、吞吐量、并发用户数等;
6. Pgbench 可用作 PostgreSQL 系列国产数据库的基准测试工具,能够执行各种 OLTP 场景,并可以根据用户需求自定义测试用例。评估指标有:TPS、QPS、响应时间、吞吐量、并发用户数等。
4.3 业务压力测试
• 企业根据实际情况,选定业务系统模拟大量用户访问、大量数据处理等情况,有助于确定系统在高负载情况下的数据库性能表现,如响应时间、吞吐量、并发处理能力,从而发现性能瓶颈,为性能优化提供有效指导,对系统正常运行和提升用户体验具有重要意义。
4.4 性能诊断工具
• 在选购数据库时,应考虑其在出现性能问题时的诊断能力和监控工具的完善程度。
5. 售后服务
完善的售后服务体系对于客户体验和客户满意度非常重要,也是给客户选择国产数据库提供的一剂强心针。
在选购数据库过程中 DBA、业务负责人等关键角色会非常注重产品的售后服务,DBA 通常关注技术支持的响应时间和质量,而业务负责人关注售后服务如何影响业务的连续性和效率。
金融、电信、医疗、党政、电商、教育、能源或公用事业等行业,非常注重售后服务的质量。
5.1 服务质量
售后服务团队的专业性对于企业的运营和发展至关重要,高标准的服务质量可以确保数据的安全性和完整性,包括
1. 关注产品文档的可读性、全面性、准确性;
2. 了解售后服务团队规模;
3. 查看选购数据库产品提供的服务水平协议,
a. 了解其对服务质量的承诺,包括系统可用性、故障响应、故障恢复时间等;
b. 评估服务可用性保障水平,性能指标是否定义清晰;赔偿条款是否明确清晰,是否合理等。
提供高性能的数据处理能力和稳定可靠的数据服务,使用户获得良好的服务体验,提高用户满意度和忠诚度,才能赢得良好的市场口碑。
5.2 服务形式
对用户而言提供多种服务形式是必需的,以确保用户在使用数据库产品过程中能够获得及时的技术支持和帮助。
1. 用户可以通过工单、电话、邮件、在线聊天、社区论坛、产品文档、培训认证、服务伙伴等方式获得标准技术支持。
2. 数据库产品厂商也需具备驻场服务、现场专家服务、紧急故障处理、迁移服务、定制化培训服务、个性化定制服务等高级服务。
5.3 市场口碑
企业在选型过程中,应收集多方渠道信息,评估厂商在在售后服务过程中的服务质量、故障处理能力、厂商的信誉等多方面的用户反馈和评价,以确保选购的数据库厂商能提供良好的售后服务保障。
6. 生态体系
国产数据库选型中的生态体系越完善,对现有 IT 架构的业务冲击越低,长期使用成本越低,该场景从信创伙伴、工具生态、第三方开发者、用户社区等几个维度进行阐述。
选购数据库过程中,生态体系是各角色层的重要评估因素
金融、电信、制造业等行业在选购数据库时,关注生态体系的合规性、数据保护以及与业务系统和第三方工具的集成情况。
6.1 信创伙伴
信创背景国产数据库选型中,需要考虑数据库供应商与国产芯片、国产服务器、国产操作系统、国产应用软件等生态上下游国产厂商信创产品的兼容适配程度
6.2 工具生态
1. 为应对企业数据整体迁移到国产数据库系统工具不完善的问题,开发、运维管理等相关的工具软件的完整支撑至关重要,如数据迁移工具、数据库开发工具、数据库管理工具、性能监控工具等;
2. 对主流开发语言和框架的支持情况越完善(如 C/C++、Java、Python、Go、Node.js 等),能证明选购的数据库产品越成熟。
6.3 第三方开发者
数据库产品需支持多种开发语言接口,以及与数据库产品相关的开发者生态系统,如开发者工具、集成开发环境(IDE),为第三方开发者提供基于数据库系统开发应用程序和解决方案的通道和手段,丰富数据库系统的应用场景和功能拓展。
6.4 用户社区
活跃的用户社区,能为各个用户提供数据库选型参考,在数据库使用和优化过程中相互交流、分享经验和解决问题。
7. 总体拥有成本
数据库总体拥有成本是作为决策者在采购决策时首要考虑的问题,作为一个决策者,不能只因为单项优势(如软件价格)就加以采纳,整体解决方案创建出来的价值理应超过它的成本。总体拥有成本包括数据库产品授权费、IT 基础设施建设费、迁移改造费、售后服务费、产品升级费以及 DBA 学习成本等。
选购数据库过程中,总体拥有成本是各角色层的必要考量因素。
金融、软件服务、制造业等领域关心运营成本和整体投资回报
7.1 数据库产品授权费
了解不同数据库产品的定价策略,
1. 一般有按 CPU 核数、按用户数、按数据量、按节点数等许可方式进行收费;
2. 有按照软件订阅的方式进行收费;
用户需要根据自身企业规模和预算成本选择合适的产品付费方式。
7.2 IT 基础设施建设费
1. IT 基础设施建设有硬件设备费用,包括服务器、存储设备、网络设备、安全设备等 IT 基础设施设备的采购成本;
2. 需考虑配套设施费用,比如机房建设、网络布线、供电设备等配套设施的建设费用,这些通常与数据库的规模和性能需求相匹配,根据数据库的性能和容量需求合理配置 IT 基础设施设备。
7.3 迁移改造成本
数据库选型过程中,评估迁移和迁移改造是非常重要的一环。迁移改造成本涉及:
1. 调研和分析。包括现有数据库产品、数据库结构、数据量、应用程序集成度、性能需求、安全需求等,明确迁移的范围和目标,根据现有数据库产品和目标数据库选择合适的迁移工具,
2. 数据迁移。确定最适合的迁移方式,如全量迁移或增量迁移,制定完善的迁移方案,并进行数据迁移;
3. 应用代码修改、测试成本。由于迁移后应用程序连接的不同数据库产品,会涉及到代码的修改、测试和部署成本,因此必需评估应用程序改造的成本;
4. 预留应对和处理潜在的风险和不确定性因素的预算。
7.4 售后服务费
评估售后服务费用需要考虑数据库供应商的售后服务内容,一般分为标准服务、高级服务、紧急故障处理服务、驻场服务等。不同数据库软件供应商的售后服务费用也不尽相同,根据提供的售后服务政策综合全面评估售后服务费。
7.5 升级成本
评估软件升级成本时,
1. 需要考虑升级到新版本的许可证成本、升级后可能产生的技术支持费用、培训成本、系统停机时间引起的业务中断和生产成本、定制和扩展的成本以及升级失败后的回退成本;
2. 结合企业的实际需求和预算,进行详细成本分析和预算,升级后带来的性能提升和功能增强的收益,综合评估软件升级成本。
7.6 学习成本
数据库管理员学习新的数据库产品,需要考虑培训费用、认证考试费用、学习时间成本、实践成本等方面的因素,多投入学习时间与多进行实践操作是数据库管理员提升专业技能和工作效率的不二选择。
8. 产品前景
数据库产品供应商的实力包括财务状况、市场地位、技术实力、研发投入、资质认证和历史事件,供应商有着良好的公司背景,是数据库产品能持续稳定迭代更新的基石,在数据库产品选型过程中极其重要。
选购数据库过程中,为了尽量避免企业的二次选型,各选型角色也会重点评估产品前景。
8.1 财务状况
分析财务报告,包括资产负债率、净利润率等,将选购的数据库的财务数据与同行业的其他公司进行横向对比,评估其盈利能力是否具备竞争力,从而判断其长期发展的潜力;
8.2 市场地位
研究相关市场研究机构发布的报告(如墨天轮、DB-engines、Gartner、IDC 等)以及行业分析,以了解其在行业中的影响力、品牌知名度,有助于推动产品销售和市场渗透,提升品牌价值和产品竞争力;
8.3 技术实力
1. 关注选购数据库产品的种类与特性,评估其技术架构、核心功能和创新能力,是否有前瞻性的技术路线图和特性开发计划;
2. 关注选购数据库厂商的研发投入资金、人力、设备采购等方面考量,能宏观反映选购数据库厂商的研发投入情况,进而侧面了解选购数据库厂商的技术实力;
8.4 资质认证
特定的资质认证是进入市场的必要条件,关注选购数据库厂商是否获得相关行业的资质认证或荣誉奖项,可以反映其在行业内的认可度和信誉度,能一定程度上降低企业因选购数据库产品不符合规范而可能导致的法律风险和责任,增强选购企业的信任;
8.5 历史事件
了解厂商在市场的运营时间、经历的大事件(融资、并购等)及其对市场波动的适应能力,查看相关官方媒体报道或行业内相关自媒体的评价,考量厂商在行业中的信誉和口碑;
评论