开发者如何使用Postgres扩展,包括AI应用?
作者 | Richard MacManus
编译 | 言征
出品 | 51CTO技术栈(微信号:blog51cto)
一家名为Tembo的公司鼓励开发人员在Postgres之上进行构建,使用越来越多的Postgres扩展。
PostgreSQL(通常称为Postgres)是一个流行的免费开源关系数据库。多年来,它吸引了许多扩展和第三方工具,这激发了一家名为Tembo的公司构建“Postgres即平台”服务——一种Postgres扩展和其他工具的市场。目标是使开发人员能够“在Postgres上构建任何应用程序”。
图片
为了理解这些问题,我采访了微软首席技术官Samay Sharma,他之前在微软管理一个由Postgres提交者和贡献者组成的团队。
Tembo将自己宣传为“在一个统一的平台内运行Postgres及其整个生态系统的托管云——扩展、应用程序、工具等等。”但Sharma特别想强调的是扩展。
他告诉我:“在我看来,现在是扩展占据中心地位并推动在Postgres之上构建的变革性应用程序的时候了。”
他补充道,“数据库扩张”对开发人员来说是一个日益严重的问题——一个组织中有多个数据库,但并非所有数据库都兼容。Sharma认为“大多数这些问题都可以通过Postgres的几个扩展来解决。”
1、特定应用程序Postgres,包括AI应用程序
Sharma承认,Postgres当然不缺乏托管服务提供商。但Tembo的目标是提供一个“特定于应用程序的Postgres”,其中扩展是服务的重要组成部分。
“我们还根据您的应用程序需求、工作负载等对Postgres进行了不同的调整,”他继续说道。
目标是帮助不是数据库专家的应用程序开发人员充分利用Postgres。考虑到我们正处于生成人工智能的时代,它有自己的数据需求——比如在LLM处理内容之前和之后使用矢量数据库来优化内容——我问Tembo是如何应对人工智能趋势的。
“Postgres有一个扩展名为pgvector,”Sharma解释道。
“这样你就可以在现有的表中添加一个简单的数据类型vector。所以,即使你有现有的数据行,你也可以添加一个vector数据类型——这是一个转换的嵌入。”他补充道,在Tembo,他们已经构建了一个名为pg_vectorize的扩展,他说“可以让你从Postgres中获取OpenAI嵌入。”
他指出,以前的扩展只能用C编写,但现在它们也可以用Rust编写。该扩展采用Postgres列“,然后查询OpenAI,生成嵌入,并将其存储在数据库旁边,只需一个函数调用。”
除了pg_vectorize,Tembo还提供了200多个其他扩展。受用户欢迎的扩展包括地理空间、数据仓库和“近似聚合算法”。在数据仓库方面,Sharma指出,使用Postgres扩展的吸引力之一是,它是使用大型提供商的解决方案的一种具有成本效益的替代方案(他提到Snowflake作为一个例子)。他说:“从历史上看,拥有少量数据的开发人员不得不使用昂贵的技术[…],远远超出了他们目前的需求。”。
Sharma说,Tembo的目标是“瓦解数据堆栈”,这样“你就可以使用一个平台来获得你需要的任何类型的数据库,而不是去找15家供应商,购买15个不同的数据库,然后学习如何将它们拼凑在一起。”
2、使用AI来生成SQL
我提到过,一些开发人员正在使用大型语言模型或Copilot产品将他们使用的任何编程语言翻译成SQL。或者,来使用AI来改进他们的SQL查询。我问Tembo是否有这种功能。
他证实道,的确有Postgres扩展可以将自然语言查询转换为SQL查询——pg_human就是一个例子。他补充说,未来几年,你可能可以使用自然语言直接与数据对话。
图片
他说:“你最终想要的实际行为是,你所有的数据都整合在一个平台上,你可以问它你想问的问题。”
“现在,今天,您使用SQL作为一种方法来实现这一点——但随着时间的推移,随着自然语言[processing]中新的SQL生成功能,我认为我们有可能达到这一点。”
3、为什么现在要做一个扩展市场?
最后,Sharma说,Tembo的目标是为Postgres创建一个“扩展市场”。他承认Postgres扩展已经存在了一段时间,但他认为现在是建立市场的合适时机,因为有越来越多的扩展开发人员,但他们的产品没有得到足够的利用。
他说:“很难为扩展找到文档,很难找到扩展本身,很难判断它们的成熟度。”
“因此,就生态系统的成熟而言,供应商承担起这一责任是很重要的。”Tembo似乎想成为Postgres扩展的默认供应商。
原文链接:https://thenewstack.io/how-devs-can-use-postgres-extensions-including-for-ai-apps/