首页 > 数据库 >初探oceanbase和newsql数据库

初探oceanbase和newsql数据库

时间:2022-12-19 18:33:16浏览次数:58  
标签:存储 oceanbase 数据库 业务 OceanBase 初探 newsql 迁移 分布式

为什么是分布式数据库?

互联网时代,数据已经成为企业运营的命脉。作为聚合支付的领军企业之一,李俶2021年受理交易金额3500亿,覆盖全国600+城市,服务110万+线下商户,日交易量2300万+,合作伙伴1000+。在如此庞大的交易和支付场景下,数据意味着李俶的服务质量,意味着企业管理的未来和活力。所以对于数据的基础来说,数据库的稳定性高于一切,7*24*365稳定运行是基本要求,服务连续性是服务质量的底线,数据库的高可用性、避免单点故障、快速容灾切换、数据无损是数据库技术的大势所趋,newsql数据库也扮演着很重要的角色。

 

数据库技术发展

 

从数据库技术的发展历史来看,经历了单数据库、子数据库和子表数据库、分布式数据库的发展。相对于我们的业务应用和服务,我们很早就开始了微服务和单元化架构升级,其本质也是服务分发。我们通过分布式一致性协议来协调各种应用和组件,从而达到高服务可用性和高吞吐量的能力。虽然延迟的分布式数据库技术比应用服务的技术框架落后半步,但是从最终的发展趋势来看,分布式数据库一定会成为主流数据库。

 

单机数据库

 

自1970年IBM研究员E.F.Codd博士提出关系模型以来,经过几十年的发展,关系模型得到了充分的发展,成为数据库的主流模型。这几十年也产生了知名的独立数据库产品,如Oracle、DB2、MySQL和PG。

 

单数据库易用,单节点维护成本低,保证了ACID的特性(原子原子性、一致性一致性、隔离性和持久性)。但随着业务量的增长,似乎无法应对高并发读写,海量数据的高效处理。不断提高单个节点的规格,最终会遇到天花板,摩尔定律赶不上业务增长的规模。

 

 

 

对于电脑时代的史前产品,放个黑白图片例子。

 

子数据库和子表

 

当单个数据库无法承载高并发、海量读写等任务时,分库分表的方案已经开始出现,至今仍方兴未艾。分库分表的方案,解决了业务快速增长带来的高并发访问问题,同时可以通过分而治之的方式满足海量读写。典型的中间件包括TDDL、分片JDBC、MyCat等。

 

通过对目前一些主流云数据库产品的调研,我们发现大部分云上的分布式数据库基本都是以MySQL和PG为核心的子数据库产品。使用分布式组件,如ZooKeeper和etcd,可以管理多个数据库实例,从而实现一个分布式数据库产品。本质上,它类似于将多个数据库与应用程序连接起来,只是元数据管理被移到了单独的组件中。在实际使用中会发现,ACID无法保证,快速的业务发展需要拆分实例数据迁移等运维工作的高投入。

 

分布式数据库

 

21世纪,分布式数据库的概念被提出。与传统数据库和非关系数据库NoSQL相比,新一代数据库是newsql数据库。这种数据库兼有传统数据库和NoSQL数据库的功能和优点。两者完美结合,既能保证ACID特性,又能解决分布式扩展能力,又能保证海量存储,同时达到高可用、高效率的目的。

 

21世纪初,分布式数据库已经初具规模。Oracle的RAC以共享存储为代表,计算节点的分布式处理可以看作是分布式数据库的一种尝试。毕竟高端存储硬件一般企业买不起,存储层还是无法横向扩展。

 

2012年,谷歌发布了Spanner。由于其封闭的源代码,我们只能通过论文一窥端倪。共享无,Paxos,ACID,MVCC等基本建立了分布式数据库的主流架构模型。

 

 

 

在众多分布式数据库选择中,TPCC榜单上的OceanBase进入了我们的视线,TPCC连续两年测试第一,超过Oracle性能20多倍。同时,经过了解,OceanBase数据库是一个完全独立的分布式数据库,而不是基于其他内核产品的包,这也是我们准备测试OceanBase的一个重要原因。

 

 

 

选型验证海洋基地

基于数据库的发展趋势,李俶作为一家创新型互联网企业,始终紧跟技术发展的步伐,不断迭代平台架构,以不断提升服务质量,应对业务发展的不断增长。因此,基于对分布式数据库的研究,我们选择OceanBase进行测试和验证,并基于我们的业务使用newsql数据库进行测试,这也是对分布式数据库产品的初步探索。

 

其实对OceanBase并不陌生。2019年我们已经和OceanBase团队沟通过了。当时经过初步了解,发现对我们的数据迁移和运维管理提出了一些挑战,成本和风险让我们暂时搁置。时隔两年,再次见到OceanBase团队,感觉很亲切,也希望这两年的沉淀能给我们带来不一样的产品。

 

高兼容性

 

切换应用程序数据库不仅仅是改变数据库驱动程序那么简单。驱动程序只解决应用程序和数据库之间的通信协议。数据库与SQL的兼容性直接影响我们业务迁移的转换成本。OceanBase的一个集群同时支持Oracle和MySQL两种模式,是我们研究的众多数据库中唯一的一个。

 

 

 

在本次兼容性评估中,OceanBase提供了OMA迁移评估工具,可以在数据迁移前全面扫描newsql数据库通过OMA评估工具,我们直接评估了测试库的结构和SQL的兼容性。同时,我们还可以通过静态代码分析来分析应用中的SQL,并通过评估报告对不兼容项提供详细的解释和改进建议。

 

 

 

通过命令行方式的结构化迁移评估,快速生成评估报告。根据评测报告中的不兼容项,我们还找到了两种非口号的方法来消除兼容性隐患。

 

 

 

OMA还支持静态代码分析评估。通过OMA工具直接在本地进行静态代码分析,避免核心代码的泄露。兼容性分析为100%。在实际的应用接入测试中,发现评测报告是准确的。当然,前提是保证perfomance _ schema中的SQL覆盖我们业务的所有SQL。

 

OMA使用方便,评估准确。给OceanBase点个赞。

 

高压缩比

 

评估结束后,我们通过OMS迁移工具整理并迁移了几条数据进行测试和对比。我们不得不提到OMS,它可以通过几个步骤的配置操作进行拉取和迁移。整个操作过程非常简单易用。

 

 

 

迁移后,我们专门比较了数据库存储的差异。对于一个以数据为核心业务的公司来说,数据的存储成本是与日俱增的,OceanBase存储压缩比确实让我们大吃一惊。超高的压缩比可以大大节省存储成本。下图是一个300GB+宽的表的存储对比,整个库的存储压缩率在70%以上。

 

 

 

业务库表的存储比较

 

OceanBase的高压缩比不仅是zlib、lz4等传统压缩算法,还有编码、差分算法等先进的压缩算法。与传统的压缩算法相比,它提供了一个更极端的压缩比,这真的是意想不到的。

 

HTAP

 

OceanBase数据库不仅仅是一个TP关系数据库,它的主HTAP也是我们最喜欢的特性。对于李俶的支付场景,支付交易订单量巨大,业务规模快速增长。在线交易的同时,希望有一些实时的统计分析,比如合作商家对近期交易汇总信息的统计查询,这也是服务体验对于查询时效的重要一环。

 

为此,我们对我们现有的数据库和OceanBase的TP和AP能力进行了详细的对比,验证其能否在保证支付业务稳定性的场景下,提供实时的统计查询能力。通过4.9亿+条数据的宽表和SQL在不同场景下的统计分析,我们发现OceanBase具有出色的查询性能。TP性能是TPCC顶级的,保证了高并发和高性能。同时,HTAP混合动力引擎还提供实时数据分析能力。

 

 

通过真实业务SQL的执行对比,OceanBase的表现再次超出预期。

 

 

通过在不同场景下的测试和验证,OceanBase不仅满足了我们对分布式数据库的要求,还具有意想不到的性能和较高的存储压缩比。

 

首先,我们选择了一个创新的业务“合作伙伴”进行迁移和割接。这个业务上线时间不长,但是业务增长很快。快速增长的业务对newsql数据库也是极大的挑战。不知道哪一天会有突然的增长。对于传统的MySQL来说,即使把数据库和表分了,再把表分了再迁移也来不及了。

 

在数据迁移过程中,OMS再次发挥作用,不仅支持数据的全量迁移,还支持结构迁移、全量校验、增量迁移、反向同步等功能。全额验证对我们支付场景的帮助非常大,省去了我们开发验证程序的工作,同时也保证了数据迁移的准确性。增量迁移可以与源数据库保持实时同步,为我们的业务验证提供了一个窗口,以充分验证和保证在线割接的稳定性。

 

 

通过全量数据的数据迁移,对比一个逻辑库的存储压缩,“Laipartnership”业务的基础压缩率为26.4%,符合之前的测试预期。

 

 

对比迁移到逻辑库前后,11.06GB的存储下降到2.92GB

 

在迁移和割接的过程中,应用代码只需要修改配置文件和切换数据源,OceanBase与MySQL协议的兼容性完全不需要改变驱动。同时,基于之前OMA的评测报告,应用的验证也非常流畅,OceanBase对MySQL语法的兼容也降低了newsql数据库的切换门槛。

 

迁移后,通过OceanBase的云服务平台,CPU、TPS、QPS等的性能可以监控,同时可以设置告警,保证服务SLA。实时诊断功能为DBA提供了一套“利器”,如慢速SQL查询、TopSQL查询,甚至慢速SQL的索引绑定,无需更改业务代码,大大提高了数据库运维效率。

 

 

感谢OceanBase生态工具的加持,成功迁移了第一笔业务,同时继续在线监测。目前业务运行顺利。后续李俶将逐步迁移其他业务线,迁移到OceanBase,拥抱分布式数据库时代,享受分布式数据库带来的技术红利!

 

在过去的两年中,虽然楚不可能爱上楚,但在过去的两年中,OceanBase在各种生态产品上取得了突破性的进展。各类周边配套产品基于客户的实际问题,解决了评估、迁移、运维等一系列问题。这个测试验证了数据库和生态产品都得到了客户的认可,也是我们“把简单留给客户,把复杂留给自己”的实践。

 

针对李俶高流量、高并发的业务场景,在评估和迁移过程中,结合ant的最佳实践,对core newsql数据库 table结构进行了部分优化,实现了业务代码的零转换,提升了数据库扩展能力和性能。

 

Chu在OceanBase的首次商业登陆仅仅是一个开始。对于其他业务,尤其是海量数据付费,我们会和楚一起努力,希望通过OceanBase给客户带来一键迁移、运维一体化、HTAP库的服务体验。

标签:存储,oceanbase,数据库,业务,OceanBase,初探,newsql,迁移,分布式
From: https://www.cnblogs.com/tianlongbabu/p/16992824.html

相关文章

  • 初探富文本之编辑器引擎
    初探富文本之编辑器引擎在前文中我们介绍了富文本的基础概念,以及富文本的基本发展历程,那么在本文中将会介绍当前主流开源的富文本编辑器引擎。当前使用最广泛的富文本编辑......
  • 百度map 3.0初探
    1.简介    在使用百度地图SDK为您提供的各种LBS能力之前,您需要获取百度地图移动版的开发密钥,该密钥与您的百度账户相关联。因此,您必须先有百度帐户,才能获得开发密钥。并......
  • 离线语音识别与语音转写初探
    这里写自定义目录标题​​语音离线SDK​​​​科大讯飞​​​​测试结果​​​​百度云​​​​录音环境要求​​​​吵杂的环境​​​​阿里云​​​​腾讯云​​​​有道......
  • 淘宝海量数据库OceanBase系统架构
    无论是数据量还是访问量,OceanBase都不能再是单机系统,即使单机可以服务高达数TB的数据,提供数万QPS的服务能力,因此,分布式系统是必然的。但是要实现内部表反汇编(数据库反汇编......
  • Spring Cloud Gateway初探
    Zuul和Gateway的恩怨情仇1.1背景Zuul是Netflix开源的一个项目,Spring只是将Zuul集成在了SpringCloud中。而SpringCloudGateway是SpringCloud的一个子项目。还有一个版本......
  • 【JUC】并发编程初探
    目录1、Java——天生的多线程1.1main:主线程1.2ReferenceHandle1.3Finalizer1.4SignalDispatcher1.5AttachListenner1.6MonitorCtrl-Break1.7线程1.7.1查看线程......
  • 数据化运营初探
    最近在研读《数据化运营系统方法与实践案例》,特在此做信息记录。先明确这次分析到底需要达成什么目的,在了解业务的基础上,明确应该从什么角度去切入,应该从哪些指标......
  • 2022年12月中国数据库排行榜:OceanBase立足创新登榜首,华为腾讯排名上升树雄心
    不经一番寒彻骨,怎得梅花扑鼻香。 2022年12月的 墨天轮中国数据库流行度排行榜 火热出炉,本月共有249个数据库参与排名,相比上月新增3个数据库。本月排行榜前十用一句话可......
  • 初探极限符号表示形式之优劣
    对于数列极限定义1,其中我们着重来看$\lim_{n\rightarrow\infty}\mspace{2mu}a_{n}=a$,这是大多数教材通常采用的对极限现象的符号代表形式,为了进一步了解极限的性质及......
  • php里ezpdo orm框架初探
      java里有hibernate,php里有啥,这一直困绕着大家.最近发现了一个还可以的php的orm框架ezpdo,网站是​​​http://www.ezpdo.net​​​,有手册......