亞馬遜發布 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 中用於 DBMS 和客戶端之間的網絡連接的 TDS(表格數據流)協議的實現擴展。 支持 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. 權利:您可以隨時限制,恢復和刪除您的信息。