Amazon Web Services(AWS)は、データがどこに、どんなフォーマットで保存されているかにかかわらず、簡単かつ効率的にデータクエリを実行できるオープンソースのSQL互換クエリ言語「PartiQL」を発表した。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Amazon Web Services(AWS)は2019年8月1日(米国時間)、SQL互換のクエリ言語「PartiQL」を発表した。「データがどこに、どんなフォーマットで保存されているかにかかわらず、簡単かつ効率的にデータクエリを実行できる」としている。
PartiQLを使えるクエリエンジンであれば、リレーショナルデータベースの構造化データ(トランザクション用と分析用の両方)、オープンデータフォーマット(「Amazon S3」データレイクなど)の半構造化データ、ネストされたデータ、カラムごとに属性が異なる「NoSQL」、ドキュメントデータベースのスキーマレスデータなどを使った処理が可能になる。
AWSは、PartiQLのチュートリアル、仕様、レファレンス実装をApache License 2.0でオープンソースとして公開した。
PartiQLはオープンソースのため「開発者はアプリケーションでのPartiQLの構文解析や組み込みを簡単にできる」とAWSは述べている。PartiQLの実装は、ユーザーがPartiQLクエリを解析し、アプリケーションが分析して処理できる「抽象的な構文ツリー」の作成支援やPartiQLクエリの直接解釈をサポートする。
PartiQLは既に「Amazon S3 Select」「Amazon Glacier Select」「Amazon Redshift Spectrum」「Amazon Quantum Ledger Database」(Amazon QLDB)、AWSの社内システムで使われている。今後数カ月間にさらに多くのAWSサービスでPartiQLが使えるようになる。AWS以外にも、例えばCouchbaseは「Couchbase Server」でPartiQLをサポートする計画だという。
AWSは、さまざまなストレージエンジンにさまざまなフォーマットで保存されたAmazonの膨大なデータをクエリに変換する必要があったため、PartiQLを開発したという。
Amazonの小売事業部門は、大量の半構造化データセットを持っており、SQL的なクエリ言語を推進していた。多くのAWSサービス部門は、ドキュメント指向データモデルにメリットを見いだしていたが、既存のSQLの知識とツールも利用したいと考えていた。
さらに「Amazon Redshift」のようなAWSリレーショナルデータベースサービスや多くの既存SQLクライアントでは、データレイクの非リレーショナルデータへのアクセスが必要となっていた。その一方で、SQLとの厳密な下位互換性も維持する必要があった。
同時に、データベース研究コミュニティーでは、カリフォルニア大学サンディエゴ校の「SQL++」のようなクエリ言語により「SQLに非常に近く、しっかりした基盤を持つ一方、ネストされたデータや半構造化データも処理できるクエリ言語が、創造可能である」ことが明らかになっていた。
こうした状況の中で開発されたのがPartiQLだ。「PartiQLは、さまざまなフォーマットやサービスにわたってデータをクエリできるシンプルな一貫した方法を提供する。そのため、クエリに変更を加えることなく、データをデータソース間で自由に移動することが可能になる。PartiQLはSQLとの下位互換性を備え、多値データ、ネストされたデータ、スキーマレスデータに対応した拡張機能も提供する。これらは、標準SQLの結合、フィルタリング、集約機能とシームレスに組み合わせることができる」と、AWSは説明している。
AWSによると、PartiQLは、以下の基本原則に従って設計されている。
AWSは「PartiQLは、これらの原則を全て満たす初のクエリ言語だ」としている。
Copyright © ITmedia, Inc. All Rights Reserved.