AWS、オープンソースのSQL互換クエリ言語「PartiQL」を発表:データフォーマット、データモデルなどに非依存
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をサポートする計画だという。
PartiQLの開発の背景
AWSは、さまざまなストレージエンジンにさまざまなフォーマットで保存されたAmazonの膨大なデータをクエリに変換する必要があったため、PartiQLを開発したという。
Amazonの小売事業部門は、大量の半構造化データセットを持っており、SQL的なクエリ言語を推進していた。多くのAWSサービス部門は、ドキュメント指向データモデルにメリットを見いだしていたが、既存のSQLの知識とツールも利用したいと考えていた。
さらに「Amazon Redshift」のようなAWSリレーショナルデータベースサービスや多くの既存SQLクライアントでは、データレイクの非リレーショナルデータへのアクセスが必要となっていた。その一方で、SQLとの厳密な下位互換性も維持する必要があった。
同時に、データベース研究コミュニティーでは、カリフォルニア大学サンディエゴ校の「SQL++」のようなクエリ言語により「SQLに非常に近く、しっかりした基盤を持つ一方、ネストされたデータや半構造化データも処理できるクエリ言語が、創造可能である」ことが明らかになっていた。
こうした状況の中で開発されたのがPartiQLだ。「PartiQLは、さまざまなフォーマットやサービスにわたってデータをクエリできるシンプルな一貫した方法を提供する。そのため、クエリに変更を加えることなく、データをデータソース間で自由に移動することが可能になる。PartiQLはSQLとの下位互換性を備え、多値データ、ネストされたデータ、スキーマレスデータに対応した拡張機能も提供する。これらは、標準SQLの結合、フィルタリング、集約機能とシームレスに組み合わせることができる」と、AWSは説明している。
PartiQLの設計原則
AWSによると、PartiQLは、以下の基本原則に従って設計されている。
- SQLとの互換性
- PartiQLに対応するSQLクエリプロセッサでも、既存のSQLクエリが引き続き機能する
- ネストされたデータのファーストクラスサポート
- ネストされたデータへの包括的かつ正確なアクセスとクエリが可能
- オプショナルスキーマとクエリの安定性
- PartiQLは、データセットのスキーマの事前定義を必要としない
- 最小限の拡張
- PartiQLでは、SQLに最小限の拡張が加えられている
- フォーマットからの独立
- PartiQLの構文とセマンティクスは、特定のデータフォーマットと結び付いていない
- データストアからの独立
- PartiQLの構文とセマンティクスは、特定のデータストアと結び付いていない
AWSは「PartiQLは、これらの原則を全て満たす初のクエリ言語だ」としている。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- PL/SQLとは何か プログラムの特徴と基本構造を理解する
本連載は、「PL/SQL(Procedure Language/Structured Query Language)」を理解し、活用していくための実践講座です。初回は「PL/SQLの特徴とプログラムの基本構造」を解説します。 - Azureの「SQLデータベース」とSQL Serverは何が違う?/Pivotal HD 2.0
Microsoft Azureで利用できるサービスの一つ「SQLデータベース」。Azure上でSQL Serverインスタンスを利用する場合と比較して、性能・料金体系はどう違う? SQL on Hadoopを実現するPivotal HDのHAWQとは? - 「Amazon RDS for SQL Server」がWindows認証をサポート
米Amazon Web Services(AWS)の「Amazon RDS for SQL Server」がWindows認証をサポートした。