社区1月月报|OceanBase 4.1 即将发版,哪些功能将会更新?
我们每个月都会和大家展开一次社区进展的汇报沟通会,希望通过更多的互动交流让OceanBase 开源社区更加透明,实现信息共享,也希望能营造更加轻松的氛围,为大家答疑解惑,让大家畅所欲言。如果您对我们的社区有任何建议,欢迎在GitHub 上提 Issues 或 PR ,也欢迎大家成为 Contributor,参与到社区建设中来。
12月的社区月报中和大家分享了「OMS 4.0 发布」支持 MySQL 到 OceanBase 4.0 的数据同步和迁移,那在1月份 OceanBase 又有哪些产品动态值得关注呢?本文将会和大家分享在过去一个月 OceanBase 内核的版本迭代以及开发者的共建交流。
内核及生态工具有何进展?
经常有小伙伴在社区论坛、钉钉技术交流群、GitHub…提出的需求,我们都进行了收集整理,那下面就来分享一下大家最关心的问题:内核及生态工具的功能开发。
OceanBase 内核 4.1 版本的功能**都已经完成开发,目前在测试中,预计将会在 2023年3月份中旬发布,**主要包括用户功能和系统性能。
- **用户功能:**direct path load、index_skip_scan,MySQL GIS,latin1字符集、主备库(基于归档)等;
- **系统功能:**4.x在线升级、系统日志优化、视图性能优化(系统内部表添加索引)等
4.1版本迭代的功能远不止这些,如果大家想要了解整个功能需求,可以关注3月25日的开发者大会,会向大家进行详细的解读,点击报名参会👉大会报名。
随着内核4.1版本的发布,在同一时间我们也会发布一些生态工具,包括以下组件:
- OBD(包web版):除了对内核版本的适配,还提供了白屏部分的能力,让用户能更好的使用部署能力;
- OCP:推出 OCP Express,OCP Express 资源消耗更低,也不需要部署其他圆数据库,非常适合小规模的集群;
(大家可以直接通过 OBD 部署 OCP Expres,在使用上会有一个比较统一的体验)
- ODP(OBProxy)社区版:支持事务内部路由、latin1 字符集合等;
- ODC、ob-agent、obcdc 等
OceanBase 开源仓库从哪入手?
上文已经带和大家分享了 OceanBase 整体的发布计划,下面在来和大家介绍一下 OceanBase 的开源仓库,以及作为开发者如果你想来 OceanBase 玩,可以从哪些仓库入手?
在 OceanBase Pepositories 下包含了很多仓库,其中 OceanBase 是我们的主仓库;进入主仓后,可以先从 Wiki 入手,在 Wiki 中可以看到开发者手册以及 OceanBase 数据库大赛的赛前培训课程,这些都归档在开发者教程中(如图2)
图1
图2
以上为 OceanBase 的基础模块介绍,关于实操, Contributing 章节 会告诉大家如何去编译,包括如何配置 IDE 以及如何部署源码编译的 OceanBase 等。
图3
下面这段代码是 obd.sh 编译后部署 OceanBase 的例子。libtool 是部署工具的依赖,libaio 是 OceanBase 的运行时依赖。obd.sh deploy 会使用下面示例中 single.yaml 的特定配置文件通过 obd 部署 OceanBase。如果你对 OceanBase 内核研发感兴趣,可以参照这个指南进行尝试。另外,如果在你使用过程中发现我们缺失什么文档,也欢迎在下方评论区反馈,我们非常希望大家能够给我们提供建议。
yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
yum install -y libtool libaio obclient
# go to your oceanbase source code directory and it's subdirectory `tools/deploy`
cd `/your/oceanbase/source/tools/deploy`
# `/your/deploy/home/path` is the directory to deploy oceanbase cluster
./obd.sh prepare -p `/your/deploy/home/path`
./obd.sh deploy -c single.yaml
ob-example
除了内核开发,在 OceanBase 仓库中还有 OceanBase 的应用,或中间件生态。这些仓库的入门成本相较于 OceanBase 内核会更低一些。以 ob-example 为例,ob-example仓库(如图4)主要是告诉大家不同的语言如何连接 OceanBase 代码,包括 go 语言、java语言等等,我们也欢迎广大的开发者,贡献出大家常用的语言及中间件的示例代码。
图4
ob-example 仓库,基于 Gitpod 搭建了在线快速使用平台,大家可以点击链接直接进入:https://gitpod.io/#https://github.com/oceanbase/ob-example,当你点击 Gitpod 链接时可以将 OceanBase 拉起来。利用这个功能,大家可以不需要借助额外的服务器,就可以体验自己的连接示例代码是否能够正常访问 OceanBase。
ob-example 仓库的 Contributors 的章节包含了已经完成的连接器示例和将来需要添加的示例,我们也希望有开发者能一起去共建这个仓库。
图5
我们每个仓库都包含了一个env.sh(环境准备)和run.sh.sh(运行用例);以java connector为例,java connector 的环境准备只需要我们下载 MySQL Connector 就可以了;在运行用例时,实际上就是编译运行 Test.java;最后给大家展现一个简单的示例程序,该程序会告诉大家如何连本机,创建一张表,插入数据,查询数据。如果大家感兴趣可以在环境上去执行一下代码:https://github.com/oceanbase/ob-example/tree/master/java-jdbc
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Test {public static void main(String[] args) {try {Class.forName("com.mysql.jdbc.Driver");try{Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:2881/test?user=root&password=");System.out.println("success to connect OceanBase with java jdbc");Statement sm = connection.createStatement();String q1="drop table if exists test";String q2="CREATE TABLE test( name varchar(36) NOT NULL DEFAULT ' ') DEFAULT CHARSET = utf8mb4";String q3="insert into test values ('Hello OceanBase')";String q4="select * from test limit 1";sm.executeUpdate(q1);sm.executeUpdate(q2);sm.executeUpdate(q3); ResultSet rs = sm.executeQuery(q4);rs.beforeFirst();while(rs.next()){String Name = rs.getString("name");System.out.printf("%s\n",Name);}rs.close();} catch (SQLException se) {System.out.println("error!");se.printStackTrace() ;}} catch (Exception ex) {ex.printStackTrace();}}
}
相关文章:

社区1月月报|OceanBase 4.1 即将发版,哪些功能将会更新?
我们每个月都会和大家展开一次社区进展的汇报沟通会,希望通过更多的互动交流让OceanBase 开源社区更加透明,实现信息共享,也希望能营造更加轻松的氛围,为大家答疑解惑,让大家畅所欲言。如果您对我们的社区有任何建议&a…...

Javascript的API基本内容(二)
一、事件监听 结合 DOM 使用事件时,需要为 DOM 对象添加事件监听,等待事件发生(触发)时,便立即调用一个函数。 addEventListener 是 DOM 对象专门用来添加事件监听的方法,它的两个参数分别为【事件类型】和…...
ChatGPT热度“狂飙”,OceanBase也去找它唠了唠
最近互联网的关键字 非 ChatGPT 莫属 就是这个小东西 集唠嗑、提问、答疑、科普、写作于一体 让我看看哪个孤独的打工人 还没和 ChatGPT 聊上一聊 有人说 ChatGPT 这么智能 或将取代人类的工作 OceanBase 的小编表示不服气 于是,抱着好奇之心试了一试 对 …...
HTTP协议基础知识点扫盲;HTTPS协议及密码学基础
目录 一、Http协议的特性 二、http协议的请求 1.请求行第一行,包含三个信息:请求方式,url,http协议版本 2.请求头浏览器向服务器发送一些状态数据,标识数据等等 3.请求主体请求代理端项服务器端,发送的…...

【golang/go语言】Go语言之反射
本文参考了李文周的博客——Go语言基础之反射。 一、反射初识 1. 什么是反射 在计算机科学中,反射是指计算机程序在运行时(run time)可以访问、检测和修改它本身状态和行为的一种能力。用比喻来说,反射就是程序在运行的时候能够…...

Java+Swing+Mysql实现超市管理系统
一、系统介绍1.开发环境操作系统:Win10开发工具 :IDEA2018JDK版本:jdk1.8数据库:Mysql8.02.技术选型JavaSwingMysql3.功能模块4.系统功能1.系统登录登出管理员可以登录、退出系统2.商品信息管理管理员可以对商品信息进行查询、添加…...

华为OD机试题,用 Java 解【机器人走迷宫】问题
最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…...

软件测试基本概念
软件测试基本概念 1. 什么是软件测试 软件测试就是验证软件产品特性(功能, 界面, 兼容性, 性能…)是否符合用户的需求,同时软件测试不仅要测试系统是否做了其应该做的, 还需要测试系统是否未作其不应该做的。 2. 调试与测试 软件测试与调试的区别: …...

数学建模介绍
🚀write in front🚀 📜所属专栏: 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论,是对我最大的激励…...

【LVGL】学习笔记--(2)GUI Guider的使用
基于上一篇【LVGL】学习笔记--(1)Keil中嵌入式系统移植LVGL,已经成功地移植了LVGL到我们的嵌入式板子上,并配合磁控旋钮编码器(或者诸如触摸屏、按键、键盘等其他输入设备均可),实现了简单界面的显示工作。这一章将学习…...

OpenCV-PyQT项目实战(6)项目案例02:滚动条应用
欢迎关注『OpenCV-PyQT项目实战 Youcans』系列,持续更新中 OpenCV-PyQT项目实战(1)安装与环境配置 OpenCV-PyQT项目实战(2)QtDesigner 和 PyUIC 快速入门 OpenCV-PyQT项目实战(3)信号与槽机制 …...

3 决策树及Python实现
1 主要思想 1.1 数据 1.2 训练和使用模型 训练:建立模型(树) 测试:使用模型(树) Weka演示ID3(终端用户模式) 双击weka.jar选择Explorer载入weather.arff选择trees–>ID3构建树…...

小程序和Vue+uniapp+unicloud培训课件
文章目录**一、什么是小程序****1.1** **小程序简介****1.2** **小程序的特点****1.3** **小程序的开发流程**个人小程序和企业小程序的区别1.4 小程序代码构成1.4.1 JSON 配置1.4.2 WXML 模板**数据绑定**逻辑语法条件逻辑列表渲染模板引用共同属性1.4.3 WXSS 样式1.4.4 JS 逻…...

C语言--指针进阶2
目录前言函数指针函数指针数组指向函数指针数组的指针回调函数前言 本篇文章我们将继续学习指针进阶的有关内容 函数指针 我们依然用类比的方法1来理解函数指针这一全新的概念,如图1 我们用一段代码来验证一下: int Add(int x, int y) {return xy;…...
【步进电机和 Arduino】
【步进电机和 Arduino】 前言1. 什么是步进电机及其工作原理?1.1 步进电机结构1.2 绕线方式1.3 通电方式2. 如何使用Arduino和A17步进驱动器控制NEMA4988步进电机2.1 A4988 和 Arduino 连接2.2 测量AB相2.3 A4988 限流3. 步进电机和 Arduino3.1 示例代码 13.2 示例代码 24. 使…...

【面试一:|和||、和区别】
相同点: ||和&&都是逻辑运算符,而|和&是位运算符。位运算符的优先级要比逻辑运算符的优先级高。 &和&&的区别 &和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运…...
【一天一门编程语言】使用汇编语言实现斐波那契数列
文章目录使用汇编语言实现斐波那契数列一、什么是斐波那契数列二、如何用汇编语言实现斐波那契数列一、汇编语言概念1.1 什么是汇编语言1.2 汇编语言的特点二、汇编语言指令2.1 简单指令2.2 复杂指令汇编语言程序结构代码实例指令集常用指令指令代码实例使用汇编语言实现斐波那…...

RabbitMQ实现死信队列
目录死信队列是什么怎样实现一个死信队列说明实现过程导入依赖添加配置编写mq配置类添加业务队列的消费者添加死信队列的消费者添加消息发送者添加消息测试类测试死信队列的应用场景总结死信队列是什么 “死信”是RabbitMQ中的一种消息机制,当你在消费消息时&#…...

【Linux】安装Tomcat教程
目录 1.上传安装包 2.解压安装包 3.启动Tomcat 4.查看启动日志 5.查看进程 6.开放端口 7.停止Tomcat 1.上传安装包 使用FinalShell自带的上传工具将Tomcat的二进制发布包上传到Linux(与前面上传JDK安装包步骤 一致)。 2.解压安装包 将上传上来的安装包解压到指定目录…...

学习笔记之Vuex(五)
Vuex(五)Vuex一、什么是Vuex二、Vuex工作原理三、搭建Vuex环境四、求和案例分析4.1 求和案例——vue实现4.2 求和案例——vuex实现(五)Vuex 一、什么是Vuex 1.概念 在Vue中实现集中式状态(数据)管理的一…...

铭豹扩展坞 USB转网口 突然无法识别解决方法
当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...

脑机新手指南(七):OpenBCI_GUI:从环境搭建到数据可视化(上)
一、OpenBCI_GUI 项目概述 (一)项目背景与目标 OpenBCI 是一个开源的脑电信号采集硬件平台,其配套的 OpenBCI_GUI 则是专为该硬件设计的图形化界面工具。对于研究人员、开发者和学生而言,首次接触 OpenBCI 设备时,往…...

Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...
深度剖析 DeepSeek 开源模型部署与应用:策略、权衡与未来走向
在人工智能技术呈指数级发展的当下,大模型已然成为推动各行业变革的核心驱动力。DeepSeek 开源模型以其卓越的性能和灵活的开源特性,吸引了众多企业与开发者的目光。如何高效且合理地部署与运用 DeepSeek 模型,成为释放其巨大潜力的关键所在&…...