2020-09-17 03:32:31
InfoWorld评选出的8款“超越”SQL的数据查询语言,为现代数据查询提供了更多优雅、简单和灵活的选择,具体介绍如下:
特点:GraphQL并非针对图形数据库,而是用于查询类似JSON嵌套格式存储数据的语言。它通过快速描述结果查询,仅需用户提供字段列表,后端智能转换请求为符合模式的连接模式。
优势:天然匹配JSON数据库,且在关系数据库表格模式搜索中日益流行。
起源:由Facebook构建,最初作为API查询语言,后成为独立开源项目。

PRQL
特点:PRQL(Pipelined Relational Query Language)查询构造为一系列小命令,采用函数方法,变量等功能减少重复,简化流程。
优势:代码采用Rust编写,结构可扩展,确保语言快速发展。
操作:一行的结果以长链形式输入下一行,删除步骤只需注释掉该行,其余部分仍可工作。
WebAssembly
特点:WebAssembly(Wasm)原用于创建快速Web应用,后被用于数据流工具中的数据转换。
优势:功能强大,级别低,能进行复杂数据转换,超出SQL范围。
应用:Redpanda选择WebAssembly作为数据流工具中的转换机制。

特点:图形查询语言(GQL)融合了Cypher、PGQL和GSQL等声明式编程语言。
优势:使用复杂属性图,允许节点共享多个连接。
操作:开发人员指定节点模型,数据库负责查找匹配项。

特点:Gremlin是原始图形搜索语言之一,基于步骤构建查询,每个步骤涉及映射、过滤或表格化结果。
优势:可嵌入Python等编程语言,增强查询能力。
应用:最初为Apache TinkerPop项目构建,被主要图形数据库和处理框架采用。

N1QL
特点:N1QL旨在让SQL用户更容易处理JSON对象,基本查询结构类似SQL,但根据JSON嵌套特性进行调整。
优势:提供查询工作台和全文搜索选项,优化查询体验。
起源:由Couchbase开发,作为查询文档的解决方案。
Malloy
特点:Malloy针对SQL语法冗长和性能陷阱问题,提供更简单语法和自然默认值。
优势:可编译成SQL,自动优化连接和子查询,提高查询效率。
构建:开源核心在TypeScript中构建,包含Node.js代码,VS Code插件简化开发。
Basis
特点:Basis作为数据管道工具,能从多种源提取数据,使用SQL和Python混合过滤,最后以多种形式交付数据。
优势:提供灵活的数据处理流程,适应多种输出需求。
应用:属于更新的数据管道工具之一,打开查询过程,支持多种数据源和输出形式。
这8款新型数据查询语言的出现,并不意味着SQL的衰落。相反,SQL的编写量仍在增加,而数据存储世界的快速发展激发了更多新尝试和拓展。这些新语言提供了不同的查询方式和思考角度,为开发者提供了更多选择和机会。