写点什么

墨天轮访谈 | IvorySQL 王志斌—IvorySQL,一个基于 PostgreSQL 的兼容 Oracle 的开源数据库

作者:墨天轮
  • 2022 年 6 月 23 日
  • 本文字数:2826 字

    阅读完需:约 9 分钟

分享嘉宾王志斌 瀚高 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





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


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

发布于: 刚刚阅读数: 3
用户头像

墨天轮

关注

数据库技术爱好者 2019.11.22 加入

墨天轮社区围绕数据人的学习成长提供一站式的全面服务。我们的愿景是共同建设一个有温度的技术社区和全新的数据社群聚合体,以乐知乐享之志,成同心共济之果。

评论

发布
暂无评论
墨天轮访谈 | IvorySQL王志斌—IvorySQL,一个基于PostgreSQL的兼容Oracle的开源数据库_数据库_墨天轮_InfoQ写作社区