作者 | Richard MacManus
編譯 | 言征
出品 | 51CTO技術(shù)棧(微信號:blog51cto)
一家名為Tembo的公司鼓勵開發(fā)人員在Postgres之上進(jìn)行構(gòu)建,使用越來越多的Postgres擴(kuò)展。
PostgreSQL(通常稱為Postgres)是一個流行的免費(fèi)開源關(guān)系數(shù)據(jù)庫。多年來,它吸引了許多擴(kuò)展和第三方工具,這激發(fā)了一家名為Tembo的公司構(gòu)建“Postgres即平臺”服務(wù)——一種Postgres擴(kuò)展和其他工具的市場。目標(biāo)是使開發(fā)人員能夠“在Postgres上構(gòu)建任何應(yīng)用程序”。
圖片
為了理解這些問題,我采訪了微軟首席技術(shù)官Samay Sharma,他之前在微軟管理一個由Postgres提交者和貢獻(xiàn)者組成的團(tuán)隊。
Tembo將自己宣傳為“在一個統(tǒng)一的平臺內(nèi)運(yùn)行Postgres及其整個生態(tài)系統(tǒng)的托管云——擴(kuò)展、應(yīng)用程序、工具等等?!钡玈harma特別想強(qiáng)調(diào)的是擴(kuò)展。
他告訴我:“在我看來,現(xiàn)在是擴(kuò)展占據(jù)中心地位并推動在Postgres之上構(gòu)建的變革性應(yīng)用程序的時候了?!?/p>
他補(bǔ)充道,“數(shù)據(jù)庫擴(kuò)張”對開發(fā)人員來說是一個日益嚴(yán)重的問題——一個組織中有多個數(shù)據(jù)庫,但并非所有數(shù)據(jù)庫都兼容。Sharma認(rèn)為“大多數(shù)這些問題都可以通過Postgres的幾個擴(kuò)展來解決。”
1、特定應(yīng)用程序Postgres,包括AI應(yīng)用程序
Sharma承認(rèn),Postgres當(dāng)然不缺乏托管服務(wù)提供商。但Tembo的目標(biāo)是提供一個“特定于應(yīng)用程序的Postgres”,其中擴(kuò)展是服務(wù)的重要組成部分。
“我們還根據(jù)您的應(yīng)用程序需求、工作負(fù)載等對Postgres進(jìn)行了不同的調(diào)整,”他繼續(xù)說道。
目標(biāo)是幫助不是數(shù)據(jù)庫專家的應(yīng)用程序開發(fā)人員充分利用Postgres??紤]到我們正處于生成人工智能的時代,它有自己的數(shù)據(jù)需求——比如在LLM處理內(nèi)容之前和之后使用矢量數(shù)據(jù)庫來優(yōu)化內(nèi)容——我問Tembo是如何應(yīng)對人工智能趨勢的。
“Postgres有一個擴(kuò)展名為pgvector,”Sharma解釋道。
“這樣你就可以在現(xiàn)有的表中添加一個簡單的數(shù)據(jù)類型vector。所以,即使你有現(xiàn)有的數(shù)據(jù)行,你也可以添加一個vector數(shù)據(jù)類型——這是一個轉(zhuǎn)換的嵌入。”他補(bǔ)充道,在Tembo,他們已經(jīng)構(gòu)建了一個名為pg_vectorize的擴(kuò)展,他說“可以讓你從Postgres中獲取OpenAI嵌入?!?/p>
他指出,以前的擴(kuò)展只能用C編寫,但現(xiàn)在它們也可以用Rust編寫。該擴(kuò)展采用Postgres列“,然后查詢OpenAI,生成嵌入,并將其存儲在數(shù)據(jù)庫旁邊,只需一個函數(shù)調(diào)用?!?/p>
除了pg_vectorize,Tembo還提供了200多個其他擴(kuò)展。受用戶歡迎的擴(kuò)展包括地理空間、數(shù)據(jù)倉庫和“近似聚合算法”。在數(shù)據(jù)倉庫方面,Sharma指出,使用Postgres擴(kuò)展的吸引力之一是,它是使用大型提供商的解決方案的一種具有成本效益的替代方案(他提到Snowflake作為一個例子)。他說:“從歷史上看,擁有少量數(shù)據(jù)的開發(fā)人員不得不使用昂貴的技術(shù)[…],遠(yuǎn)遠(yuǎn)超出了他們目前的需求?!?。
Sharma說,Tembo的目標(biāo)是“瓦解數(shù)據(jù)堆?!?,這樣“你就可以使用一個平臺來獲得你需要的任何類型的數(shù)據(jù)庫,而不是去找15家供應(yīng)商,購買15個不同的數(shù)據(jù)庫,然后學(xué)習(xí)如何將它們拼湊在一起。”
2、使用AI來生成SQL
我提到過,一些開發(fā)人員正在使用大型語言模型或Copilot產(chǎn)品將他們使用的任何編程語言翻譯成SQL?;蛘?,來使用AI來改進(jìn)他們的SQL查詢。我問Tembo是否有這種功能。
他證實(shí)道,的確有Postgres擴(kuò)展可以將自然語言查詢轉(zhuǎn)換為SQL查詢——pg_human就是一個例子。他補(bǔ)充說,未來幾年,你可能可以使用自然語言直接與數(shù)據(jù)對話。
圖片
他說:“你最終想要的實(shí)際行為是,你所有的數(shù)據(jù)都整合在一個平臺上,你可以問它你想問的問題?!?/p>
“現(xiàn)在,今天,您使用SQL作為一種方法來實(shí)現(xiàn)這一點(diǎn)——但隨著時間的推移,隨著自然語言[processing]中新的SQL生成功能,我認(rèn)為我們有可能達(dá)到這一點(diǎn)。”
3、為什么現(xiàn)在要做一個擴(kuò)展市場?
最后,Sharma說,Tembo的目標(biāo)是為Postgres創(chuàng)建一個“擴(kuò)展市場”。他承認(rèn)Postgres擴(kuò)展已經(jīng)存在了一段時間,但他認(rèn)為現(xiàn)在是建立市場的合適時機(jī),因?yàn)橛性絹碓蕉嗟臄U(kuò)展開發(fā)人員,但他們的產(chǎn)品沒有得到足夠的利用。
他說:“很難為擴(kuò)展找到文檔,很難找到擴(kuò)展本身,很難判斷它們的成熟度?!?/p>
“因此,就生態(tài)系統(tǒng)的成熟而言,供應(yīng)商承擔(dān)起這一責(zé)任是很重要的?!盩embo似乎想成為Postgres擴(kuò)展的默認(rèn)供應(yīng)商。
原文鏈接:https://thenewstack.io/how-devs-can-use-postgres-extensions-including-for-ai-apps/