写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎大家通过各种方式提供素材。
本文关键字:VLDB、国产、数据库、OceanBase、金融
近日网易新闻刊登新消息,OceanBase研究成果论文《OceanBase: A 707 Million tpmC Distributed Relational Database System》,被数据库国际顶会 VLDB 2022 接收。使得国产数据库OceanBase再次进入人们的视野。
TPC 是一系列事务处理和数据库基准测试的规范。其中,TPC-C(Transaction Processing Performance Council)是针对在线事务处理(OLTP)的基准测试模型。
tpmC全称:Transactions per Minute,即每分钟执行的事务数量,是衡量系统最大有效吞吐量(MQTh,Max Qualified Throughput)的关键指标。
2019年10月,以6088万tpmC的在线事务处理性能,创下了当时的世界纪录。
2020年06月,再次参与测试,以超过7.07亿tpmC的成绩,刷新了自己之前的纪录。
VLDB【Very Large Data Bases】与SIGMOD【Special Interest Group on Management of Data】、ICDE【International Conference of Data Engineering】并称为全球数据库三大学术顶会,收录研究机构以及工业界在数据库领域最前沿、最顶级的研究成果。
论文链接:https://vldb.org/pvldb/vol15/p3385-xu.pdf
虽然tmpC刷新世界纪录并不是最近的新闻,但是有关于OceanBase数据库的研究成果论文被数据库国际顶会VLDB接收着实是对数据库架构与设计思路的认可。论文介绍了 OceanBase 的设计目标、设计标准、基础设施和关键组件,以及在 1500 多台服务器(分布于 3 个区域)的分布式集群中通过 TPC-C 基准测试并取得全球最高成绩背后的技术细节。
由于小编是大数据开发和培训出身,有很多企业内训的经验。最近几年,银行都在进行数字化转型,为了支持和优化不断拓展的业务,良好的系统架构与稳定的数据支持是必须的。在下曾经主持过几次银行的内部培训,也有很多在银行内部从事开发的小伙伴,在接触之后发现金融领域的系统复杂程度是超乎想象的,一般都是数百个系统同时在运作,数据需要在各个部门之间流转,同时还会有数据统计、分析的需求来支持不断扩展的业务与功能。
在整个过程中,某个数据库或数据存储方案并不能出色的完成所有场景的数据支持。在这当中,你会看到各种各样的组建组合方式,并不是千篇一律的,小编也有幸刷新了自己的世界观,这篇文章就简单介绍一下OceanBase。
OceanBase Database是2010年由蚂蚁金服和阿里巴巴完全内部开发的分布式关系数据库。
OceanBase社区版是一款开源分布式HTAP(Hybrid Transactional/Analytical Processing)数据库管理系统,具有原生分布式架构,支持金融级高可用、透明水平扩展、分布式事务、多租户和语法兼容等企业级特性。
OceanBase 企业版是一款完全自主研发的企业级原生分布式数据库,在普通硬件上实现金融级高可用,首创"三地五中心"城市级故障自动无损容灾新标准,刷新了 TPC-C 标准测试,单集群规模超过 1500 节点,具有云原生、强一致性、高度兼容 Oracle/MySQL 等特性。
可以在阿里云购买使用,链接地址:https://www.alibabacloud.com/help/zh/apsaradb-for-oceanbase
OceanBase 数据库将数据以多副本的方式存储在集群的各个节点,可以轻松实现高可用,保证 RPO=0,甚至异地多活。即使单个节点出现故障也不影响业务连续性。多副本能够满足从节点、机架、机房到城市级别的高可用、容灾要求,并且克服传统数据库的主备模式在主节点出现异常时 RPO>0 的问题。
OceanBase 数据库具有极强的可扩展性,可以在线进行平滑扩容或缩容,在扩容后自动实现系统负载均衡。并且扩容或缩容过程对应用透明。
OceanBase 数据库可以在通用服务器上运行,不依赖于特定的高端硬件,能够有效降低用户的硬件成本。OceanBase 数据库使用基于 LSM-Tree 的存储引擎,能够有效地对数据进行压缩,并且不影响性能,可以降低用户的存储成本。
OceanBase 数据库的分布式并行计算引擎对 OLTP 应用和 OLAP 应用都进行了很好的优化,并且支持跨数据库节点的 DQL 和 DML 并发执行,真正实现了一套计算引擎同时支持混合负载。
OceanBase 数据库高度兼容 MySQL 数据库生态。OceanBase 数据库支持 MySQL 5.6 版本全部语法以及兼容 MySQL 5.7 的绝大部分功能和语法,兼容 MySQL 5.7 版本的全量以及 8.0 版本的部分 JSON 函数,可以与 MySQL 业务无缝切换。
OceanBase 数据库通过租户实现资源隔离,每个数据库服务的实例不感知其他实例的存在,并通过权限控制确保不同租户数据的安全性。多租户与 OceanBase 数据库强大的可扩展性相结合,能够提供安全、灵活的 DBaaS 服务。
正如OceanBase自己介绍的那样,OceanBase数据库是一个金融级分布式关系数据库,主要案例也都集中在金融与互联网电商领域。
这些案例相关的企业都有用户体量大、业务出单速率高等特点,而OceanBase可以很好的支持此类场景。当然,由于场景的错综复杂,并不是用一个数据库就可以解决所有的问题,前文中已经有所描述。
如果想自己在本地机器安装测试的话可以直接使用yum来安装,也可以使用Docker。安装完成后,可以使用相应的客户端工具OBClient进行连接测试,具体安装过程十分简单,可以参考:
OceanBase 数据库的 MySQL 模式兼容 MySQL 5.7 的绝大部分功能和语法,兼容 MySQL 5.7 版本的全量以及 8.0 版本的部分 JSON 函数。
OceanBase 数据库在数据类型、SQL 功能和数据库对象等基本功能上与 Oracle 数据库兼容。在 PL 方面,已经基本能够兼容全部的研发功能。在数据库安全、备份恢复、高可用和优化器等高级特性上 OceanBase 数据库的兼容性也非常好,而且有些特性还要优于 Oracle 数据库。
参考链接:https://www.alibabacloud.com/help/zh/apsaradb-for-oceanbase/latest/connection-mode-overview
当访问 MySQL 兼容租户时,可以通过 MySQL 客户端连接。
除此之外,也可以使用OceanBase数据库专用的命令行客户端工具OBClient,可以连接MySQL和Oracle租户。
第三种方式就是直接使用OceanBase 开发者中心【Oceanbase Developer Center - ODC】进行连接。
OceanBase主要支持三种语言【Java、C、Python】的连接,并提供了相应的驱动。
Java驱动:oceanbase-client-{version}.jar
C语言驱动:libobclient
Python驱动:通过JayDeBeApi使用Java驱动
扫描下方二维码,加入CSDN官方粉丝微信群,可以与我直接交流,还有更多福利哦~