面试官:如果你是架构师,GoldenDB 和 openGauss 选择哪个?
大家好,我是君哥。
国内信创改造做数据库选型时,GoldenDB 和 openGauss 是经常会用到的数据库,今天来聊一聊这两款数据库该怎样选型。
1. 区别
1.1 架构
openGauss 是一款开源关系型数据库,单机系统,支持主备部署。下面是官网的逻辑架构图:
其中 OM(Operation Manager)是运维管理模块。客户端驱动直接与 openGauss 实例通信,发送应用的 SQL 命令,接收 openGauss 实例的执行结果。它具有如下特点:
单机部署:架构简单,部署容易,更关注单节点的性能和稳定性;
扩展性:不能自动进行水平扩展,需要通过外部中间件(如ShardingSphere)来做协调节点,实现水平扩展;
高可用:因为是单体数据库,需要通过主备复制来实现高可用。
GoldenDB 是一款分布式数据库,架构图如下:
客户端通过负载均衡,访问到了数据库集群。然后需要经过计算节点进行语法分析、SQL 优化,生成执行计划,最后才会下发到数据节点。特单如下:
分布式部署:采用计算、存储、协调分离的分布式架构。但是部署、运维相对复杂;
扩展性:通过增加数据节点实现存储能力和处理能力的水平扩展,在业务增长快的场景下非常适用;
高可用:数据多副本,如果整个数据节点故障,计算节点可以将请求路由到其他节点。同时具备同城双活、异地容灾的能力。
1.2 适用场景
因为有分布式事务强一致、数据高可靠、服务高可用的特性,目前 GoldenDB 主要应用在金融行业和运营商核心系统、以及金融级别交易场景等对一致性要求较高的场景。
GoldenDB 完全兼容 MySQL 语法,在信创改造中,MySQL 数据库往往会考虑迁移到 GoldenDB。
openGauss 做为一款关系型数据库,在金融、运营商行业同样有广泛的应用,交易场景使用较多。用于存储和管理大量的用户数据、通话记录、网络数据等。也可以用在数据仓库和 OLAP 场景。
openGauss 基于 PostgreSQL 9.2 进行研发,在信创改造中,Oracle 数据库迁移更多会考虑 openGauss。
1.3 成本
GoldenDB 是商业数据库,需要获得商业许可,涉及核心业务时,选择 GoldenDB 可能会选择分布式架构、弹性扩缩容、高可用性和容灾能力,这些方面都让选择 GoldenDB 的成本升高。
openGauss 则是采用协议“木兰宽松许可证”(Mulan PSL V2),用户可以自由复制、使用、修改、分发。也就是说软件本身是免费的,当然也有基于 openGauss 的商业数据库,比如 MogDB、Vastbase 等。
1.4 社区和生态
GoldenDB 是商业数据库,生态主要由中兴通讯及其合作伙伴构建,社区活跃度和第三方工具集成度相对较低。使用 GoldenDB 需要有专业的厂支持。
openGauss 是开源数据库,开源是最大优势。openGauss 拥有非常活跃的开源社区,有大量开发者、企业和学术机构参与。工具链、监控、信创迁移等工具等在社区推动下快速发展。
2.总结
GoldenDB 和 openGauss 虽然都是非常典型的国产数据库,但他们的定位有明显的区别,选型时需要根据实际的业务场景、成本预算、团队情况、监管要求等方面来做选择。
从 MySQL 迁移到 GoldenDB,上来就踩了一个坑。
面试官:MySQL BETWEEN AND 语句包括边界吗?
面试官:MySQL Redo Log 和 Binlog 有什么区别?分别用在什么场景?
感谢阅读,如果对你有帮助,请点赞和在看。欢迎加我微信:zhujinjun86。
号内回复 seata,下载《阿里分布式中间件Seata从入门到精通》
号内回复 beijing,下载我总结的北京上百家知名科技公司
号内回复 aqs,下载《40张图精通Java AQS》