详解国产数据库迁移浪潮
编者按:
迁移,是过去三年国内数据库行业最热的关键词之一。在 AI 与云计算过去十年的持续爆发之下,如何更好地存储和使用数据,既是每个中国互联网从业者绕不开的话题,也是中国传统行业数字化转型的核心议题。本土互联网巨头为什么会在 2000 年到 2010 年飞速成长之际,打下数据库业务的基础?2020 年之后,国产数据库的迁移浪潮又是如何逐渐成型,百花齐放?
本期节目,见证行业崛起的资深嘉宾王义成与 Diane 深度对谈,看清迁移浪潮之下,国产数据库从业者走过的每一步路。对于嘉宾所提到的《腾讯云工具指南》感兴趣的小伙伴,可点击下方卡片查看。
完整音频
▲文字有删减和整理,欢迎在小宇宙、喜马拉雅、Apple Podcasts、Spotify等各大音频平台收听完整音频
从 Oracle 垄断市场到 BAT 自建数据库:国产数据库的演进史
科技早知道:国产数据库是如何慢慢崛起的?他们是从哪些技术、产业角度切入这个行业的?
王义成:从世界的角度来看,60 年代 IBM 出了第一个数据库原型, Oracle 则在 70 年代左右把数据库的原型产品化。中国的数据库场景业务爆发应该是在 90 年代左右。那个时候 Oracle 以摧枯拉朽的方式席卷了整个中国数据市场。在 2000 年之前,整个中国数据库的市场国外厂商形占到 90%,其他市场被国内厂商占据,也就是「老四大」,南大通用、武汉达梦、神州通用、人大金仓。
21 世纪初,可能是整个中国数据库产业转折的萌芽。以 BAT 为首的互联网厂商出于成本或未来扩展性的考虑,大多数会选择业界开源的数据库。这证明了中国新兴起步的厂商可以通过自己的技术力量,不依赖于国外的高端数据库把业务做好。
再往后十年,4G 起步,带来业务量的又一个井喷,数据库适用场景更多的时候,对于业务开发的互联网厂商来说压力会比较大。不过,此时国内的云厂商基本上都能够提供比较全的数据库服务了,所以能够很好地支撑启动这一波业务。
近几年,由于传统行业的数字化转型,更多的云厂商开始承接线下的大银行、保险公司、能源公司的业务发展。可能 20 年之后又会有一个比较大的技术变革,或者业务场景的演变。
科技早知道:其实最初大家可能都是从自己的业务需要出发,开始做数据库的工作,后面把它变成了产品,才形成了现在的云服务。TDSQL(腾讯云数据库) 是如何从内部孵化演进为一个云服务产品的?
王义成:腾讯 TDSQL 发展的历史相对来说比较长,98 年腾讯成立时,QQ 这样的业务于整个关系数据库压力并不是特别大。2002 年左右,腾讯通过自己的商业化转型,开始孵化 Q 币这种金融类交易业务,数据的关系型交易越来越多。
2002 年后是整个 PC 互联网和移动互联网的加速时期,在这个过程中,TDSQL 支撑了很多国民应用,包括微信、腾讯音乐、腾讯视频等。再往后,随着腾讯云的启动,TDSQL 作为在内部孵化非常好的一个产品,我们就把它作了相应的产品化,在整个产业互联网发力的这段时间,我们也服务了很多客户。在公共云上,像每日优鲜、拼多多、美团,很多支撑的业务其实都已经开始选择上云。
尤其在 2020 年之后,进入到深水区,包括第七次全国人口普查、很多大银行的核心交易系统,都在用 TDSQL 支撑。这也是一个典型技术产品演变的过程,从技术化到产品化,从试水客户,到超大型客户,再到打开整个局面。
▲图片来源:公众号「腾讯云数据库」
金融行业的数据库为什么是最难做的?
科技早知道:当前国内几家大厂数据库服务的技术路径有什么不同?
王义成:目前大厂的切入点仍是分布式数据库,分布式数据库分为两类,一个是 Share Nothing 的架构,一个是 Share Storage 的架构,前者比较典型的是 Google Spanner 的架构理念,后者则整个存储层是一个共享的上层,通过不同的计算节点来演进。
其实目前来看,对于一些比较大的客户,在基础网络环境、硬件环境都非常好的条件下,Share Storage 架构更适合它的业务发展。但由于国内外的政策环境对于合规的要求,企业并不会把自己的数据都全部放在公有云体系之上。
科技早知道:现在腾讯云在哪些领域的实际应用更多一些?增量市场主要在哪些方面?
王义成:在我们看来,腾讯云在近两年做得比较好的还是金融行业,我们今年的目标也是在金融领域更扎实地做下去。之前我们大银行的客户占有率比较高,今年的策略可能是要做广泛复制,把大行的成熟经验复制到商行和大型保险公司上,或延展到其它关联的业务系统。另外,金融应该是在传统行业里对于 IT 技术设施的理解度最高的、技术能力最强的。还有一些对于数据库依赖比较重的行业,像能源、交通行业,可能是下一步我们重点要攻坚的行业方向。
科技早知道:听起来金融机构应该是腾讯云现在做得最多的领域,也是最难的。做金融领域数据库的难度主要体现在哪些方面?
王义成:最简单的一个认知,金融行业里的存的都是真金白银,相比起数据存储的基础日志或者聊天记录,任何的数据错乱或者数据不一致导致的损失会更大。所以金融行业数据层面的产品不容得有一点问题,连一个网络抖动都不能接受。比如今天正是一个证券交易的开盘点,如果数据卡顿 2 秒,可能会影响到上千笔的交易,带来的业绩损失就会更大。
而保险机构或银行机构,他们的诉求也不太一样。比如银行的核心交易都是围绕着账户处理的,转账、信用卡、理财,都是以账户为维度的。在数据的设计或者整个分布式策略,相对来说更加纯粹一点。而证券的业务逻辑比银行更多,对于证券机构,涉及的维度包括股民、账户,还包括具体的证券商发行了什么样的股票,还有具体的单只股票代表的一个公司,或者一个公司里的某一只股票,可能维度又跟前面不一样。银行对于RPO (Recovery Point Objective,数据恢复点目标)、 RTO (Recovery Time Objective,数据恢复时间)的要求比较高,但是数据分层会简单一点。而证券在开盘的那段时间对于数据 RTO 的要求会非常高,但三点之后就不开盘了,跟银行每天 24 小时运转,对于实时的要求是不一样的。
所以,虽然数据库的通用能力差不多,但是进到每一个子赛道里,对于通用能力的暴力测试,或对于每个通用能力的精细粒度要求,就有一些细微的差别。
科技早知道:腾讯云在服务金融行业时最大的挑战是什么?当时是怎么样攻克的?
王义成:最大的挑战在于从技术思维到产品思维,再到服务思维的转变。做内部产品的时候,我们会有一个比较明确的时间点,能够把运营事故或者运营问题可控。到了服务金融行业的时候,则要出具很详细的测试报告,在客户的环境下去进行长期测试之后,才能够有很好的运转。之后再要跟客户协商比较周密详细的升级计划,才能将 BUG 修复掉。所以对于我们的挑战可能是在敏捷跟产品质量之间找到一个平衡的节奏点。
但是我们现在也在找到一套解决方案。因为我们的优势在于公有云跟私有云是同通同源、代码合一的,所以有新的功能,或者新的 BUG 改动之后,都会在公云上滚动半年,经过详细的测试,再推到客户现场,用这种模式来去尽量在敏捷和商业化的稳定产品之间找到一个平衡点。
科技早知道:现在传统的行业进行数据库的迁移,比如从 Oracle 迁移到腾讯云上面,大概需要多长时间?作为客户,他们的困难点在哪里?
王义成:目前来看,一些边缘业务或者不重要的业务,例行的周期是 1 到 2 个月。如果是银行核心的交易业务,可能会做 6 个月左右的测试。对于客户来说,最关键的地方在于产品稳不稳定,因此需要做混沌的测试演练来判断是否都是预期内的切换。
▲图片来源:Unsplash
未来数据库的发展契机在存算分离、HTAP、智能诊断
科技早知道:我知道腾讯云有一个技术开放日,叫 Techo Day,那么腾讯的开源生态是怎样的?
王义成:腾讯对于开源还是蛮重视的,不管是在数据库还是操作系统,每个团队都有一些开源形态的产品。在数据库板块,包括 TDSQL 下属系列我们都做了相应设计的开源。我觉得,只有开源生态健全,有越来越多的人使用你,并且在一个点上纠错,或提供相应的工具,你的业务或者生态才能做得更好。
对于客户迁移,包括应用系统改造,腾讯云也积累了丰富的经验。我们最近在 Techo Day 上也会发布整理重新的一期《腾讯云工具指南》,里面包括腾讯云在具体的产品上如何助力客户平滑迁移,以及迁移数据的完整性、安全性校验相关案例。
科技早知道:现在云数据库还有哪些技术热点,或是技术方向?
王义成:我觉得这三点:存算分离、HTAP、智能诊断,今明两年会有一个比较大的发展契机,也能找到自己的商业化变现或者产品化的清晰路径。
存算分离,我们现在已经有了产品形态,并且也在做客户的拓展,例如我们说的 TDSQL-C。另一个是 HTAP(Hybrid Transaction Analytical Processing,在线事务和在线分析),今天不管是互联网类的客户还是传统行业的客户,可能都要在 OLTP (On-Line Transaction Processing,联机事务处理过程)的数据库上,或某些特定场景上做实时分析,所以我们在这方面也投入了一个很大的团队,也是构建在 TDSQL 之上,封装了整个 HTAP 的功能,在一些客户的交付中已经开始用了。
另外一点就是智能诊断,基于一些客户全链路的审计分析和相关性能数据 SQL 层面的收集,也基于我们自己的经验库或者之前的模型训练,我们能够给出相关 SQL 的优化建议,包括索引优化的建议。
欢迎在小宇宙、喜马拉雅、Apple Podcasts、Spotify等各大音频平台收听完整音频
微信扫码关注该文公众号作者