AWS开源可跨关联式与NoSQL资料库的查询语言PartiQL

每日动态2021-02-20 22:07:07
最佳答案

AWS推出了与SQL相容的查询语言PartiQL,只要资料库查询引擎提供PartiQL支援,使用者就能以PartiQL单一查询关联式资料库的结构化资料,以及开放资料格式中的巢状资料或是半结构化资料,甚至还能用来查询NoSQL或是文件资料库中无固定结构(Schema-less)的资料。除了AWS自家的资料库服务,NoSQL资料库Couchbase Server也承诺将会支援PartiQL。

企业资料分散在关联式资料库、非关联式资料库以及资料湖泊中。高度结构化的资料,储存在SQL资料库或是资料仓储;无固定结构的资料则由键值储存、图形资料库(Graph Database)、分类帐资料库或是时间序列资料库等NoSQL资料库处理;而在资料湖泊中的资料,可能也有部分缺乏结构,或是可能为巢状或是多值结构。不同的资料类型适用于不同的使用案例,而每种类型的资料,可能都有自己的查询语言。

不同的资料储存对应不同的查询语言,当企业更换资料格式或是资料库引擎时,可能还需要跟着改变应用程式和查询语法,AWS提到,这对于资料的应用,特别是使用资料湖泊的灵活性与效率,有着很大的阻碍。为了统一不同类型资料库存取方法,AWS发布了查询语言PartiQL,这是个与SQL相容的查询语言,可以用来查询以各种格式储存在各地的资料。

用户可以使用PartiQL来查询关联式资料库,像是在Redshift实作交易或是资料分析等应用,或对于Amazon S3资料湖泊的开放资料格式,同样能使用PartiQL对巢状资料与半结构化资料例如Amazon Ion格式进行查询,另外,PartiQL也可用于文件资料库等NoSQL资料库,查询无固定结构的资料。

AWS表示,PartiQL的出现,是为了满足自家查询和转换大量资料的需求,其提供严格的SQL相容性,可与标準SQL混合使用,执行连接(Join)、过滤(Filtering)与聚合(Aggregation)操作,并以最小扩充支援巢状和半结构化资料,让开发者以简单且一致的方法,不需要更改查询语言,就能查询各种格式和服务的资料。

PartiQL具格式独立性与储存独立性,PartiQL语法和语义不依赖任何资料格式,无论使用者是要查询JSON、Parquet、ORC、CSV还是Ion等格式,查询语句的写法都相同,PartiQL的查询在综合逻辑类型系统上运作,才对应到不同底层的格式。而PartiQL也不相依于特定资料储存,因此适用于不同的底层资料储存。

虽然过去针对跨不同类型资料库查询的问题,已有不少解决方案,AWS指出,像是Postgres JSON同样也相容于SQL,但是却无法良好地处理JSON巢状资料;而半结构化查询语言,虽然能良好处理巢状资料,但却无法与SQL语言相容。AWS提到,PartiQL是第一个能够完全解决这些问题的查询语言。

目前AWS已在自家多项服务支援PartiQL,包括Amazon S3 Select、Amazon Glacier Select、Amazon Redshift Spectrum、Amazon QLDB,接下来几个月将会有更多的AWS服务支援PartiQL,Couchbase也公布将加入支援PartiQL的行列。现在PartiQL以Apache2.0授权许可开源,公开教学、规範以及参考实作,所有社群都能使用并参与贡献。

免责声明:本文由用户上传,如有侵权请联系删除!