AWS開源讓PostgreSQL也可接受SQL Server查詢語法的Babelfish項目

來源: 十輪網(wǎng)
作者:十輪網(wǎng)
時間:2021-11-03
16854
AWS現(xiàn)在正式開源Babelfish for PostgreSQL(Babelfish)項目,該項目可以讓PostgreSQL理解專為微軟SQL Server撰寫的應用程序查詢,也就是說,借由使用Babelfish,能夠大幅降低用戶將應用程序,從SQL Server移動到PostgreSQL上的成本。

878-babelfish.jpg

AWS現(xiàn)在正式開源Babelfish for PostgreSQL(Babelfish)項目,該項目可以讓PostgreSQL理解專為微軟SQL Server撰寫的應用程序查詢,也就是說,借由使用Babelfish,能夠大幅降低用戶將應用程序,從SQL Server移動到PostgreSQL上的成本。

AWS在2020年的re:Invent大會上,宣布了Babelfish開源的消息,而該公司現(xiàn)在實現(xiàn)這項承諾,以Apache 2.0和PostgreSQL授權許可開源Babelfish,這項授權讓用戶可以自由使用、修改、發(fā)布和銷售自己的產(chǎn)品。

Babelfish是一組擴展組件,提供T-SQL和TDS(Tabular Data Stream)監(jiān)聽端口口,來強化PostgreSQL的能力,能夠支持SQL Server方言(Dialect)T-SQL,以及Savepoint、預存程序、嵌套交易等專屬于SQL Server的功能。

Babelfish能夠簡化將SQL Server應用程序搬遷到PostgreSQL的工作,進而減少用戶在SQL Server上的授權費用。通過Babelfish,即便最初是針對SQL Server構建的應用程序,用戶只要進行少量的程序代碼修改,不需要更換數(shù)據(jù)庫驅動程序,就能夠直接將SQL Server應用程序搬遷到PostgreSQL上。

Babelfish主要針對SQL、T-SQL和TDS三部分擴展支持。雖然SQL屬于ANSI標準,但是依據(jù)關聯(lián)資料實例程度和特定語言擴展,支持程度也有所不同,因此在SQL Server中的查詢,可能無法直接用于PostgreSQL,為了解決這個問題,Babelfish內置解析器來創(chuàng)建適合的查詢節(jié)點,如此SQL Server方言就能夠在PostgreSQL執(zhí)行,Babelfish還針對無法在PostgreSQL運行,或是運行方式不同,特定于SQL Server的資料類型、函數(shù)和運算符提供支持。

SQL Server的語言T-SQL也是Babelfish的支持重點,特別是用于預存程序結構,像是變量、例外和控制流程等。Babelfish還支持T-SQL語義,像是在部分錯誤情況下,PostgreSQL會產(chǎn)生回退處理,但是在SQL Server中卻不會,而通過TDS端口口,Babelfish讓PostgreSQL能夠遵循SQL Server的行為,確保正確性。

Babelfish對于SQL Server的有線協(xié)議TDS也提供良好的支持,該協(xié)議默認在端口口1433上運行,也就是說,Babelfish使用相同的網(wǎng)絡協(xié)議、端口口和連接驅動程序,不過這項支持是利用協(xié)議Hook實例,因此對于TDS的支持,Babelfish并非依靠翻譯層。

由于Babelfish不需要更換驅動程序,因此能大幅減少了更新SQL語言程序代碼的工作,使用Babelfish將應用程序從SQL Server移動到PostgreSQL,與完全移植到PostgreSQL原生驅動程序的工作相比,速度快上不少,而且因為Babelfish為開源項目,因此社區(qū)能夠自由地擴展功能,強化PostgreSQL的擴展性,以便于用在更多使用案例上。

立即登錄,閱讀全文
AWS
版權說明:
本文內容來自于十輪網(wǎng),本站不擁有所有權,不承擔相關法律責任。文章內容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權,請聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質服務商推薦
更多
掃碼登錄
打開掃一掃, 關注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
小程序
快出海小程序
公眾號
快出海公眾號
商務合作
商務合作
投稿采訪
投稿采訪
出海管家
出海管家