近些年,数据库在技术领域已发展成熟,诸多类别趋于细分,焕发新的活力。众多新生数据库诞生并以迅猛之势打开市场,同时很多数据库也以开源开放的形式布局国内外市场。
对于全新阶段的数据库时代,一些新型数据库对 DBA 在产品学习和业务场景体验上面临新的挑战,到底未来该如何选型新数据库产品,DBA 的发展该如何选择?
《对话 ACE》第二期活动便以“新数据库时代,DBA 发展之路该如何选择”为背景,邀请到 OceanBase 解决方案部总经理师文汇,dbaplus 社群联合发起人、竞技世界资深 DBA、Oracle ACE 杨建荣,共同探索“DBA 未来发展之路”。以此推动国产数据库技术、人才及生态建设的发展。
以下为直播的内容汇总分享,欢迎大家阅读、转发!
OceanBase 解决方案部总经理 师文汇
Q 您认为 DBA 更应该参与哪方面的工作(比如内核开发,调优,交付等)?
A 师文汇:大概分几个群体。对于刚毕业的学生,鼓励大家多做内核或者技术相关的开发工作,会有好的技术沉淀。数据库其实是处在整个业务的最核心的环节,既能做深层次技术的积累,也可以将技术和业务更好地结合。无论学习内核,还是学习业务,对 DBA 都是有非常大的帮助和成长。
对于一些资深的 DBA,建议大家多了解行业或业务知识。比如说金融、运营商领域,如何使用数据库,在业务场景下的核心痛点。对于 DBA 的发展,可以去做对外的商业化解决方案类,也可以架构师方面的工作。
数据库开发方向,前期可以了解一些常见的开源数据库,比如 OceanBase,其实是很好地学习数据库的入手项目。可以基于其社区版做一些开放的 project,通过这样一些实践,快速的进入到社区一起交流学习。
对于传统数据库的开发者,例如 MySQL 或者 PostgreSQL,如果投入到 OceanBase 分布式的学习,天然是有很多优势,比如在事务上的理解。OceanBase 是一个分布式关系数据库,通过学习,在分布式、一致性协议等领域,是能够帮助大家快速成长去完成自我提升的。大家如果愿意动手花时间去学习和实践,比如简单的一些代码修改和编译,通过这些实践,会有新的收获。
Q 大家都在谈内卷和躺平,关于这两方面,能否给 DBA 们一些建议?
A 师文汇:我同时也在负责蚂蚁数据库和存储团队,我觉得一方面从业务角度看,很多事情可以去做甚至可以做到更好。比如说单 TB 存储成本,每天在蚂蚁都有上千 G 的这种业务需要发布,我们如何能做到效率更高。当你去仔细学习业务或者去理解系统的时候,总是能发现还有很多问题可以去完善。
什么是内卷,以前大家经常说,做事情要去打破边界,相互补位,其实从这个角度去做事情,就是真正的为了一个共同的目标,在大家都能接受的合理空间,去做一些跨领域或者跨边界的事情。这样的话可能对自己包括最终的业务结果都有很大的帮助。
另一个方面,对于自身成长来说,我觉得是不能躺平的。大家可以看到,整个社会和业务发展有多迅速。在 2014 年的时候,没有这么多的分布式数据库和国产数据库,但是在过去的几年里,不光从数据库,TP 或 AP,包括计算、算法,AI 领域,其实都涌现了很多新的技术和产品。这个时代其实在用很快的速度前进,我们必须保证自己的成长和竞争力。
Q 面对不同类型的 DBA 发展方向(顾问、技术支持、运维)未来如何正确选择?
A 师文汇:我觉得 DBA 是一个非常有竞争力的职业或者角色。我认识的很多 DBA 都去做创业了,而且发展都很好。那么这些人是如何发展的这么好?因为他非常懂业务和数据库,面向最终的用户,了解用户的明确需求。所以能够去帮助用户做一些设计,沉淀,行为,想法。还有的 DBA 选择去做商业化解决方案或者交付,同样可以做的很好,因为他们可以协助业务把解决方案帮助到例如传统银行核心系统的迁移的项目上。
对于 DBA 这个角色,下游是基础技术,上游是业务,中间是数据。所以这个角色其实是有能力成为任何一个类型的人才。当你把基础技术做扎实积累后,在职业上的选择是非常多的。DBA 想成长应该做什么,学习业务和技术,又要懂数据。最终的发展方向取决于自己想去做什么,然后做好这些方向的积累。
dbaplus社群联合发起人 杨建荣
Q 国产数据库的迅猛发展,产品众多,对于 DBA,应该如何选择才有利于个人职业发展?
A 杨建荣:国产数据库其实在行业内会打一些标签,目前有几个类别。
第一类是学院派数据库,比如达梦,人大金仓等,偏军工等传统行业,相对应用比较广泛。
第二类是互联网派数据库。基于互联网场景的技术沉淀,比如 OceanBase、PolarDB、TDSQL 等,有互联网原生的业务场景,能够快速地孵化,有更多的技术沉淀。
第三类是创业派数据库。比如像 TIDB、偶数等 NewSQL。创始人有海归背景的技术专家去推动这样的一些事情。
第四类是企业派数据库。比如华为 GaussDB、中兴的 GoldDB 等等。这些企业之前就有一些大量的客户群体。然后在客户群体内能去孵化和把产品推到整个产品线。所以国产数据库近几年,会比以前的流行度和布局度更有落地性。
Github 上有一句话,就是说技术在某种程度上也有国界,或者说从做 DBA、做技术的角度来说,需要有一个护城河的概念,因为有技术壁垒,需要去提前规划考虑。
Q DBA 要做什么才能做到像您这么优秀,类似 ACE 这样的身份?
A 杨建荣:第一个就是知识的积累。好记性不如烂笔头。我最早做 DBA 的时候是跨国企业,会有大量的数据库问题,Oracle 这个方向,每天会集中处理很多异常、报警、报错这种问题,相对来说很具体。但是会碰到一个困惑,虽然花很多时间解决了问题,但是最终解决的过程没有经过思考,只是把问题解决了而已。所以在这个过程中,我发现可以在问题处理的过程沉淀下来,沉淀成一个比较流畅的记录。在各类问题处理的过程中,会把潜在的因素都能够很好地结合起来。
第二个就是笔记的标准。有利于知识积累,一方面节省自己的时间,另一方面就是让过程更流畅。把整个操作的过程能够通过类似博客文章的形式推送下来。
第三个场景化应用。很多知识点是碎片化的,不成体系的。这里建议梳理成知识树或知识体系。通过梳理的过程,会发现一些潜在因素。
第四个就是有针对性的分享。比如说所在公司比较小缺乏更多的场景。这种其实可以换一种思路,就是去帮别人解决问题,通过社区平台,甚至可以通过自己的博客等方式去帮助别人去解决问题。这个过程中,对个人的成长和收获来说,是非常大的。
分享其实是先利己后利人的一个过程。一开始是为了方便自己,当积累一定量之后,对别人也有很大的帮助。之后在某些问题上会有一些共鸣,或者提供给别人一些帮助后,会有一种莫名的成就感等等。所以我觉得 ACE 这样的头衔或者身份,其实不是一个最核心的。是对于自己成长过程的一个标记。而且 ACE 的衡量的一个重要指标,就是对于整个技术社区的贡献度。
Q 国内的 DBA 应该如何正确面对开源?
A 杨建荣:我会分为三个视角。第一个视角是对于像 OceanBase 这样的国产数据库厂商,包括技术贡献者。国内在早期形成的一种技术氛围,就是沉默的大多数。大家可能拿来去用一些数据库,但是很难得到一些更有效的反馈。
所以近些年来会有比较大的变化。在数据库的开源,包括在开源支持的态度上,从原来的被动接受或者拿来主义的模式到现在会去从各个角度去贡献自己一些力量。这个维度从文档 bug 或者社区协作上,都会有不同程度的体现。
开源重在生态的建设。生态建设是需要一定的时间,而且在质量上是不能打折扣的。另一方面原来聊开源可能就是免费开源,相对来说是比较中肯或者理想的一个状态。但是现在去聊开源,他需要去做长期的准备,技术栈规划。整个技术栈对于开源来说,会从原来完全开放的一种状态,转为一种就是长期规划的过程。第三点是现在的公有云,对于 DBA 的发展方向也会有比较大的冲击。因为公有云的本质是资源的池化,是一个去服务化的过程。对于很多企业随着规模的发展,很多是需要私有云,或者说在性能、架构、对业务的服务支持上,需要有一些更有针对性的支持。
所以私有云方向上,我的建议是预留 60% 到 70% 比较成熟稳定的开源技术栈。预留 30% 到 40%,去做前瞻技术栈的规划。在这个过程中,需要有深入的技术沉淀,对业务来说更平滑。但是公有云的方向,可能相对是更泛化的一个过程。因为基于公有云的云原生数据库,对于传统数据库方向上都会有一些挑战。
我对开源的规划是 28 原则,就是大部分的数据库的选型或者使用,基于 RDS 为主基础上,在业务成长相对来说比较成熟稳定的,或者有一些增长,跨域访问等或更长久的规划上,可能 20% 的比例去考虑云原生数据库。
Q DBA 如何通过开源数据库产品享受这一波红利?
A 杨建荣:我觉得可以提炼三点。
第一点是通过开源数据库,包括分布式数据库。在某种微观程度上,在面向高可用的难题上是能够迎刃而解。或者说是一种辅助,包括在微观数据库方向上,其实会有一些 HA 的工具等等。但是在原生分布式数据库中,这种问题可能就不复存在了。在这个方向上,会提高服务的高可用能力。
第二点是选择开源数据库更多是数据库的开源共存状态,本质上会做很多场景的互补。比如刚才提到的,比如在 AP 领域,原来是做 TP 的方向上,可能在 AP 上需要做流转或额外的一些流程。但是现在可能是做了一体化的方式,会有一种 HTAP 的场景。对于业务来说,相对来说会更容易更适配去接触业务的迭代速度。
在这个方向上举个例子,原来数据库去做复杂的查询,字段也非常多,可能在 MySQL5.7 有时候就有一些复杂的查询,可能需要 30 分钟。MySQL8.0 可能一分钟就能成功。但使用 HTAP 的方案,发现可能只需要 1-2 秒就可以解决。所以通过这种方式在使用开源数据库产品对很多研发同学来说,和使用的 MySQL 时一样没有太大的技术壁垒。所以在接触的过程中,也会逐步信任和沉淀成为深度的客户。
第三点是开源数据库产品的质量是有保证的。但是产品用得好不好,或者在用的过程中如何去更持续更有效的迭代。在社区包括反馈机制上,能够去更好地形成一个闭环。
包括很多类似 OceanBase 的开源数据库产品,不只是开发出了一个数据库场景,让大家去使用,实际是逐渐形成社区生态,在生态之下,可以让整个的数据库产品,包括功能、易用性、体验上。用户都会提出不同角度的想法。所以对于开源数据库的产品使用来说,无论是对于研发人员,包括开发数据库内核的技术人员,是一个互补双赢的状态。
Q DBA 在面临业务变化的时候,如何快速实现技术和业务的转型?
A 杨建荣:第一个层面属于未雨绸缪或长期规划的过程。很多情况下,数据库方案亟待解决的时候,再去想方案的话相对来说是一个延迟或者拖后的状态。这样就形成了恶性循环。在这种场景下,需要提前做一些未雨绸缪的事情。包括技术栈,以及提前和研发去沟通业务痛点,或潜在瓶颈。在这个过程中,可能方案 A 可以满足。但是方案 A 在临时可用的状态下,会去沉淀方案 B,尽可能完成平滑替代的状态,进而实现业务快速转型,应对变化。
另外一个层面是大部分时候是基于业务场景需求去做一些设计和改进。然后业务场景的很多变化,也是逐渐演进的过程,所以在前期去接触方案的时候,在一个特定的时间,肯定不是最好的方案。但是通过全盘考虑后,能够在此基础上去完善一个更合适的方案。
线上答疑解惑环节
Q 分布式数据库未来会全面取代传统关系型数据库吗?分布式数据库未来形态会是HTAP吗?
A 师文汇:我的个人观点是比较深信这件事的,目前阿里、蚂蚁的核心系统,包括网商银行,海外的部分银行和支付机构,OceanBase 已经赋能很多这样的企业。商业化以后,目前数百+不同行业的客户,都选择用分布数据库彻底取代传统的关系数据库,让企业更加可控。所以从案例实践上,我认为分布式数据库是可以取代关系型数据库的。
分布式数据库是诞生在互联网和移动互联网这个时代的,天生有后发优势。针对这个方面做了很多设计,分布式数据库的未来形态会是 HTAP,举一个例子,比如营销系统,通常会圈定一些人群,然后去思考这群人是不是能够产出更好的广告 ROI,于是就去做这样一个实验。传统的数据库可能要做ETL导数据,申请代理权限等这些会消耗掉很多时间,但 HTAP 数据库,它其实是可以在这个数据上直接去做挖掘或者分析。就如创始人阳振坤老师分享一篇文章里说的一样,分布式数据库就像电动车特斯拉,代表着未来的发展趋势,而 HTAP 是对数据库整个行业的成本控制、效率提升,会有非常大的改观。
Q 面对未来的各式各样的新型数据库,应该从哪几个方面入手了解呢?
A 杨建荣:新型数据库的发展方向是基于大数据的 4V 背景,包括数据规模大、数据变化快、数据种类杂、数据价值密度低等等。在这个背景下,新型数据库是一个相对新颖的技术体系。对于数据库规模大,关联的是分布式数据库管理系统等,比较有代表的如 OceanBase,Spanner,MongoDB 等等,都属于这种新型数据库的领域;数据变化比较快,在这个方向上提炼出来数据库的一个分支,就是流数据库管理系统,如 Aurora 等;另外两个维度会小众一点,或者说它的潜力和价值可能是待挖掘的一个状态。如根据数据的种类会延伸出来两个分支,一个分支是图数据库,比如 New4J,另外一个是这个时空数据库 OceanRT,DITA 等;最后一个就是数据的价值密度比较低的背景,提出了众包数据库,相对来说更学术,或者还是在探索的阶段,这个方向像 CDB、Qurk 等等,相对偏学术或者说待孵化的阶段。
Q DBA的职业发展方面,对于不会编程的DBA,是否应该花费精力选择一种编程语言去学习呢?对于DBA转型数据库产品研发有哪些看法?
A 杨建荣:我把两个问题合起来回答一下。第一个问题是不会编程的DBA 他是否应该去学习一个编程语言?我的强烈建议是需要去学习的。
DBA 从职业发展上来说,可以分为五个维度:高可用的架构的能力、分布式架构的能力、数据模型优化的能力、服务化建设的能力、资源规划和治理的能力。
通过以上几个维度,我觉得对于 DBA 来说,如果不会编程,就需要在业务或者某些方向上需要有一些积累,至少得有一个方向是更擅长的。学编程语言对于 DBA 的职业发展上来讲属于服务化建设的能力。
因为服务化建设的能力,从研发到业务是一个直接能感受到的高效和专业的一种方式。所以需要去学习一种编程语言。另外一个视角就是当你学习一种编程语言的时候,你会从研发的视角去思考这个问题,而不是单纯的从运维 DBA 的角度去单一的思考问题,从而更容易抓到这个问题的本质。
第二个问题是转型数据库产品研发,更偏向数据库服务化的建设能力,需要去考虑一个点,就是说对数据库的这个方向上真正的技术理想或者说技术兴趣点是否认可?如果只是单纯的做数据库产品研发,我觉得可能它是一个偏颇的方向。另外一个就是在业务上有很深的积累或者数据库的支持方向上有很多的想法,再去转型做数据库的产品研发是比较顺利的。因为产品研发只是 DBA 领域中的一个分支,更多取决于自己的兴趣点。
Q 普通中小型企业经过一段发展之后,数据库已经有非常大的惯性了。现阶段企业和个人怎么转型升级呢?
A 师文汇:对于个人来说的话,学习是自己的事情,即使公司没有用这个数据库,你其实还是可以去学习的。对于企业来说的话,企业是会有很多的研发惯性,习惯用了一种东西以后,可能很难摆脱去切换到另外一种产品,尤其是数据库这种核心系统,相当于一辆车的发动机,可能更不容易。
但是我觉得从 DBA 或者是企业的视角可以去考虑几个问题。
第一个是说如果想换成国产数据库,有没有比较低的代价?假设我们用的是 Oracle 模式,那是不是有一些国产数据库它能比较好地去兼容 Oracle,同时又能给我们带来一些便捷。
第二个可以从降本增效相关的一些角度去考虑。是不是可以引入一种分布式数据库去解决成本效率的问题做一些尝试。很多企业都在考量 ROI,很多的新型的数据库在这方面做得都比较好,可以考虑做一些演进的尝试。围绕 8020 原则,守好主要的关口,找一些边缘的业务做创新,当真的能够尝到技术红利以后,然后再去考虑公司的整体方向去采纳一种新型数据库。
《对话 ACE》第二期通过两位老师对 DBA 职业发展,如何更好将业务和技术相结合,包括对国产数据库和开源数据库的认知和选型,都给出了精彩的观点。
未来 OceanBase 将持续开展《对话 ACE》活动,敬请关注。
附录:
- 对话 ACE 第一期|国产数据库未来将如何发展?
————————————————————————————————————————————
社区版官网论坛
社区版项目网站提 Issue
欢迎持续关注 OceanBase 技术社区,我们将不断输出技术干货内容,与千万技术人共同成长!!!
搜索🔍钉钉群(33254054),或扫描下方二维码,还可进入 OceanBase 技术答疑群,有任何技术问题在里面都能找到答案哦~