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授權許可開源,公開教學、規範以及參考實作,所有社群都能使用並參與貢獻。


Advertisement

更多 iThome相關內容