随着信息技术的快速发展,特别是大数据和云计算的兴起,数据库已成为企业信息化建设的核心。有效地管理数据库对于保证数据的安全、提高企业运营效率和支持决策制定至关重要。在这样的背景下,选择合适的数据库工具成为了企业和技术人员面临的重要任务。
本文作为《数据库工具选型指南》系列的一部分,通过对话一线技术专家,旨在帮助用户了解选型的重要性和方法,提供关键因素和考虑要点。通过比较和评估不同工具,读者可以深入了解每种工具的性能和成本差异。
近日,我们有幸采访到了多点生活(中国)网络科技有限公司数据库团队负责人 冯光普,围绕数据库工具的需求分析、选型策略、用户反馈等话题进行深入探讨。
▲多点生活(中国)网络科技有限公司数据库团队负责人 冯光普
嘉宾介绍:冯光普,曾在阿里巴巴数据库团队,负责AliSQL分支维护、特性开发及Bugfix,目前是数字化零售多点Dmall数据库负责人。
数据库工具可以满足多种需求
使用数据库工具可以帮助用户更好地管理和利用数据,提高工作效率和决策质量。在冯光普看来,使用数据库工具可以保障公司的数据库安全稳定、提高DBA运维效率、高效支撑研发体系和优化成本。
保障数据库安全稳定
数据库工具提供了数据安全性和可靠性保障。它们可以保护数据不被未经授权的人访问和使用,并且能够确保数据的完整性和一致性。主要有以下几类:
1)监控类工具,观测数据库状态和性能指标,及时发现和解决问题,比如PMM、Zabbix等;
2)高可用管理工具,在故障时自动切换,确保RPO和RTO符合业务需求,比如Orchestrator、MHA等;
3)备份及恢复工具,确保数据安全,兜底极端风险,要求备份可靠、恢复高效,比如mydumper、XtraBackup等;
4)审计类工具,确保流程合规,风险可控,问题可追溯。
提高DBA运维效率
数据库工具通过自动化监控和管理任务,提供强大的数据备份和恢复功能,简化数据库迁移和升级过程,以及提供数据分析和挖掘功能,可以提高DBA运维效率,这有助于减少成本和提高工作效率,提升整个数据库系统的性能和可靠性。比如,Percona Toolkit、OceanBase OCP、TiDB Dashboard等。
高效支撑研发体系
数据库工具可以帮助研发正确、安全、高效地使用数据库,实现研发侧数据库服务的标准化、平台化、自助化。主要有以下几类:
1)DDL/DML变更SQL审核工具,强制数据库规范落地,控制变更安全边界,比如goInception、SQLE等;
2)SQL开发工具,研发可以设计库表结构、查询数据、导出数据,比如Navicat、phpmyadmin等;
3)性能优化工具,数据库状态及关键性能指标、连接管理、慢SQL监控分析,索引建议及优化,比如pt-query-digest、SOAR等。
优化成本
数据库工具可以帮助DBA优化成本、降低性能风险,提高工作效率和决策质量。比如,数据归档工具pt-archiver、juicefs。
数据库工具选型的方法和策略
在进行数据库工具选型时,需要综合考虑需求、市场调研、技术评估、实验和评估、成本效益分析、参考案例、专家咨询,以及持续优化和调整等方面。通过这些方法和策略,可以更好地选择适合自己组织的数据库工具,并确保其能够满足业务需求和性能标准。
在需求匹配度分析层面,针对主要的用户角色,进行需求点分析,分清主要痛点和次要需求,确保工具产品提供的功能是否可以覆盖用户的主要痛点。
在同类产品横向比对层面,冯光普建议,“当有多个同类产品时,有必要进行实际测试验证,针对功能、稳定性、易用性、集成难度等指标进行比对,确保更加客观,比如SQL开发工具,可以比对,Navicat、DBeaver、Aliyun-DMS、phpmyadmin等。”
研究产品的成功案例,往往可以事半功倍,通过了解其他用户在面对相似问题需求时,采用该工具取得的效果,能更深入理解方案的逻辑。在典型用户案例参考层面,更多的用户采用了gh-ost,online DDL工具相对pt-online-schema-change更具有优势,可以减小变更对主库的性能影响。
与此同时,还需要考虑数据库工具的流行度,开发团队,以及维护和升级成本等因素。冯光普表示,“对于数据库工具类产品,开发团队是否聚焦非常关键,若一直持续做某一方向,或者持续专注于某类型数据库,其产品功能会更贴合用户需求。”
市面上的数据库工具既有免费的,也有付费的,亦有国外和国内的软件之分。在冯光普看来,“在工具成熟稳定、文档完善、用户社区活跃、团队无语言障碍、无信创合规风险的情况下,软件的国别不应该是一个需要考虑的选项。考虑到支持效率、沟通习惯、不可抗力,我们需优先考虑国内的软件。”
此外,国内互联网公司对于成本控制比较严格,商业软件采购流程并不友好,DBA比较难做最终决策,更多趋向于选择使用免费开源数据库,并搭建DevOps团队。
为团队选择最 佳的数据库工具
面向DBA,数据库运维管理类工具提供监控、备份、高可用、变更的功能;面向研发,数据库开发类工具提供设计、查询、优化的功能。优秀的数据库工具应该具备以下特点:易用性好,操作简单,易于观测,文档清晰;便于扩展,给用户一定配置自由,便于与内部系统集成。
凭借多年积累的行业知识和经验,冯光普推荐了几款优秀的数据库工具。包括:Navicate、phpmyadmin、Aliyun-DMS、prometheus、grafana、Yearning、SQLE、DTLE、PMM、OceanBase OCP、TiDB Dashboard、goInception等等。
Percona Monitoring and Management(PMM):Percona公司提供的MySQL、PostgreSQL、ProxySQL、MongoDB监控工具,支持自建数据库,及云数据库,包含监控配置命令行工具,具有实例元数据管理功能,并默认配置好了grafana图表,开箱即用。其缺点是集成的软件比较多,并以docker方式运行,升级版本可能会遇到各组件之间兼容性问题。
OceanBase OCP:一站式OceanBase管理平台,功能非常齐全,包含了几乎所有运维相关功能:资源管理、集群部署、租户管理、权限管理、参数配置、备份恢复、性能监控,同时提供了http API,方便用户集成到企业内部的数据库自动化平台,产品功能完整,设计风格简洁扁平,交互体验不错,没有明显短板。
TiDB Dashboard:除了很方便观测及诊断集群状态,还有两个特别好的功能,一是Top SQL,可以按照SQL指纹统计一段时间内的SQL模式、执行次数、执行时间,二是Key Visualizer热力图,直观展示了存在读写热点的表以及数据范围,这两个功能对于排查和优化性能相关问题帮助很大,若需将该工具与内部运维平台集成,有一定难度。
goInception:MySQL SQL审核工具,可以让DDL、DML变更符合数据库开发规范,控制变更风险,降低DBA与研发之间沟通成本,与内部数据库运维平台打通后效果更好,但有一定的集成开发成本,若需要带有Web UI的平台工具,可以直接使用Yearning。
虽然市面上主流的数据库工具已经发展的非常成熟,但仍然存在很多需要改进的地方。冯光普认为,“在集成及扩展,对接企业内部系统方面需要改进。针对数据库运维管理类的平台,往往会有独立的用户管理体系,但企业期望能复用内部已有的登陆鉴权体系及权限管理系统,并与内部审批流程打通,因此,若工具或者平台,在设计时能更多考虑‘容易被集成’,是可以提升用户体验和使用效率。”