AICon议程上新60%,阿里国际、360智脑、科大讯飞、蔚来汽车分享大模型探索与实践 了解详情
写点什么

从蚂蚁集团技术实践看数据库协同开发的现状和发展趋势

  • 2023-04-07
    北京
  • 本文字数:7286 字

    阅读完需:约 24 分钟

从蚂蚁集团技术实践看数据库协同开发的现状和发展趋势

我是陈小伟, 2019 年加入 OceanBase,目前负责 OceanBase 开发者中心的研发。 OceanBase ODC 这几年从一个数据库图形化客户端工具逐渐变成一个面向协同开发场景的管控平台。我也看到这几年数据库行业内配套的开发工具也正好是有一些类似的变化,于是形成一个观察,数据库协同开发已经成为趋势。


OceanBase ODC 这几年从一个数据库图形化客户端工具逐渐变成一个面向协同开发场景的管控平台。我们也看到这几年数据库行业内配套的开发工具也正好是有一些类似的变化,于是形成一个观察,数据库协同开发已经成为趋势。


为什么?下面我会从三方面进行叙述。


另外在正文开始前,说明一下本文我想跟大家聊四个部分:第一部分是数据库行业现状,毕竟作为数据库的开发工具,要解决的还是使用数据库的问题。在第二部分我们从现状去看目前在数据库使用过程中有哪些挑战,以及说我们的用户是如何去应对这些挑战的,这里也会包含蚂蚁集团是如何应对这些挑战的。第三部分我们基于对国内市场、海外市场常见工具的观察得出结论。第四个部分会结合数据库行业的变化对趋势做进一步洞察。

数据增长带来一系列变化

可以认为,近些年在数据管理领域的很多挑战根本原因都可以归结到数据快速增长。

数据快速增长

国际调研机构 IDC 发布的《数据时代 2025》预测,全球数据总量将从 2018 年的 33ZB 增至 2025 年的 175ZB,增长超过 5 倍,这里结构化数据大概占 10%。信通院的报告显示,中国数据库市场规模近几年保持 25% 左右的年增长率。



表面上我们看到的是数据存储规模在快速增加,数据库市场规模在不断增长。


我们服务的的用户场景有一些具体的例子:


  • 某电商系统使用 60 个节点的数据库集群,每个节点数据规模 20TB 左右,总数据规模超过 1PB;

  • 某金融系统使用的数据库表数量达到 20W,列数量达到 400W;

  • 某金融系统使用的分区数量达到 100W;

  • 某制造业系统使用的 PL 程序包数量达到 4K 个;


数据库开发者的视角来看,或者说从数据库开发工具的视角来看,我们其实看到的是这背后数据库的实例数量,数据库实例内存储的对象的数量,使用数据库的业务系统的数量,以及说数据库厂商的数量,数据库从业人员数量 都是在不断的增长。那我们知道变化这个事情啊,量变逐渐逐渐的是会产生质变的。数据库这个使用过程当中啊伴随着上述的诸多变化,而其实就带来了诸多的一些问题,实际上可以认为, 近些年在数据管理领域的很多挑战根本原因都可以归结到数据快速增长

数据库是稳定性基石

数据快速增长,数据库稳定性问题导致的故障也越来越严重。


这里我们看几个具体的例子:


1、2016 年,某社交网络应用的一名工程师在修改一条 SQL 查询时犯了一个错误,导致了该公司的服务在全球范围内停机。该错误导致了数据库中某些表的数据无法访问,最终导致了整个系统的故障。


2、2017 年,某电商企业曾因一次故障而导致其 S3 服务在美国东部地区停机。事后调查发现,该故障是由一个错误的删除指令引起的,这个指令本来只想删除一小部分数据,但由于编写了烂 SQL,结果导致了整个数据中心的数据丢失。


3、2018 年,某云厂商的云存储服务出现了一个故障,导致一些客户的数据无法访问。调查后发现,这是由于一个工程师在修改数据库的查询语句时犯了一个错误,导致了整个服务出现了故障


这几个例子是 ChatGPT 帮我找的,我其实也问了中国大陆地区的情况,但是 ChatGPT 的回复是也有很多例子,但是不能够告诉我具体的公司名称,看来目前还是很保护中国大陆厂商的面子的,这背后不知道是否有团队在帮助做一些工作。 实际上这些例子我们去看,比如 烂 SQL 导致的系统不稳定,在数据规模不大的时候都不成为问题。但是目前的趋势就是数据规模越来越大,这个时候数据库作为保障信息系统稳定性的重要兜底装置,身上的担子就越来越重了。

更加严格的合规监管

数据快速增长,应用数量也不断增长,个人、企业的敏感数据流通范围更广了,数据带来的隐私泄露问题也越来越严重。这几年我们国家从顶层设计、法律法规、行业规范、企业自主意识方面都对敏感数据保护越来越重视。


这里列举了一些近些年我们国家颁布的一系列关于保障信息安全的法律法规和行业标准。


1、《中华人民共和国网络安全法》:2017 年 6 月 1 日生效,包括对个人信息的收集、使用、存储和保护等方面的规定,对违反规定的行为进行了明确的处罚。2、《中华人民共和国个人信息保护法》:2021 年 11 月 1 日生效,是中国大陆地区首个专门针对个人信息保护的法律。该法规明确了个人信息的定义、处理规则、权利保护和责任追究等方面的内容。3、《中华人民共和国电子商务法》:2019 年 1 月 1 日生效,包括对于个人信息的收集、使用、管理、安全保障等方面的规定,针对电子商务领域的个人信息保护进行了规范。4、JR/T 0223-2021《金融数据安全数据生命周期安全规范》。5、 WS/T 78802021 《国家卫生信息资源使用管理规范》。


在数据安全之中,数据库扮演至关重要的角色,保证数据不泄露、丢失。数据不丢失是由 ACID 来保障的,不泄露则需要业务应用系统来和管理工具一起保障,我们了解到很多客户已经开始重视这个问题,但是正在寻找解决方案。解决方案并不普及,可以看出目前行业的方案还比较不成体系,配套的开发工具也不够成熟。

协同角色变化

数据量在快速增长,数据库实例数量在快速增长,行业的从业人员也在快速增长,但是不同角色并不是等比例去增长。在十几年前,一个 Oracle DBA 管理的数据库实例规模在 25 个左右,总数据规模在 5TB 左右。那么到现在的数据规模,你会发现如果按照之前的模式,DBA 数量是远远不够的。此外我们发现数据分析师角色人数逐渐在增长,不同角色在和数据库打交道的时候工作方式是不一样的,比如数据分析师几乎不会去用 Java 连数据库做事务提交,更多的是写 SQL、Python 脚本等,然后在团队内也有协同的诉求。从比例去看,DBA 和 总协同人数的占比甚至小于 1/100,在大型互联网公司,这个比例已经接近 1/1000。


下表是我们选取了 OceanBase 服务的用户场景的数据库开发协同过程不同角色的人员规模,出于保护客户信息的需要,这里的人数是一个近似值而不是准确值。


这里 DBA 人数大型互联网公司的比例是很夸张的,从数量级来说已经接近 1/1000,但实际上还有一个统计口径的原因。我们从招聘统计数据发现 SRE 岗位需求已经超过 DBA 的岗位需求,其中数据库 SRE 和 DBA 的职责其实类似,DBA 更关注数据库本身,而数据库 SRE 更注重整个系统的可靠性和性能。从大型互联网企业的情况看,安全稳定保障和业务功能开发的人员占比大概是 1:10 ~ 1:5 左右。

应对挑战各有各招

伴随数据增长产生了很多变化,这些变化导致各类风险的出现或者加剧,我们观察到的挑战包括以下 3 个类别。


  1. 系统稳定:数据量不断增长,对数据库稳定性带来风险,烂 SQL 的代价比以往更大、数据备份恢复压力凸显;

  2. 协同效率:数据库数量不断增长,DBA 工作负担越来越重,权限配置和 SQL 审核效率亟需提升;

  3. 数据安全合规:政府和行业监管对数据安全合规越来越严格,企业本身对隐私数据保护也越来越重视,缺少有效的数据安全防护机制,合规风险之雷必须尽快排查。

解决方案列举

应对风险,不同行业、不同规模的企业也采取了很多办法,可以说是各有各的招,这里举一些典型的实践方案:


  1. 大型传统企业通常采购数据库特权访问系统,基于特权系统的权限管控、SQL 审核等功能,数据库特权访问管理系统通常也叫做数据库堡垒机,会和数据库客户端工具集成来实现权限管控,通常这些功能更多的应用于生产环境而不是开发环境;

  2. 大型互联网企业通常选择自研平台,有独立团队负责开发维护数据库管控平台,对数据库变更过程、运行过程进行全流程管控;

  3. 中小型企业私有云大量采用开源组装,开源产品选择面比较多,但是通常单一开源产品支持的数据库类型比较单一功能也不够丰富,所以需要进行组装;

  4. 中小型企业公有云直接依托云服务厂商提供的内置服务,比如阿里云 RDS 的用户直接使用 DMS。

蚂蚁集团实践

蚂蚁集团数据库开发的协同过程整体是面向业务 Developer 视角来看的,因为业务侧才是需求方。下图是 Developer 和 DBA 的协作模型,DBA 负责资源规划和审批、部署运维、监控诊断、故障处理、变更审核,开发者负责资源申请、数据库变更。其中资源申请、权限申请、数据库变更等关键操作需要业务方负责人和业务归口的 DBA 审核确认后才可以执行。



一个典型的过程 Developer 根据业务规划在 ODC 界面申请数据库资源,DBA 看到申请单之后完成审核,此时 ODC 会调用 OCP 生成租户并授权给 Developer。


这里列举蚂蚁集团 DBA 日常工作中使用的几个主要的系统:


  1. AntMonitor/OCP: 监控告警;

  2. HNBC:容量大盘和调整迁移;

  3. Tars:SQL 诊断故障自愈;

  4. DLM:数据生命周期管理、历史库、归档 等;

  5. ODC:数据库开发平台。


上述系统大部分是 DBA 使用,Developer 和 DBA 协同的主界面则是 ODC。除了基本的资源申请和变更管控,ODC 还提供了一系列用于保障数据安全稳定的功能,比如风险识别、高危操作管控、勿删应急等功能。



这里也分享一些蚂蚁集团数据库开发协同相关的具体数字和经验:


  • DBA/Developer 占比大约为 1:600,每名 DBA 需要服务 300~400 个应用;

  • 90% 以上的变更工单是业务自己审批,需要 DBA 审批的高风险变更占比不到 10%;

  • 最常见风险包括 不合理的索引修改、变更影响范围过大等。

协同开发是演进趋势

我们调研分析了一些数据库开发工具,范围涉及国内市场、海外市场,包括云服务和桌面软件,有商业工具也有开源免费的工具,通过这些工具我们可以发现协同开发逐渐成为主流。

国内市场工具产品


我们看到这两年有一些新的产品出现,比如 Bytebase、NineData 等。


其中作为云厂商基础设施的,最典型的是 DMS,DMS 是阿里云的数据库开发安全管控产品,类似的还有华为云的 DAS 等。


MySQL 生态,有不少开源工具产品也被大范围的使用,典型的如 Yearning、SOAR、See 等。


Yearning 支持自动化 SQL 语句审核,可对 SQL 进行自动检测并执行、DDL/DML 语句执行后自动生成回滚语句、审核/查询 审计功能、支持自定义审核工作流、支持细粒度权限分配。


SOAR(SQL Optimizer And Rewriter) 是一个对 SQL 进行优化和改写的自动化工具,由小米人工智能与云平台的数据库团队开发与维护。支持 MySQL 语法族协议的 SQL 优化、支持基于启发式算法的语句优化、支持复杂查询的多列索引优化、支持 EXPLAIN 信息丰富解读、支持 SQL 指纹、支持自定义规则的 SQL 改写。


See 把 Inception、SQLAdvisor、SOAR 整合到一起,看起来是个人项目,相比 Yearning 提供更多功能,比如支持 SQL 优化建议,社区活跃度较低。


SQLE,是爱可生开源的一款面向数据库使用者和管理者的 SQL 审核工具,旨在规范 SQL 审核上线流程,提高 SQL 质量。


NineData 的定位更接近云厂商的数据管理服务,SaaS 形态。

海外市场工具产品


Toad 深受 Oracle 用户喜爱,作为一个适配 Oracle 的图形化客户端, Toad 相比 PL/SQL Developer 更加现代,功能也更全面。ApexSQL 功能更加丰富,特别是对 SQL Server 的支持特别完善,Toad 是 Quest 公司的产品,2019 年 Quest 收购了 ApexSQL。Quest 还曾经被 DELL 收购后来又独立出来了。


Red-Gate 支持的数据库类型很多多,提供 SQL Server、Oracle、MySQL、PostgreSQL 数据库的管理和开发功能,支持 数据库比较和同步、备份恢复、版本控制等,国内开发者使用比较多的 Schema migration 工具 Flyway 就是 Red-Gate 开源的产品。


Devart 提供多种数据库管理工具,支持 SQL Server、MySQL、Oracle、PostgreSQL、SQLite 等数据库,提供了查看、编辑、比较、同步、安全管理等多种功能。Skyvia 也是 Devart 公司的一款云数据集成平台,用于将不同的数据源整合在一起并进行数据转换、同步、备份和恢复等操作,Skyvia 支持多种关系型数据库和云数据库。Devart 更专注于数据库管理工具,而 Skyvia 更专注于数据集成和转换平台。


Cloud DBeaver 是 DBeaver 的 WEB 化产品,目前功能还比较简单,但是可看出老牌数据库开源工具项目往云服务和云原生转型的行动,最近 DBeaver 还集成了 OpenAI,这是另一个热点了。


EverSQL 提供 SQL 检查和优化功能,SaaS 形态,宣称有 10W 个用户,主张通过优化 SQL 帮助用户省钱。

全球市场工具产品

这里举两个比较特殊的产品,Navicat 和 Bytebase,这两个产品可谓各有典型性。


作为广受开发者喜欢的数据库图形化客户端工具,Navicat 给大家的印象更多时候是一个面向个人开发场景的工具。实际上 Navicat 也提供了协同能力,如 Navicat Cloud 和 Navicat Server,可以让用户在不同的设备和团队中共享和协作数据库。用户可以将数据库文件保存到 Navicat Cloud 中,从任何设备上访问和编辑数据库。Navicat Server 则提供了一些高级功能,如用户管理、权限控制和版本控制等,可以帮助团队更好地管理和保护数据库。


Bytebase 是 2021 年国内团队做的数据库协同开发工具,也是开源模式,高阶功能需要收费。基于项目进行协同,以数据库对象为管控目标。Bytebase 也提供 SQL 检查、数据库变更流程、Git 集成、备份恢复 等功能。

数据库开发工具趋势洞察

作为数据库开发工具,我们在最开始看到是数据增长带来了一系列变化,并且因此带来了系统稳定、协同效率和安全合规三个方面的问题。这个是大的趋势,我们认为数据库开发工具需要去解决这些重要的问题,但是具体到数据库开发工具还需要去做哪些考量,我们不能脱离数据库行业整体的一个格局和趋势。所以首先我们来看数据库行业的一些现状以及趋势。

海外市场仍是主流

刚开始看到 DMS 的时候,我其实觉得还挺强大的,不仅支撑了阿里巴巴、蚂蚁集团大规模业务场景下的数据库协同,也适用于各种阿里云数据库产品的开发和管控,功能非常全面。并且我也去找了国外的竞品,比如 AWS/Azure 等产品并没有类似的 DMS 这样强大的数据库管控功能。我会产生一个错觉,我们国家是领先世界的,因为我们人口多,所以我们数据多,所以我们的场景最复杂,就类似微信、支付宝这样的覆盖 10 亿以上用户的 App,大部分国家就没有机会做出来,不是能力不够,而是环境条件不具备。那么作为入行不久的数据库行业的从业者,我差点也以为,我们是领先世界的,不仅仅是在分布式数据库内核领域,在数据库协同工具层面也是一样。


那么事实果真如此吗?数据库全行业看,2021 年全球数据库市场规模为 697 亿美元,其中中国数据库市场规模为 47 亿美元(约合 305.8 亿元人民币),占全球 5.2%;美国开源与商业数据库数量基本持平,我国商用和开源占比分别为 83.4%和 16.6%;国内 MySQL 生态为主,海外 PostgreSQL 生态更活跃;国内数据库协同开源项目较多,海外开源项目以面向个人开发者为主,商业数据工具普遍在往 DevOps 方向发展。

混合云和多云

混合云和多云的发展可以说是客户驱动云厂商在做产品形态变化,中大型客户不再愿意被一家云厂商绑定。我们看到越来越多的行业场景在做应用架构、数据库架构的时候,混合云和多云成为趋势。这里混合云指的是公有云和私有云混合使用,此时云厂商一站式解决方案不再可用。


HTAP 和多数据源

如果你有关注这几年声量最响的一些数据库创业公司,可以发现大家都在谈 HTAP,HTAP 是数据库新势力必争之地。为什么这么说,因为 TP 和 AP 都有非常优秀的产品在做了,其中有一些还有显著的优势,那么我们是选择做一款更加厉害的 TP 产品好呢还是做一款更加厉害的 AP 产品好呢?每个厂商有自己的答案,对于 OceanBase 而言,我们相信 TP 和 AP 都可以,首先 TP 是我们的优势,而 AP 我们也做的不差,那就是 HTAP。话虽如此,当时实际上这个过程没有那么简单,有很多问题需要去解决,我们可以预见在几年之内,TP+AP 混合场景仍将是主要场景。但是无论是 TP+AP 还是 HTAP 都对开发工具提出了新的要求,实际上是一套库还是多套库不是最关键的,最关键的是数据协同的角色,写数据的人和分析数据的人会比以前更加紧密的去协同,这个时候数据库开发工具就需要具备相对应的一些能力,这里列举了几个我认为可能比较重要的。


  • 数据同步;

  • 全局对象检索 Metadata Catalog;

  • 多角色协同。

趋势解读

上面我们讲了市场格局、混合云和多云的趋势、还有 HTAP 或者说 TP + AP 这些新的场景,这里我们汇总一些具体到数据库开发工具方向,未来会是怎样的趋势,我判断会有 5 个趋势。


  • 个人开发--> 多角色协同开发,这是是我们今天讲的核心,数据库协同开发会越来越流行。


  • Developer Tool --> Data Operation Platform,这一点是对协同开发的延伸,从开发工具到数据协同平台,这里有个概念叫做 DataOps 目前为止还不是那么清晰,Gartner 去年的报告对 DataOps 领域做了一些解读认为说未来三到五年会形成一个清晰的市场,然后我们也看到信通院的大数据标准化推进委员会也在牵头做 DataOps 相关的概念讨论。关于这一部分坦白讲我也没有看明白,因为实际上我们都还没有看到有哪个具体的产品就已经可以自圆其说是一个 DataOps 领域的解决什么问题的产品。DevOps 这个概念从出来到大家大致都了解也是有很漫长的过程,那么直到现在我认为 DevOps 也没有解决新的问题,开发、测试、运维这些问题还是由对应的工具在帮助解决。


  • TP + AP & HTAP 场景支持,我们会看到数据库开发工具会兼具 TP 场景和 AP 场景下的功能。


  • 集成和被集成,集成主要是账号系统、审批系统的集成,被集成则是需要产品能够提供 API 易于二次开发。


  • 开源 和 SaaS,这一条是我认为从 2 个方面去看,一个是云,目前哪怕国内市场数据库 60% 以上的份额已经在云上了,然后大家还不愿意被一家云厂商绑定了,所以跨云的 SaaS 是很自然的结论;另一个方面软件业的开源趋势应对全球市场的优势,特别是在现在跨地域、跨云的场景下,在数据管理领域,被全球更广泛的客户信任非常重要,那么你的服务形态一定是 SaaS,然后你还需要用最低的成本获取更多地区的客户信任,答案就是开源了。所以我认为未来的趋势,开源和 SaaS 都是必然。

结语

数据的不断增长带来数据库稳定性、数据安全、协同效率等三大挑战,云数据库、混合云、HTAP 等数据库技术和使用趋势又给数据库开发工具提出新的功能要求,数据库开发工具需要提供更加完善的功能,帮助 DBA 减轻负担,从而提升数据库开发和运行效率、保障数据库稳定运行。

2023-04-07 17:354196
用户头像
李冬梅 加V:busulishang4668

发布了 935 篇内容, 共 529.9 次阅读, 收获喜欢 1099 次。

关注

评论

发布
暂无评论
发现更多内容

Service Provider Interface介绍

Skysper

spi

转行程序员浅谈Linux下的多线程编程

WB

Linux 程序员 多线程

你所不知道的淘宝325秘密

Geek_i59t1w

ios 淘宝 325

修改Tomcat窗口的名称

阡陌r

Java tomcat 踩坑 实施

手把手透析C语言堆内存申请malloc及扩容realloc

卓丁

c 堆内存管理 heap memory malloc realloc

向往优雅的代码

Janenesome

编码习惯 读书

ARTS打卡 week 1

猫吃小怪兽

ARTS 打卡计划

鄙视链 & 全栈

伯薇

学习 能力提升 全栈

leetcode练级-只出现一次的数字

幸福三寸日光

算法 LeetCode js

Lucene的Smart CN实现分词、停用词、扩展词

Page

中文分词 lucene 停用词 扩展词 SmartCN

leetcode练级-只出现一次的数字 升级版

幸福三寸日光

算法 LeetCode js

Kubernetes 资料集合

倪朋飞

学习 Kubernetes 架构模式

我的 Windows Terminal 配置

FeiLong

Windows Terminal

Linux如何调试内存泄漏

泰伦卢

c c++ C#

ARTS 01 - 为什么写作在远程工作中那么重要?

Calvin

ARTS 打卡计划

Java 火焰图

wong

Java flamegraph

Spring Data R2DBC 入门

稻草鸟人

MySQL WebFlux springboot R2DBC

【ARTS】Week 1

Amos

ARTS 打卡计划

Python 3.6.1 官方文档练习——初入江湖(三)

小匚

Python python教程

LeetCode 241. Different Ways to Add Parentheses

liu_liu

LeetCode

ARTS 第一周

onee

ARTS 打卡计划

LeetCode 1048. Longest String Chain

liu_liu

LeetCode

我的读书生涯-小学到大学: 没有成长, 只有不断加深的疑惑

lmymirror

人生 读书 经历 半虚构

John 易筋 ARTS打卡Week 01

John(易筋)

ARTS 打卡计划

游戏夜读 | 刀塔选手比较老吗?

game1night

ARTS week 1

刘昱

Mobileye如何在云上进行深度学习模型训练

Randy

自动驾驶 学习 AI AWS

字节跳动:高级人才的五个基本素质

池建强

人才培养

“数据资产”究竟是“数据”还是“资产”

马踏飞机747

大数据 数据中台 数据治理 数据资产

【应用异常监控利器Sentry搭建与学习笔记】

卓丁

Docker Sertry Fasthttp CI/CD Go 语言

职位拆解:互联网-运营

小鲸数据

行业资讯 移动互联网 运营 AARRR

从蚂蚁集团技术实践看数据库协同开发的现状和发展趋势_文化 & 方法_陈小伟_InfoQ精选文章