NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

  • 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:245717

评论 1 条评论

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

为什么说:被观察者是 push 数据,迭代者是 pull 数据?

掘金安东尼

前端 函数式编程 8月月更

SpringBoot 整合 Junit

springboot junit5 8月月更

来聊聊 OpenJDK 和 JVM 虚拟机

HoneyMoose

《博弈论》— 人生何处不博弈

蔡农曰

读书笔记 博弈论

程序员最容易读错的单词,听到status我炸了

艾小仙

Java 前端

【算法实践】| 手把手带你实现快速排序算法

迷彩

快速排序 算法实践 8月月更

leetcode 560. Subarray Sum Equals K 和为 K 的子数组(中等)

okokabcd

LeetCode 算法与数据结构

Latex安装教程(附美赛论文latex模板)

乌龟哥哥

8月月更

Excelize 发布 2.6.1 版本更新,支持工作簿加密保护

xuri

开源 数据分析 Go 语言 Excelize Excel工具

Curve Testing Camp Time|万元大奖等你来拿!

张慧

分布式存储 curve

Kubernetes中API安全加固

CTO技术共享

【Java】:二维数组的定义、初始化、长度以及循环遍历等...

翼同学

Java 学习 编程语言 分享 8月月更

RocketMQ高可用设计之消息重试机制

急需上岸的小谢

8月月更

Teambition是什么软件?优缺点是什么?

PingCode

项目协作工具

golang实战之flag包

程序员欣宸

golang 8月月更

最新版MySQL8 绝对有用的lag函数实现同比、环比、均差计算

知识浅谈

MySQL 8月月更

Kubernetes 真的在蚕食云吗

CTO技术共享

电商秒杀系统设计(架构实战营 毕业设计项目)

Gor

架构实战营 毕业总结

Gor

头脑风暴:最大子序和

HelloWorld杰少

数据结构 算法 LeetCode 8月月更

数据治理(六):编译Atlas安装包

Lansonli

数据治理 8月月更

一对一语音直播系统源码——如何解决音视频直播技术难点

开源直播系统源码

软件开发 直播系统源码 语音直播系统源码 语音直播源码 一对一语音直播

P6项目管理系统的优缺点是什么?

PingCode

项目管理 项目管理软件

C++多态之析构和纯虚析构分析与示例(三)

CtrlX

c++ 后端 面向对象思想 8月月更

[JS真好玩] 遇到表格,手动翻页太麻烦?我教你写脚本,一页展示所有数据

HullQin

CSS JavaScript html 前端 8月月更

基于STM32L431设计的云端绿化管理系统(ESP8266+腾讯物联网云平台)

DS小龙哥

8月月更

【Gopher 学个函数】边学边练,简单为 Go 上个分

梦想橡皮擦

Python 爬虫 8月月更

网信办将全面规范打赏连麦等功能,必须监督好平台和MCN机构

石头IT视角

kubernetes镜像构建和扫描

CTO技术共享

软件测试中的树莓酱定律

BY林子

软件测试 敏捷测试 质量内建

阿里云林小平:如何实现应用的持续发布?

阿里云弹性计算

持续发布 应用 自动化运维

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