OceanBase介绍

news2024/11/16 7:53:49

OceanBase 是什么

OceanBase 是由蚂蚁金服、阿里巴巴完全自主研发的分布式关系型数据库,始创于 2010 年。

OceanBase 具有数据强一致、高可用、高性能、在线扩展、高度兼容 SQL 标准和主流关系型数据库、低成本等特点。OceanBase 至今已成功应用于支付宝全部核心业务:交易、支付、会员、账务等系统以及阿里巴巴淘宝(天猫)收藏夹、P4P 广告报表等业务。除在蚂蚁金服和阿里巴巴业务系统中获广泛应用外,从 2017 年开始,OceanBase 开始服务外部客户,客户包括南京银行、浙商银行、人保健康险等。

产品优势
高性能:OceanBase 采用了读写分离的架构,把数据分为基线数据和增量数据。其中增量数据放在内存里(MemTable),基线数据放在 SSD 盘(SSTable)。对数据的修改都是增量数据,只写内存。所以 DML 是完全的内存操作,性能非常高。

低成本:OceanBase 通过数据编码压缩技术实现高压缩。数据编码是基于数据库关系表中不同字段的值域和类型信息,所产生的一系列的编码方式,它比通用的压缩算法更懂数据,从而能够实现更高的压缩效率。

高兼容:兼容常用 MySQL/ORACLE 功能及 MySQL/ORACLE 前后台协议,业务零修改或少量修改即可从 MySQL/ORACLE 迁移至 OceanBase。

高可用:数据采用多副本存储,少数副本故障不影响数据可用性。通过“三地五中心”部署实现城市级故障自动无损容灾

OceanBase 产品优势和应用场景

OceanBase 是一款金融级的分布式关系数据库,具备高性能、高可用、强一致、可扩展和兼容性高等典型优势,适用于对性能、成本和扩展性要求高的金融场景。

主要特性

高性能:存储采用读写分离架构,计算引擎全链路性能优化,准内存数据库性能。
低成本:使用PC服务器和低端 SSD,高存储压缩率降低存储成本,高性能降低计算成本,多租户混部充分利用系统资源。
高可用:数据采用多副本存储,少数副本故障不影响数据可用性。通过“三地五中心”部署实现城市级故障自动无损容灾。
强一致:数据多副本通过paxos 协议同步事务日志,多数派成功事务才能提交。缺省情况下读、写操作都在主副本进行,保证强一致。
可扩展:集群节点全对等,每个节点都具备计算和存储能力,无单点瓶颈。可线性、在线扩展和收缩。
兼容性:兼容常用 MySQL/ORACLE功能及 MySQL/ORACLE 前后台协议,业务零修改或少量修改即可从 MySQL/ORACLE 迁移至 OceanBase。 应用场景

OceanBase 的产品定位是一款分布式关系数据库,经过多年蚂蚁金服内部业务的打磨,目前已经支持蚂蚁金服 100% 核心交易系统,稳定支撑阿里、蚂蚁内部上百个关键业务以及浙商银行、南京银行等多个外部客户。OceanBase 产品适用于金融、证券等涉及交易、支付和账务等对高可用、强一致要求特别高,同时对性能、成本和扩展性有需求的金融属性场景,以及各种关系型结构化存储的 OLTP 应用。OceanBase 天然的 Share-Nothing 分布式架构对于各种 OLAP 型应用也有很好的支持,例如云数据库 OceanBase 适用于以下典型场景:

金融级数据可靠性需求
金融环境下通常对数据可靠性有更高的要求,OceanBase 每一次事务提交,对应日志总是会在多个数据中心实时同步,并持久化。即使是数据中心级别的灾难发生,总是可以在其他的数据中心恢复每一笔已经完成的交易,实现了真正金融级别的可靠性要求。

在这里插入图片描述

让数据库适应飞速增长的业务
业务的飞速成长,通常会给数据库带来成倍压力。OceanBase 作为一款真正意义的分布式关系型数据库,由一个个独立的通用计算机作为系统各个节点,数据根据容量大小、可用性自动分布在各个节点,当数据量不断增长时,OceanBase 可以自动扩展节点的数量,满足业务需求。
在这里插入图片描述

连续不间断的服务
企业连续不间断的服务,通常意味着给客户最流畅的产品体验。分布式的 OceanBase 集群,如果某个节点出现异常时,可以自动剔除此服务节点,该节点对应的数据有多个其他副本,对应的数据服务也由其他节点提供。甚至当某个数据中心出现异常,OceanBase 可以在短时间内将服务节点切换到其他数据中心,可以保证业务持续可用。
在这里插入图片描述

OceanBase 产品架构

OceanBase 数据库采用 Shared-Nothing 架构,各个节点之间完全对等,每个节点都有自己的 SQL 引擎、存储引擎,运行在普通 PC 服务器组成的集群之上,具备可扩展、高可用、高性能、低成本、云原生等核心特性。

OceanBase 数据库的整体架构如下图所示。
在这里插入图片描述

集群架构

OceanBase 数据库支持数据跨地域(Region)部署,每个地域可能位于不同的城市,距离通常比较远,所以 OceanBase 数据库可以支持多城市部署,也支持多城市级别的容灾。一个 Region 可以包含一个或者多个 Zone,Zone 是一个逻辑的概念,它包含了 1 台或者多台运行了 OBServer 进程的服务器(以下简称 OBServer)。每一个 Zone 上包含一个完整的数据副本,由于 OceanBase 数据库的数据副本是以分区为单位的,所以同一个分区的数据会分布在多个 Zone 上。每个分区的主副本所在服务器被称为 Leader,所在的 Zone 被称为 Primary Zone。如果不设定 Primary Zone,系统会根据负载均衡的策略,在多个全功能副本里自动选择一个作为 Leader。

每个 Zone 会提供两种服务:总控服务(RootService)和分区(PartitionService)。其中每个 Zone 上都会存在一个总控服务,运行在某一个 OBServer 上,整个集群中只存在一个主总控服务,其他的总控服务作为主总控服务的备用服务运行。总控服务负责整个集群的资源调度、资源分配、数据分布信息管理以及 Schema 管理等功能。 其中:

资源调度主要包含了向集群中添加、删除 OBServer,在 OBServer 中创建资源规格、Tenant 等供用户使用的资源;
资源均衡主要是指各种资源(例如:Unit)在各个 Zone 或者 OBServer 之间的迁移。
数据分布管理是指总控服务会决定数据分布的位置信息,例如:某一个分区的数据分布到哪些 OBServer 上。 Schema
管理是指总控服务会负责调度和管理各种 DDL 语句。

存储引擎
OceanBase 数据库的存储引擎采用了基于 LSM-Tree 的架构,把基线数据和增量数据分别保存在磁盘(SSTable)和内存(MemTable)中,具备读写分离的特点。对数据的修改都是增量数据,只写内存。所以 DML 是完全的内存操作,性能非常高。读的时候,数据可能会在内存里有更新过的版本,在持久化存储里有基线版本,需要把两个版本进行合并,获得一个最新版本。
在这里插入图片描述

如上图所示,在内存中针对不同的数据访问行为,OceanBase 数据库设计了多种缓存结构。除了常见的数据块缓存之外,也会对行进行缓存,行缓存会极大加速对单行的查询性能。为了避免对不存在行的空查,OceanBase 数据库对行缓存构建了布隆过滤器,并对布隆过滤器进行缓存。OLTP 业务大部分操作为小查询,通过小查询优化,OceanBase 数据库避免了传统数据库解析整个数据块的开销,达到了接近内存数据库的性能。当内存的增量数据达到一定规模的时候,会触发增量数据和基线数据的合并,把增量数据落盘。同时每天晚上的空闲时刻,系统也会启动每日合并。另外,由于基线是只读数据,而且内部采用连续存储的方式,OceanBase 数据库可以根据不同特点的数据采用不同的压缩算法,既能做到高压缩比,又不影响查询性能,大大降低了成本。

SQL 引擎
OceanBase 数据库的 SQL 引擎是整个数据库的数据计算中枢,和传统数据库类似,整个引擎分为解析器、优化器、执行器三部分。当 SQL 引擎接受到了 SQL 请求后,经过语法解析、语义分析、查询重写、查询优化等一系列过程后,再由执行器来负责执行。所不同的是,在分布式数据库里,查询优化器会依据数据的分布信息生成分布式的执行计划。如果查询涉及的数据在多台服务器,需要走分布式计划,这是分布式数据库 SQL 引擎的一个重要特点,也是十分考验查询优化器能力的场景。OceanBase 数据库查询优化器做了很多优化,诸如算子下推、智能连接、分区裁剪等。如果 SQL 语句涉及的数据量很大,OceanBase 数据库的查询执行引擎也做了并行处理、任务拆分、动态分区、流水调度、任务裁剪、子任务结果合并、并发限制等优化技术。

下图描述了一条 SQL 语句的执行过程,并列出了 SQL 引擎中各个模块之间的关系。

在这里插入图片描述

Parser(词法/语法解析模块)
Parser 是整个 SQL 执行引擎的词法或语法解析器,在收到用户发送的 SQL 请求串后,Parser 会将字符串分成一个个的单词,并根据预先设定好的语法规则解析整个请求,将 SQL 请求字符串转换成带有语法结构信息的内存数据结构,称为语法(Syntax Tree)。为了加速 SQL 请求的处理速度,OceanBase 数据库对 SQL 请求采用了特有的快速参数化,以加速查找执行计划的速度。
Resolver(语义解析模块
当生成语法树之后,Resolver 会进一步将该语法树转换为带有数据库语义信息的内部数据结构。在这一过程中,Resolver 将根据数据库元信息将 SQL 请求中的 token 翻译成对应的对象(例如库、表、列、索引等),生成语句树。
Transfomer(逻辑改写模块)
在查询优化中,经常利用等价改写的方式,将用户 SQL 转换为与之等价的另一SQL,以便于优化器生成最佳的执行计划,这一过程称为查询改写。Transformer 在Resolver 之后,分析用户 SQL 的语义,并根据内部的规则或代价模型,将用户 SQL改写为与之等价的其他形式,并将其提供给后续的优化器做进一步的优化Transformer 的工作方式是在原 Statement Tree 上做等价变换,变换的结果仍然是一棵语句树。
Optimizer(优化器)
优化器是整个 SQL 优化的核心,其作用是为 SQL 请求生成最佳的执行计划。在优化过程中,优化器需要综合考虑 SQL 请求的语义、对象数据特征、对象物理分布等多方面因素,解决访问路径选择、联接顺序选择、联接算法选择、分布式计划生成等多个核心问题,最终选择一个对应该 SQL 的最佳执行计划。SQL 的执行计划是一棵由多个操作符构成的执行树。
Code Generator(代码生成器)
优化器负责生成最佳的执行计划,但其输出的结果并不能立即执行,还需要通过代码生成器将其转换为可执行的代码,这个过程由 Code Generator 负责。
Executor(执行器)
当 SQL 的执行计划生成后,Executor 会启动该 SQL 的执行过程。对于不同类型的执行计划,Executor 的逻辑有很大的不同:对于本地执行计划,Executor 会简单的从执行计划的顶端的算子开始调用,由算子自身的逻辑完成整个执行的过程,并返回执行结果;对于远程或分布式计划,Executor 需要根据预选的划分,将执行树分成多个可以调度的线程,并通过 RPC 将其发送给相关的节点执行。
Plan Cache(执行计划缓存模块)
执行计划的生成是一个比较复杂的过程,耗时比较长,尤其是在 OLTP 场景中,这个耗时往往不可忽略。为了加速 SQL 请求的处理过程,SQL 执行引擎会将该 SQL 第一次生成的执行计划缓存在内存中,后续的执行可以反复执行这个计划,避免了重复查询优化的过程

OceanBase 产品部署方案

云数据库 OceanBase 分为高可用版本和基础版本,支持多机房部署、双机房部署和单机房部署三种部署方案。

高可用版本
云数据库 OceanBase 高可用版本为您提供机房级、主机级容灾等多种策略的高可用服务,支持多机房部署、双机房部署和单机房部署三种部署方案。

多机房部署
云数据库 OceanBase 多机房部署指将三个节点部署在三个不同可用区,实现跨可用区容灾,不额外收费。每个节点均为全功能副本,其中一个主副本提供读写服务,两个备副本提供只读服务。当主副本发生故障时,备副本将会升为主副本继续提供读写服务。

双机房部署
云数据库 OceanBase 双机房部署将两个节点部署在两个可用区,其中一个节点作为主副本提供读写服务,另外一个备节点可以提供只读服务。并在第三个可用区部署一个日志节点,该节点仅用于日志同步,不包含数据副本,不对外提供读写服务。双机房部署仍具备机房级容灾能力,与多机房部署相比在性价比上有较大提升。

单机房部署
云数据库 OceanBase 单机房部署指所有节点位于同一可用区,具备主机级别故障容灾能力,同时由于单机房部署的写请求无需进行跨机房同步,延时较小。

基础版本
云数据库 OceanBase 基础版本支持单机房单节点部署,容灾能力较弱。您购买时无需选择存储容量,存储费用根据实际使用量按小时计费。

云数据库 OceanBase 基础版本一般用于开发测试环境,实际生产环境建议使用高可用版本

OceanBase 产品定价

本页面为您介绍 OceanBase 的产品价格。

付费方式

OceanBase 在金融区和非金融区收费不同,金融区相比非金融区安全性更高。主要付费方式包括包年包月和按量付费两种方式。

包年包月

按量付费

在新建数据库集群时无需预先支付费用。您可选择固定存储或自定义存储大小,集群的计算节点和存储空间(根据实际数据量)均按小时计费,并从账户中按小时扣除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1967116.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

移动端测试如何学,超详细的APP测试攻略送上

前言 随着手机应用市场发展的逐渐成熟,手机APP已经渗透到人们的吃穿住行生活,比如手机支付APP、通讯APP、各大应用软件等,关于手机APP安全性能的重要性不言而喻。 鉴于此,做好手机APP测试对于软件开发方把控产品质量有着重要意义…

运维工作中的事件、故障排查处理思路

一、运维工作中的事件 https://www.51cto.com/article/687753.html 二、运维故障排查 一)故障排查步骤 1、明确故障 故障现象的直接表现故障发生的时间、频率故障发生影响哪些系统故障发生是否有明确的触发条件   故障举例:无法通过ssh登录系统 影响…

KubeSphere 学习之路

云原生KubeSphere最佳实践: https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzg4MzcyOTQ2NQ&actiongetalbum&album_id3022627663062056961&scene173&subscene&sessionidsvr_2156d508166&enterid1722492662&from_msgid2247484226&…

简约家居,探秘浦东TOP5装修公司的绿色魔法

在快节奏的现代生活中,家居装修不仅仅是为了美化居住空间,更是一种提升生活品质的方式。特别是对于追求环保和健康生活的业主来说,选择一家能够提供绿色装修服务的公司变得尤为重要。在浦东地区,有几家装修公司因其卓越的绿色装修…

【教程】Linux安装Redis步骤记录

下载地址 Index of /releases/ Downloads - Redis 安装redis-7.4.0.tar.gz 1.下载安装包 wget https://download.redis.io/releases/redis-7.4.0.tar.gz 2.解压 tar -zxvf redis-7.4.0.tar.gz 3.进入目录 cd redis-7.4.0/ 4.编译 make 5.安装 make install PREFIX/u…

从源码看 Redis:深入理解 redisDb 和 redisObject

Redis 是一个广泛使用的内存数据库,以其高性能和丰富的数据结构而闻名。不同于磁盘数据库,磁盘数据库将数据读取到文件中维护,而内存数据库将数据存储在内存中,意味着其想要维护数据,必须在代码中维护一个保存数据的结…

【eNSP模拟实验】STP生成树查询及根桥设置

STP协议的解释和作用 STP协议(Spanning Tree Protocol):生成树协议。是一种工作在OSI网络模型中的第二层(数据链路层)的通信协议,基本应用是防止交换机冗余链路产生的环路。用于确保以太网中无环路的逻辑拓扑结构,从而…

【算法训练记录——Day45】

Day45——动态规划Ⅶ 1.leetcode19_打家劫舍2.leetcode213_打家劫舍Ⅱ3.leetcode337_打家劫舍Ⅲ 1.leetcode19_打家劫舍 思路:我的理解是不能出现连续两次偷窃,即 要么今晚不偷 dp[i] dp[i-1]; 要么今晚开干! dp[i] dp[i-2] nums[i]; 怎么…

NVM 安装node报错 Could not retrieve https://nodejs.org/dist/latest/SHASUMS256.txt.

报错内容: Could not retrieve https://nodejs.org/dist/latest/SHASUMS256.txt. 解决这个办法需要修改nvm的淘宝镜像 在nvm的目录下编辑settings.txt 将下面内容: node_mirror:npm.taobao.org/mirrors/node/ npm_mirror:npm.taobao.org/mirrors/npm/…

酷柚易汛ERP再次迎来升级,八月重拳出击!

1、修复调拨单批量导入下载模版错误 2、修复添加门店选择地址详情报错 3、修复采购清单 关联其他支出单 跳转 之后审核 原采购清单 关联其他支出单消失问题 4、修复以销订购 填了了采购数量 仍然提示请填写本次采购数量问题 5、修复应付款/收款明细表 单据编号是 核销单/其他…

Linux第八节 - make / mikefile

一、补充与复习 Linux在运行可执行程序的时候,有两种运行方式: ./mytest (表示当前路径下的可执行程序 - 用/分隔开) /home/shy/108/lesson8/mytest (也可以运行程序,但是是在绝对路径下!&…

图观 | 嬴图GraphRAG在博物馆文物馆藏中的应用探讨

图数据库技术是AI走向强人工智能的必经之路和重器!因为图数据库(含知识图谱)最大限度还原(模拟)了人的思维和思考方式。 —— 摘自孙宇熙《图数据库原理、架构与应用》 前言: 博物馆文物馆藏管理和观众服务…

基于内地城市生活垃圾收运场景的路线规划算法

基于混合遗传算法和模拟退火算法的优化垃圾收集路线规划 摘要 本论文提出了一种基于混合遗传算法(GA)和模拟退火算法(SA)的创新路线规划方法,旨在优化内地城市的生活垃圾收集效率。算法结合了遗传算法的全局搜索能力…

中证500etf期权合约一手多少钱?

中证500etf期权合约一手需要的资金取决于多个因素,比如做一手需要几十块钱到几百块钱不等,不过买卖中证500etf期权合约一手多少钱,也是包括期权的执行价格、权利金、保证金要求等。下文为大家介绍中证500etf期权合约一手多少钱?本…

.\venv\Scripts\activate : 无法加载文件 E:\,因为在此系统上禁止运行脚本。

问题描述: 问题原因: Windows PowerShell 的执行策略用于控制脚本的运行权限和安全性。 以下是几种常见的执行策略及其特点: AllSigned:只允许运行经过数字签名的脚本。这意味着无论是本地创建的还是从网络获取的脚本&#xff0…

如何设计一个高性能的分布式系统?

本文讨论的主题是高性能,主要思路是围绕快展开,这么设计为什么会快? 文章目录 架构设计:微服务架构负载均衡数据一致性方案选择容错处理:双机互备消息队列缓存总结 架构设计:微服务架构 第一个设计是应用…

“再来一单“业务功能开发

文章目录 概要整体架构流程技术细节小结 概要 再来一单”功能常见于餐饮、零售、外卖等行业,主要目的是为了简化用户的重复购买流程,提高用户体验和效率。 需求分析以及接口设计 再来一单就是将原订单中的商品重新加入到购物车中,所以本质上是"增…

人工智能助力芯片半导体发展,开拓芯片设计技术新趋势

微型硅片上可以容纳多少个晶体管?这些晶体管是构成世界各地技术的集成电路(IC)的基础。1971年,第一款微处理器集成有2,300个晶体管,而如今的硅片上却超过了1000亿个晶体管。在摩尔定律失效之前,每两年晶体管…

10、billu-b0x2

难度 中 目标 root权限 首先确定靶机ip地址 netdiscover -i eth0 -r 192.168.189.0/24 kali 192.168.189.58 靶机 192.168.189.184 信息收集端口扫描 看到一个80和8080,先重点摸一下网站的内容 然后看到信息里有个robots.txt 首先就去访问一下 看到有许多不允许…

高频JMeter软件测试面试题

近期,有很多粉丝在催更关于Jmeter的面试题,索性抽空整理了一波,以下是一些高频JMeter面试题,拿走不谢~ 一、JMeter的工作原理 JMeter就像一群将请求发送到目标服务器的用户一样,它收集来自目标服务器的响应以及其他统计…