正式定档!QCon 北京站改期为2024年4月11-13日,地点:北京·国测国际会议会展中心 >>> 了解详情
写点什么

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

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

评论 1 条评论

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

Java 并发基础(五):面试实战之多线程顺序打印

看山

Java并发

Seldon 使用 (二):打包模型

托内多

tensorflow kubeflow Kubernetes PyTorch seldon

微服务网关方案:Kong & Nacos

程序员架构进阶

架构 微服务 API网关 28天写作 4月日更

「架构师训练营 4 期」大作业一&二

凯迪

架构师训练营 4 期

hive的数据存储格式

大数据技术指南

hive 4月日更

企业上云一张网,华为将在分析师大会上亮出哪些大招?

脑极体

Python OpenCV 图片高斯模糊

梦想橡皮擦

Python OpenCV 4月日更

嘉云公司研发效能平台实践

小江

研发效能 CI/CD

TIOBE榜单四月已出:上古语言Fortran重回前20?

Bob

编程语言、 4月日更 Tiobe

css

赫鲁小夫

4月日更

浅析LSM-Tree存储模型

正向成长

LSM树 KV存储引擎

Docker 环境清理的常用方法

xcbeyond

Docker 4月日更

陪伴

小天同学

陪伴 育儿 个人感悟 4月日更

GitHub已爆火的Java突击手册,全面详细对标P7岗!真的很全面

比伯

Java 编程 架构 程序人生 计算机

计算机原理学习笔记 Day2

穿过生命散发芬芳

计算机原理 4月日更

架构师训练营 4 期 大作业

引花眠

架构师训练营 4 期

初入江湖,IT从业者应该如何选择?

云峰

深入剖析 | JVM-Sandbox核心源码

九叔(高翔龙)

JVM 中间件 类加载 Sandbox 类隔离

Dubbo 学习笔记(二) Spring Boot 整合 Dubbo

U2647

Spring Boot dubbo 4月日更

翻译:《实用的Python编程》08_03_Debugging

codists

Python

关于列表转字符串这个过程的曲折

ベ布小禅

4月日更

并发容器与并发控制 - JUC

学Java关注我

Java 编程 程序员 架构 计算机

吃透Nginx编译安装过程

书旅

nginx

「架构师训练营 4 期」大作业二

凯迪

架构师训练营 4 期

猫鼠游戏,一个刷票老千看在线投票项目的防范与取舍

ucsheep

安全 在线投票 防作弊 刷票

重读《重构2》

顿晓

重构 4月日更

华仔架构实战营 - 作业 - 模块2

曲元洪

架构实战营

AI数据科学认证-2021年的最佳选择 John 易筋 ARTS 打卡 Week 44

John(易筋)

ARTS 打卡计划

算法训练营 - 学习笔记 - 第二周

心在飞

taskwarrior ,一款提升效率的命令行的 TODO list 工具

Red

效率工具 TODO linux操作

PI的一种简写。

山@支

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