智能体刷屏的背后,是 AI 应用拐点的来临?AICon 北京站议程重磅公布,50+ 硬核分享不容错过 了解详情
写点什么

谷歌建议在 SQL 中增加管道语法

作者:Renato Losio

  • 2024-10-25
    北京
  • 本文字数:1293 字

    阅读完需:约 4 分钟

谷歌建议在 SQL 中增加管道语法

在最近一篇题为“SQL 有问题,我们可以解决”(SQL Has Problems. We Can Fix Them)的论文中,谷歌的一个研究团队建议在 SQL 中引入新的管道语法。谷歌为解决 SQL 被认为存在的局限性而提出的这一解决方案目前已在 GoogleSQL 和 ZetaSQL 方言中提供,但社区对此的反馈却褒贬不一。


为了解决 SQL 的设计挑战并使其成为一种更灵活的语言,谷歌的研究团队提出通过引入管道数据流语法来扩展 SQL。这种设计遵循了与 MongoDB 查询语言 等新兴数据语言相似的模式。谷歌的软件工程师 Jeff Shute 及其同事写道:


我们不必容忍 SQL 的缺陷。这种语言是可以修复的!本文展示了如何借鉴其他语言和 API 的灵感,将管道结构化数据流添加到 SQL 中,而且只需可接受的开销。由此产生的语言依然是 SQL,但却是更好的 SQL。它更灵活、更可扩展,也更易于使用。


传统 SQL 将操作组合成一个语句,而管道式 SQL 则将其拆分为一系列步骤。例如,以下查询:


SELECT name, price FROM products WHERE price > 10;
复制代码


现在可以写成:


products | WHERE price > 10 | SELECT name, price;
复制代码


作者和其他专家认为,采用 SQL 的管道语法可以带来多种实际好处,包括提高代码的可读性和可维护性、更好的工具和 IDE 支持,以及提高工作效率。由于新语法旨在简化 SQL 查询的编写、读取和维护过程,因此可以加快开发周期,使查询结构更直观,更容易理解和修改。


来源:谷歌研究


目前,GoogleSQL 支持管道语法,这是一种 SQL 方言,用于 Google 的多个不同的 SQL 产品,包括 BigQuery、Spanner、F1、Bigtable、Dremel 和 Procella,既用于公开产品,也用于内部产品。Shute 及其同事总结道:


管道语法开启了全新的 SQL 使用方式、提升 SQL 工具的机会以及未来的语言创新(……)。取代 SQL 既不必要,也不理想,更不现实。我们可以从语言内部解决 SQL 最严重的问题。


谷歌并不是唯一一家采用管道式 SQL 的超大规模云服务提供商;微软也在 Azure Data Explorer 和使用 Kusto Query Language (KQL) 的 Fabric KQL DB 中提出了类似的做法。SQLite 的创建者 Richard Hipp 对此 并不十分认可,YugabyteDB 的数据库专家兼开发者倡导者 Franck Pachot 则认为这并 不是什么好主意。Pachot 写道:


这种管道语法在编写简洁 SQL 代码方面非常糟糕(……)。在所有语言中,以函数的签名、名称、输入参数和返回类型作为开头是有充分理由的(……),SQL 查询也是如此。SELECT 子句定义了返回给程序的内容:表格结果的列及其名称(……)。你能用管道语法查看上面的查询吗?你该如何猜测结果的结构?


在 Reddit 上的一个热门话题中,用户 Jabes 评论道:


我认为这看起来非常有趣。如果我的数据库能够支持它,并且假设优化器仍能将语句作为一个整体来考虑,我愿意试一试。我在想,是否有可能实现一个翻译层。


新语法也可用于 GoogleSQL 的开源版本 ZetaSQL。

作者简介


Renato Losio,拥有丰富的云架构师、技术负责人和云服务专家经验。他目前居住在柏林和的里雅斯特之间,远程担任首席云架构师。他的主要兴趣领域包括云服务和关系数据库。他是 InfoQ 的编辑,也是公认的 AWS 数据英雄。


原文链接:

https://www.infoq.com/news/2024/09/google-sql-pipe-syntax/

2024-10-25 08:0413378

评论

发布
暂无评论
发现更多内容

一文带你了解K8S 容器编排(上)

霍格沃兹测试开发学社

精彩演讲实录|在确定性和不确定性中探索AIOps的适用性

TRaaS

技术文章

GaussDB(for Redis)即将亮相华为云快成长直播间,让成本直降75%!

IT资讯搬运工

人工智能’

app自动化测试(iOS)元素定位(新手篇)

霍格沃兹测试开发学社

我们做了一个云原生成本优化产品

TRaaS

RPC接口测试技术-Tcp 协议的接口测试

霍格沃兹测试开发学社

云速ERP(WeLink认证版)上线,加速中小微企业数字化经营创新

IT资讯搬运工

人工智能’

华为云WeLink助力平房区打造智慧政务办公系统

IT资讯搬运工

人工智能’

NFT数字藏品系统开发:怎么开发自己的数字藏品平台?

开源直播系统源码

数字藏品 数字藏品系统软件开发 数字藏品开发 数字藏品系统 数字藏品软件

UI 自动化测试实战(二)| 测试数据的数据驱动

霍格沃兹测试开发学社

技术门槛高?来看 Intel 机密计算技术在龙蜥社区的实践 | 龙蜥技术

OpenAnolis小助手

云原生 intel sig 龙蜥技术 机密计算

iOS如何实现验证码登录丨MobTech

MobTech袤博科技

ios xcode

OPPO的航船:小布生命体将驶向怎样的科技彼岸?

脑极体

UI 自动化测试应不应该投入?有没有前途?怎样做最明智?

霍格沃兹测试开发学社

不信谣不传谣,亲自动手验证ModelBox推理是否真的“高性能”

华为云开发者联盟

人工智能 企业号九月金秋榜

最新版!955、不加班、双休的公司名单

千锋IT教育

软件测试 | 测试开发 | 一文搞定 uiautomator2 自动化测试工具使用

测吧(北京)科技有限公司

自动化测试

技术分享| 调度平台的好助手-快对讲

anyRTC开发者

音视频 调度 实时消息 快对讲 视频对讲

Android如何实现自定义短信登录丨MobTech

MobTech袤博科技

android

小程序可以在智能设备上运行?

Speedoooo

小程序 物联网 IoT 智能设备 小程序容器

iOS自动化真机测试验证环境过程中常见问题解析

霍格沃兹测试开发学社

《穿越时空的git》之创建版本库和常用命令操作

霍格沃兹测试开发学社

基于深度学习下的航空领域真空羽流解决方案

GPU算力

云南林职院 x WeLink一站式智慧迎新, 打造西南数字化职校新标杆

IT资讯搬运工

人工智能’

RPC接口测试技术-websocket 自动化测试实践

霍格沃兹测试开发学社

hive on spark 还是 spark on hive?

一生要强的查数姑

大数据 hive spark SQL 大数据仓库

新书上市 | 十分易上手的图解教程,全系列累计销量20万册!

图灵教育

程序员 计算机 图论

Z世代的开学季:华为技能加持,你就是焦点!

最新动态

Python 自动化测试(四)

霍格沃兹测试开发学社

iOS 自动化测试踩坑(一): 技术方案、环境配置与落地实践

霍格沃兹测试开发学社

设计模式的艺术 第十五章代理设计模式练习(设计一款基于C/S的网络图片查看器,用户只需在图片查看器中输入网页URL,程序将自动将网页所有图片下载到本地。)

代廉洁

设计模式的艺术

谷歌建议在 SQL 中增加管道语法_大数据_InfoQ精选文章