两年前听瀚高的一个朋友说他们要做一个开源数据库项目,基于PostgreSQL,主打与Oracle的兼容性,并且与PG社区版内核同步发布。当时我听了有点不太相信,瀚高的Highgo是在PG内核上增加了一定的Oracle兼容性的特性,一般也会比PG社区版慢上几个版本,如果他们开源这么个数据库产品,会不会影响Highgo的发展。虽然我对瀚高投资开源数据库表示一些担忧,不过IvorySQL社区还是发展起来了,前几天还正式发布了3.0版本,在GITHUB上也获得了630+ STAR,在墨天轮国产数据库热度榜上排名136,排在中游偏上的水平。一个开源产品做到3.0版本,应该算是进入比较良性的阶段了。

在SQL引擎上,IvorySQL采用了一种特殊的双解析器模式,对于Oracle兼容模式和PG兼容模式分别有独立的解析树。大部分国产数据库产品对于Oracle数据库兼容的方法是在语法解析器中增加Oracle兼容的语法,而不是这种方式。IvorySQL这样设计的好处是Oracle兼容解析器的发展与PG解析器的发展是独立的,相互的影响较小。
通过分离解析器还有一些其他的好处,首先解析器的复杂度降低,隔离故障,更不容易出错。另外当PG升级时可以直接使用开源社区的原生解析器,不需要考虑Oracle语法的变化,Oracle语法变化时,也不会影响PG解析器,只需要独立升级就可以了。不过这么做也有一点不好的地方,那就是不能混搭使用PG和ORACLE语法。对于大多数应用场景而言,目前必须融合二者需求的需求并不多。
在Oracle数据库向IvorySQL迁移之时,IvorySQL的Oracle SQL解析器可以帮助用户降低迁移工作的难度,加快迁移速度。系统今后升级后,系统可以逐步兼容PG语法 ,从而慢慢平移到PG SQL解析器上。IvorySQL通过PL/iSQL插件实现与Oracle PL/SQL过程语言的兼容。PL/iSQL不仅支持存储过程,还支持匿名块等Oracle专用语法。
半个月前,IvorySQL的同学问我有没有兴趣试试他们马上要发布的V3.0版本,据说与2.x版本相比,在与Oracle兼容性方面有了较大的增强。对于测试数据库产品,我向来是比较有兴趣的,更何况是一个与Oracle有相当兼容性的PG数据库产品。
与原生态的 PG相比,IvorySQL的部署还是略微复杂一些的,需要安装一些依赖包。因为对Python的LIB库版本有要求,因此我刚开始在公司实验室已经安装了无数PG类国产数据库的环境中的安装部署没有成功,因为里面冲突的依赖库太多了。因此我就改为在笔记本电脑的wsl 环境中体验了。在一个干净的CentOS7环境中,部署起来还是很顺利的。

首先yum install -y libicu libxslt pytho

文章讲述了IvorySQL开源数据库项目的发展,特别是其3.0版本在Oracle兼容性上的提升,采用了独特的双解析器模式,以提高兼容性和减少故障。文章还提到了IvorySQL的部署细节和与其他数据库产品的对比。
最低0.47元/天 解锁文章
521

被折叠的 条评论
为什么被折叠?



