写点什么

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

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

评论 1 条评论

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

只知道预制体是用来生成物体的?看我如何使用Unity生成UI预制体

恬静的小魔龙

游戏开发 Unity 游戏引擎

活动报名 | 玩转 Kubernetes 容器服务提高班正式开营!

阿里巴巴云原生

阿里云 容器 云原生 训练营 课程

大话DevOps监控,团队如何选择监控工具?

龙智—DevSecOps解决方案

DevOps 监控 监控软件

JAVA编程规范之SQL 语句

源字节1号

前端开发 后端开发

【龙智技术指南】Helix4Git简明使用手册

龙智—DevSecOps解决方案

Helix Core Helix4Git

游戏背包系统,“Inventory Pro插件”,研究学习-----妈妈再也不用担心我不会做背包了(Unity3D)

恬静的小魔龙

游戏开发 Unity 插件 游戏引擎

异步Servlet在转转图片服务的实践

转转技术团队

Servlet 异步

用Unity不会几个插件怎么能行?Unity各类插件及教程推荐

恬静的小魔龙

游戏开发 Unity 插件 游戏引擎

常见WEB攻击与防御

南城FE

前端 WEB安全 7月月更

C# 类库的生成,使用类库对象对DataGridView 进行数据绑定

IC00

C# 7月月更

【高并发】如何实现亿级流量下的分布式限流?这些理论你必须掌握!!

冰河

并发编程 多线程 高并发 协程 异步编程

让运动自然发生,FITURE打造全新生活方式

科技热闻

擎创科技加入龙蜥社区,共建智能运维平台新生态

OpenAnolis小助手

开源 操作系统 龙蜥社区 CLA 擎创科技

Qt|QLable多行展示时更改行间距

中国好公民st

qt 7月月更

推荐系统-协同过滤在Spark中的实现

vivo互联网技术

spark 推荐系统 协同过滤

玩游戏想记录一下自己超神的瞬间?那么就来看一下如何使用Unity截图吧

恬静的小魔龙

游戏开发 Unity 游戏引擎

如何判断静态代码质量分析工具的性能?这五大因素必须考虑

龙智—DevSecOps解决方案

静态代码分析 代码静态分析 静态代码安全

语音聊天app源码-钠斯网络源码出品

开源直播系统源码

语聊房 直播系统源码 开源源码 语音聊天系统

Linux常用命令

五分钟学大数据

Linux 7月月更

同事看了我的代码惊呼:居然是这么在Unity中用单例的

恬静的小魔龙

游戏开发 Unity 单例模式 游戏引擎

Android内存溢出

沃德

android 7月月更

QCon 大会广州站它来了!独家定制双肩背包等你领取!

InfoQ写作社区官方

Qcon

【策略模式】就像诸葛亮的锦囊

掘金安东尼

前端 设计模式 7月月更

我为OpenHarmony 写代码,战“码”先锋第二期正式开启!

OpenHarmony开发者

OpenHarmony

【IJCAI 2022】参数高效的大模型稀疏训练方法,大幅减少稀疏训练所需资源

阿里云大数据AI技术

深度学习 模型稀疏训练

任何时间,任何地点,超级侦探,认真办案!

龙智—DevSecOps解决方案

Jira Atlassian Jira Jira插件

阿里云技术专家秦隆:可靠性保障必备——云上如何进行混沌工程

阿里云弹性计算

分布式系统 混沌工程 故障演练

STM32+HC05串口蓝牙设计简易的蓝牙音箱

DS小龙哥

7月月更

Qt | 鼠标事件和滚轮事件 QMouseEvent、QWheelEvent

YOLO.

qt 7月月更

2022 年中回顾|一文看懂预训练模型最新进展

澜舟孟子开源社区

人工智能 自然语言处理 算法 nlp 预训练模型

idea / eclipse 配置 Tomcat 并发布 Web 项目

攻城狮杰森

eclipse tomcat IDEA javaWeb 7月月更

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