日记大全

日记大全 > 句子大全

AWS开源让PostgreSQL也可接受SQL(Server查询语法的Babelfish项目)

句子大全 2008-02-21 06:30:50
相关推荐

AWS现在正式开源Babelfish for PostgreSQL(Babelfish)项目,该项目可以让PostgreSQL理解专为微软SQL Server撰写的应用程序查询,也就是说,借由使用Babelfish,能够大幅降低用户将应用程序,从SQL Server移动到PostgreSQL上的成本。

AWS在2020年的re:Invent大会上,宣布了Babelfish开源的消息,而该公司现在实现这项承诺,以Apache 2.0和PostgreSQL授权许可开源Babelfish,这项授权让用户可以自由使用、修改、发布和销售自己的产品。

Babelfish是一组扩展组件,提供T-SQL和TDS(Tabular Data Stream)监听端口口,来强化PostgreSQL的能力,能够支持SQL Server方言(Dialect)T-SQL,以及Savepoint、预存程序、嵌套交易等专属于SQL Server的功能。

Babelfish能够简化将SQL Server应用程序搬迁到PostgreSQL的工作,进而减少用户在SQL Server上的授权费用。通过Babelfish,即便最初是针对SQL Server构建的应用程序,用户只要进行少量的程序代码修改,不需要更换数据库驱动程序,就能够直接将SQL Server应用程序搬迁到PostgreSQL上。

Babelfish主要针对SQL、T-SQL和TDS三部分扩展支持。虽然SQL属于ANSI标准,但是依据关联资料实例程度和特定语言扩展,支持程度也有所不同,因此在SQL Server中的查询,可能无法直接用于PostgreSQL,为了解决这个问题,Babelfish内置解析器来创建适合的查询节点,如此SQL Server方言就能够在PostgreSQL执行,Babelfish还针对无法在PostgreSQL运行,或是运行方式不同,特定于SQL Server的资料类型、函数和运算符提供支持。

SQL Server的语言T-SQL也是Babelfish的支持重点,特别是用于预存程序结构,像是变量、例外和控制流程等。Babelfish还支持T-SQL语义,像是在部分错误情况下,PostgreSQL会产生回退处理,但是在SQL Server中却不会,而通过TDS端口口,Babelfish让PostgreSQL能够遵循SQL Server的行为,确保正确性。

Babelfish对于SQL Server的有线协议TDS也提供良好的支持,该协议默认在端口口1433上运行,也就是说,Babelfish使用相同的网络协议、端口口和连接驱动程序,不过这项支持是利用协议Hook实例,因此对于TDS的支持,Babelfish并非依靠翻译层。

由于Babelfish不需要更换驱动程序,因此能大幅减少了更新SQL语言程序代码的工作,使用Babelfish将应用程序从SQL Server移动到PostgreSQL,与完全移植到PostgreSQL原生驱动程序的工作相比,速度快上不少,而且因为Babelfish为开源项目,因此社区能够自由地扩展功能,强化PostgreSQL的扩展性,以便于用在更多使用案例上。

阅读剩余内容
网友评论
相关内容
拓展阅读
最近更新