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