写点什么

“热搜”中的分布式数据库

  • 2022-02-15
  • 本文字数:2942 字

    阅读完需:约 10 分钟

“热搜”中的分布式数据库

“一个数据库包打天下的时代已经结束了”四川省农村信用社联合社信息科技中心高级工程师桂俊鸿在采访中表示。事务型、联机型、NoSQL、文档型、列式存储、时序数据库、图数据库……在近年来这些数据库热词背后,是数据库技术及产品在面向不同业务场景逐渐细化分类,发挥长处,最终助力企业实现数字化目标。由于传统数据库在扩展性、容量等方面不能满足日益增长的数字化需求,架构层面从集中式向分布式转型的分布式数据库及相关产品备受关注。

话题中心的分布式数据库

2021 年以来,业内关于分布式数据库的消息不休。GaussDB(for openGauss)全网商用、TiDB 5.0 版本发布、浪潮发布开源国产数据库 ZNBase 2021 发展规划、腾讯云发布首款全自研分布式分析型数据库 TDSQL-A、蚂蚁集团自研数据库 OceanBase 发布 3.0 产品及宣布开源、阿里云开源云原生分布式数据库 PolarDB-X 的源代码、OceanBase 通过工信部电子标准院首批开源项目成熟度评估……


兼容、开源、云……如今,行业内关于分布式数据库的讨论热点已经从是否会替代 Oracle,到底要不要替代 Oracle,分布式数据库是否可行,转为数据库迁移的最佳路径是什么,有哪些行业实践或者说高效做分布式数据库集群运维的手段、监控的手段等。


应用场景的不断丰富推动这种转变的发生,来自更多资本的关注也促进了分布式数据库产品的工业化程度在不断提高。桂俊鸿谈道:“从交易的角度来看,互联网数据在飞速增长,所以大家开始考虑分库分表、在分库分表的中间件中比如 MySQL 集群上做分布式,这种状态也可以理解为分布式数据库的一种形态。后来到原生分布式数据库,如 OceanBase、TiDB 开始出现。”


如果从技术维度上来看,数据库的核心技术其实一直以来都没有太大的变化。“谷歌三驾马车”的冲击让人们的关注度从传统数据库向 NoSQL 转移,后来由于 NoSQL 在联机事务性上的一些欠缺,SQL 开始在一些项目中慢慢回归。如今,数据库技术开始向联机和分析型结合的方向演进。“总体来讲,一个数据库场景包打天下的时代已经结束了,现在企业更多是通过企业级的数据架构进行整合,根据不同的场景选取不同的数据库产品,最后实现整个企业的数字化”桂俊鸿表示。

为什么企业都在关注分布式数据库?

桂俊鸿目前就职的四川省农村信用社联合社信息科技中心(以下简称四川农信)对数据库的选择上,也遵循着这样的发展规律。


2018 年,四川农信开始考虑全行 IT 架构向分布式转型。作为四川农信信息科技中心的高级工程师,桂俊鸿的工作内容也逐步从开发岗调整到了云平台的技术岗。作为团队核心技术专家,他参与到了分布式平台的选型。“这块涉及我们的 IaaS、PaaS、中间件、分布式数据库和云安全等方面,很荣幸,我是行内较早一批去学习、研究分布式选型的人之一,那个时候就了解到原生分布式数据库有很大的优势,未来可能会对我们的传统数据库有很多的冲击或者改变。”


2019 年对于四川农信的技术团队而言是关键的一年。这一年四川农信正式启动了分布式云平台实施项目,拉开了全行分布式 IT 架构转型的序幕。同样是在这一年的 10 月,一则消息引起了数据库行业的广泛关注:国际事务处理性能委员会(TPC)宣布,在最新发布的 TPC-C 排行榜中,蚂蚁集团自研数据库 OceanBase 位列第一。此时金融行业开始充分尝试分布式数据库的大型企业也越来越多,比如工商银行、建设银行、交通银行、民生银行等。多方面原因下,四川农信增强了对分布式数据库,特别是 OceanBase 的信心。


如今,OceanBase 是四川农信自有云平台“蜀信云”的重要数据库之一,支撑着云上重要交易型系统的稳定运行,是目前四川农信使用频次最高的分布式数据库产品。桂俊鸿也成为了阿里云 OBCP 的认证专家。在他看来,OceanBase 主要为四川农信解决了 5 方面的难题:


  1. 异地强一致性和高可用性,可以支撑异地多活单元化架构(容灾、突破地域机房瓶颈);

  2. 多租户带来的数据资源池化管理,能够节省资源,并且横向扩展灵活;

  3. 备份恢复更方便,更高效;

  4. OMS 和 DataX 结合起来,基本解决了跨集群、跨数据库的数据同步问题;

  5. Oracle 兼容性方面,为后续存量系统迁移上云做了预先的技术储备。


举例而言,在四川农信未来的“三地四中心五节点单元化”数据中心规划中,客户相关数据按照客户号做了百库百表的水平拆分,每一个数据分片都有 5 个副本,存储在三个城市四个数据中心的五个数据库节点中,每次写操作都至少同步 3 个副本,从而实现异地容灾;同时,每个分片的 leader 都分散在四个机房,关联分片的绝大部分交易也都收敛在 leader 所在机房进行处理,避免了跨中心的数据访问,从而可以达到异地多活。桂俊鸿介绍道:“比如说成都整个机房故障后,因为 OceanBase 提供了多副本强一致和高可用能力,可以通过 Paxos 选主,将成都两个数据中心的数据主节点切到雅安机房;然后,通过流量调拨把流量从成都机房切到雅安机房,这样整个流量就全部到雅安去了。雅安可以接管成都的流量,实现了异地容灾和高可用。”


从个人的实践经验来看,他更关注数据库产品的兼容性、存储引擎的类型、数据库的架构和技术生态。根据四川农信的技术实践经验,他也提供了一些企业选择分布式数据库产品的选择指标,比如    RPO、RTO、分布式事务能力、性能、SQL 兼容性、横向扩展能力、数据负载均衡和动态迁移能力、副本粒度(数据分区)、运维管理能力(配套工具的成熟度)等。


当然,不同企业对数据库的关注点不同,传统企业更关注数据库的稳定性、容灾等,互联网企业更关注成本、开源生态、高性能等。数据库作为对企业而言承载着数据资产的重要软件产品,需要保证数据的安全可靠、系统在高并发下的稳定性、数据的强一致性等。在桂俊鸿看来,分布式数据库备受关注根本原因在于容灾、多活和强一致性的特性。

从传统数据库到分布式数据库,传承还是升级?

不过,对比传统数据库,分布式数据库由于自身架构的特点,在事务保障能力、SQL 引擎的成熟度、批量能力等方面,会稍有弱项。“相对于传统数据库,分布式数据库对应用开发人员的要求更高,对 SQL 的限制性和规范性要求更多。应用开发人员在设计中需考虑分布式数据库的优势和劣势,尽量将复杂的逻辑放在应用层处理,SQL 尽量简单,避免使用存储过程、触发器等复杂的特性” 桂俊鸿谈道。


目前传统数据库依然在很多企业中发挥作用,尽管分布式数据库的技术先进性不可忽视,两者之间的关系也并非已有胜负之分。不同的企业、不同的行业、不同的业务场景下,企业在按照自身的业务诉求,选择不同的数据库技术或者数据库产品。随着分布式数据库的不断迭代和大规模应用,相信上面提到的一些弱项会在未来进一步得到完善,分布式数据库的应用也会越来越广泛。值得一提的是目前 OceanBase 原生分布式数据可以通过 PC 服务器实现绝大多数原来传统数据库的功能,同时通过 LSM 压缩技术等,单这一点为企业带来的成本节省就非常可观。


在云计算的大趋势下,数据库行业正迎来蓬勃的发展时机。在桂俊鸿看来,面临这么大的市场,那么多的场景等着开拓,数据库是大有可为的,但是更需要练内功。“关系型数据库多少年来从技术上来说很多年没有大的进展了。一是和新型硬件的结合上,在专用场景的支撑上,是否可以努力做创新。我觉得每个产品应该有一个自己的定位,不要盲目跟风,做精自己最擅长的领域,做好客户体验,真正帮客户解决痛点,与客户一起成长。”

2022-02-15 14:245858

评论 1 条评论

发布
用户头像
怎么没评论
2022-02-17 00:09
回复
没有更多了
发现更多内容

谈 C++17 里的 Observer 模式 - 3

hedzr

c++ 算法 设计模式 观察者模式 Design Patterns

网络攻防学习笔记 Day142

穿过生命散发芬芳

数据中心 9月日更

Linux常用命令

在即

9月日更

SpringBoot-自动配置-源码解析,做了5年Java

Java 程序员 后端

☕️【Java专题系列】「回顾 RateLimiter」针对于限流器的入门到精通(针对于源码分析介绍)

洛神灬殇

ratelimiter Guava 9月日更 限流器

SpringBoot2---指标监控,Java架构师之路

Java 程序员 后端

那段记忆中的声音:单式评书再现江湖背后的AI技术

脑极体

Opus从入门到精通(七)Opus编码基础之认识声音

轻口味

android 音视频 9月日更

0x00 Go参考

Uasen_

HarmonyOS 鸿蒙登录页搭建及 Text 文本详解

阿策小和尚

HarmonyOS Android 小菜鸟 引航计划 9月日更

高峰应对记录

编号94530

Spring Boot 2 性能压测 测试发开 高峰应对

模块八作业

秀聪

架构实战营

架构实战营模块三

WolvesLeader

「架构实战营」

springboot文件上传下载实战 —— 登录功能,「高并发秒杀

Java 程序员 后端

架构实战营第八模块作业

子豪sirius

架构实战营

ES知识总结

十二万伏特皮卡丘

JVM启动参数学习笔记二

风翱

JVM 9月日更

这些 JS 中强大的操作符,总有几个你没听说过

前端下午茶

JavaScript 代码设计 代码技巧 基础知识

springboot文件上传下载实战 ——文件上传(1),想搞定大厂面试官

Java 程序员 后端

JavaScript进阶(五)节流

Augus

JavaScript 9月日更

【LeetCode】最长递增子序列Java题解

Albert

算法 LeetCode 9月日更

云随想三 2B软件的机遇与挑战?

FLASH

云时代 2B软件

Python 千猫图,简单技术满足你的收集控

梦想橡皮擦

9月日更

架构训练营模块三

yphust

产品分析:解决什么问题?

石云升

产品经理 9月日更

SpringBoot之配置文件,Java开发教程入门

Java 程序员 后端

SpringBoot整合Redis,怎么实现发布-订阅?,一个回答引发热烈讨论

Java 程序员 后端

架构师训练营 2 期模块三作业

kazeMace

架构实战营

springboot文件上传下载实战 ——文件上传,Java入门

Java 程序员 后端

MySQL 从入门到实践,万字详解!

前端下午茶

MySQL 数据库 大前端

项目管理实践篇(二):技术型PM炼成记

后台技术汇

项目管理 管理 引航计划 内容合集 管理领域

“热搜”中的分布式数据库_语言 & 开发_张俊宝_InfoQ精选文章