亚马逊发布 PostgreSQL 的 Babelfish 源代码

最近 消息传出,亚马逊决定公开“Babelfish for PostgreSQL”的源代码, 提议对 PostgreSQL 数据库进行扩展,以实现 Microsoft SQL Server 数据库的特定功能。

该项目的主要目标是提供在运行 PostgreSQL 的服务器上运行为 SQL Server 编写的应用程序的能力。 项目代码在 Apache 2.0 许可和 PostgreSQL 许可下开放。

对于那些不熟悉 Babelfish 的人来说,你应该知道这个 支持用于将客户端连接到 SQL Server、T-SQL 和 SQL Server 特定查询语言扩展的网络协议, 允许您将正在运行的应用程序从 Microsoft SQL Server 转换为 PostgreSQL,而无需修改代码或进行最少的更改,也无需更换 DBMS 的驱动程序。 对于应用程序,Babelfish 看起来像一个普通的 SQL 服务器。 该项目已在 Amazon Aurora 上使用。

今天,我们让 Babelfish 可用于 Aurora PostgreSQL。 Babelfish 使 Amazon Aurora PostgreSQL 兼容版能够理解 SQL Server 连接协议。 它使您能够将应用程序从 SQL Server 迁移到 PostgreSQL,成本更低、速度更快,并且与此类更改相关的风险更低。

据悉,该项目 Babelfish 遵循开放的开发模式 这使社区贡献者能够做出改变并影响发展。 对于用户,更改为 Babelfish 将允许您避免使用 SQL Server 的高额版税, 绕过许可限制,不依赖于专有产品维护政策的变化(取消福利、终止平台支持、价格上涨)。

该项目包括一组 PostgreSQL 扩展、一组 PostgreSQL 补丁和指南针工具包:

这些扩展为从 SQL Server 迁移所需的其他语法、数据类型和函数提供 PostgreSQL 支持。 总共提出了4个扩展:

  • babelfishpg_tsql: 它是执行 T-SQL (Transact-SQL) 语言实现的扩展,该语言通过过程编程来增强 SQL,支持局部变量和处理字符串、日期和数学表达式的高级函数。 大多数请求的 T-SQL 函数已经实现,包括保存点、存储过程和嵌套事务。 但是,语法和功能的很大一部分仍未实现(通常,这些是在实际应用程序中很少使用的特性,即兼容性表)。 例如,构造“ADD SIGNATURE”、“CREATE AGGREGATE”、“CREATE / ALTER / DROP APPLICATION ROLE | ASSEMBLY | ASYMMETRIC KEY”、“BEGIN CONVERSATION TIME”、“END / MOVE CONVERSATION”等。 它们尚不可用。
  • babelfishpg_tds: SQL Server 中使用的 TDS(表格数据流)协议实现的扩展,用于 DBMS 和客户端之间的网络连接。 支持 TDS 协议版本 7.1 及更高版本。
  • babelfishpg_common: 用于实现 SQL Server 特定数据类型的扩展。
    babelfishpg_money: 是基于 FixedDecimal 扩展代码的货币类型实现。

这些补丁包括为 Babelfish 扩展提供附加功能所必需的对 PostgreSQL 引擎的更改。 目前,与 PostgreSQL 开发人员一起,正在努力将准备好的补丁包含在主要的 PostgreSQL 组合中。 为 PostgreSQL 13 准备的补丁。

compass 实用程序旨在解析 T-SQL DDL 脚本和 SQL 代码以与 Babelfish 兼容。 在输出中,会生成一个报告,Babelfish 尚不支持启动应用程序所需的功能。

官方支持以下用于连接到 MS SQL Server 的客户端库:

  • OLEDB / MSOLEDBSQL 提供程序
  • OLEDB / SQLOLEDB 驱动程序
  • Ado.NET 实体框架
  • SQL Server 11.0 本机客户端
  • ODBC(开放式数据库连接)
    JDBC(Java 数据库连接)

最后 如果您有兴趣了解更多信息,您可以查看笔记的详细信息 在下面的链接中。 至于那些有兴趣能够看到源代码的人,他们可以这样做 从这个链接。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。