乐趣区

关于数据库:墨天轮访谈-IvorySQL王志斌IvorySQL一个基于PostgreSQL的兼容Oracle的开源数据库

分享嘉宾 王志斌 瀚高 IvorySQL 产品经理
整顿:墨天轮社区

导读

大家好,我是瀚高 IvorySQL 产品经理王志斌,IvorySQL 是基于 PostgreSQL 的衍生开源我的项目。
我明天分享的内容次要分为三个局部:咱们是谁?咱们做了什么?以及对 IvorySQL 具体介绍。

咱们是谁

1、瀚高是谁

瀚高作为以数据库为外围业务的企业始终致力于客户提供具备外围竞争力的解决方案。咱们从最开始的数据库维保服务起步,在服务的过程中收集到了很多数据库产品的需要,同时咱们也看到了国产数据库的一个商业前景。通过一直的学习摸索,瀚高最初确定了基于 PostgreSQL 数据库来研发数据库产品。

目前瀚高总部设立在济南,同时咱们在北京、济南、青岛、成都、保定这五个中央都有研发核心,具备覆盖全国的一个本地化服务能力,从而疾速响应客户的需要。

同时瀚高为了增强和国内社区单干,在海内也设立了北美研究院、西雅图研发核心和伊斯兰堡的研发核心。


图 1 瀚高企业简介

2、瀚高的倒退历程

我大略为大家介绍一下瀚高的倒退历程。在初创期,咱们还是以 Oracle 的维保服务为主,次要为客户提供专业化的服务。然而在理论过程中,咱们也发现了大量的客户需要,包含功能性、安全性等方面。

随着国产化过程的一直推动,咱们看到在数据库的业余的畛域中没有外围产品,倒退其实是受到很大局限性。因而公司 在 2009 年开始转型,从传统的运维服务转向研发自主可控的一个国产数据库产品,并于 2011 年推出了本人的数据库产品 HighGo Database。在进入发展期后,咱们在产品性能上做一直的迭代,致力的去打造一个产品的生态圈。

目前公司进入了翻新的冲破期,在各个业务畛域拓展产品利用场景,从而更好地服务客户。从目前国内数据库市场的外围需要来看,迫切需要一个可能代替 Oracle 的一个关系型的数据库产品,这个产品呢,既能够被咱们外乡的一个技术资源掌控,同时也可能有全球性生态空间的撑持,具备齐备的生态环境。


图 2 瀚高倒退历程

咱们做了什么

瀚高在开源上的奉献次要分为三个方面:国际交流单干、开源奉献以及人才培养。

开源离不开社区建设,瀚高积极参与国内的社区活动,从最开始的外围服务到奉献代码以及外围参加。截止到目前为止,咱们在博客零碎曾经发表了 100 多篇技术文章,向 PostgreSQL 开源社区提交了将 10 万余行的代码。


图 3 瀚高积极开展国际交流单干

在开源建设方面,从 PG9.3.1 开始参加文档的翻译工作,下图为次要版本文档翻译链接。


图 4 瀚高积极参与开源建设

而在人才培养方向,咱们与高等院校有着严密的单干,和北京大学、深圳大学等学校发展了相干的开源通识课以及开发实际课程,同时瀚高的高级工程师参加教案编制、课件制作,以及实际课题拟定等工作,助力打造开源生态圈。


图 5 瀚高踊跃进行人才培养建设

IvorySQL 是什么

1、IvorySQL 我的项目背景

IvorySQL 我的项目是如何诞生的?次要是基于这四个背景:数据安全、服务教训、开发诉求、产品需要。

首先,数据安全曾经成为保障国家平安的重要组成部分。数据库作为信息系统的底层存储平台,责任重大。同时国家也在大力提倡自主可控,不同畛域与行业都在提及“信创”,瀚高也参加其中。

第二个背景是瀚高服务教训的积攒。瀚高通过客户服务积攒了十分丰盛的需要。依照以往通过利用迁徙来革新客户,然而这样的做法对造成不好的用户体验,实际上对用户的业务零碎也具备很大的侵入性,造成一些问题。

第三个背景是产品需要。一些客户有兼容性产品需要,具体来说是将原有的商业版数据库迁徙到 PG 数据库上,这样也会面临着兼容性的问题。

第四个背景来自于开发者。实际上一部分第三方的开发组织和集体实现了兼容性的性能代码,但国内社区并不认可纳入到 PG 的主版本,所以咱们提出了 IvorySQL 开源我的项目,心愿通过单干共建的形式来解决上述提到的这些问题。


图 6 IvorySQL 我的项目背景

2、IvorySQL 我的项目介绍

IvorySQL 我的项目由瀚高发动,基于的是 PostgreSQL 的开源分支。以后版本是 IvorySQL Release 1.3,咱们遵循 Apache 2.0 开源协定,同时 100% 与 PostgreSQL 兼容。

下图所示,咱们既要保留 PostgreSQL 的基本功能,也要退出一些兼容性,同时还要有新增个性,这也是 IvorySQL 的整体愿景。


图 7 IvorySQL 我的项目介绍

3、IvorySQL 倒退历程

自 IvorySQL 公布到现在的 1.3 版本,一共历经了四个里程碑,而整个我的项目采纳麻利开发的形式。

2021 年 12 月 15 号,IvorySQL 1.0 版本正式公布,偏重在数据类型和函数。IvorySQL 1.1 的版本公布于 2022 年的 1 月 25 号,该版本解决了 1.0 版本呈现的一些 bug,同时修改了小的个性。2022 年 2 月 28 号,咱们公布了 1.2 版本,与后面的版本相比,咱们新增了档次查问这个较大的个性。最新的 1.3 版本在 2022 年 5 月 27 号公布,减少了匿名块反对。

从版本公布的工夫线来出,基本上是遵循着 PostgreSQL 的倒退路线,并且随着它的版本所做出一些个性开发工作。这也实现了咱们方才所讲的 IvorySQL 100% 和 PostgreSQL 兼容,并且可能晋升、减少它的性能与兼容性。


图 8 IvorySQL 我的项目历程

4、IvorySQL 1.3 版本介绍

目前最新的版本是 IvorySQL 1.3,新版本是基于 PostgreSQL 14.3,它包含如下个性:

  • Oracle 兼容 - 包和函数
  • Oracle 兼容 -PL/iSQL 过程语言
  • 通过 GUC 参数切换 Oracle 和 PostgreSQL 模式
  • Oracle 兼容 - 多种 DDL 和 DML 语法
  • Oracle 兼容 - 日期 / 工夫函数
  • 反对档次查问
  • 反对匿名块

咱们研发团队实际上是从内部和外部进行 IvorySQL 的我的项目布局。咱们会从 github 内部渠道上接管一些意见和倡议,而后通过整顿剖析汇总纳入到布局内;另一方面,咱们依据之前的一些教训积攒从外部也进行了一些研发布局。最终咱们心愿通过这种内外联合的形式,打造出更好的开源项。


图 9 IvorySQL 路线图

从整体架构登程,咱们努力做到了让 IvorySQL100% 与 PostgreSQL 的整体架构兼容,保障原有的工作不受影响,并且反对更多的兼容性。


图 10 IvorySQL 整体架构

IvorySQL 在 PostgreSQL 的根底上减少的次要性能特点包含:

  • Oracle 兼容包
  • Oracle 兼容 PL/iSQL 过程语言
  • GUC 在 Oracle 和 PostgreSQL 模式之间切换
  • Oracle 兼容各种 DDL 操作的语法
  • Oracle 兼容的日期 / 工夫函数
  • 内置 Orafce

欢送大家参加到 IvorySQL 开源我的项目中来,以下是奉献路径与报告问题的形式。


图 11 IvorySQL 奉献路径


图 12 IvorySQL 问题报告路径

其实通过后面的介绍,大家应该也能理解到瀚高在开源畛域的这种继续投入态度。咱们也心愿越来越多的搭档可能参加进来,让 IvorySQL 这个开源我的项目可能继续倒退。

咱们是很违心做开源我的项目的付出者,做开源咱们是认真的,谢谢大家!

更多精彩内容,欢送大家观看现场视频回放与会议材料
视频回放:https://www.modb.pro/video/6500
会议材料:https://www.modb.pro/doc/64403


  • 查看原文:https://www.modb.pro/db/416303
  • 查看【国产数据库沙龙】开源生态专场文章、视频回放资源:https://www.modb.pro/topic/412121

欲了解更多能够进入墨天轮社区,围绕数据人的学习成长提供一站式的全面服务,打造集新闻资讯、在线问答、流动直播、在线课程、文档阅览、资源下载、常识分享及在线运维为一体的对立平台,继续促成数据畛域的常识流传和技术创新。

关注官网公众号:墨天轮、墨天轮平台、墨天轮成长营、数据库国产化、数据库资讯

退出移动版