検索
ニュース

AWS、オープンソースのSQL互換クエリ言語「PartiQL」を発表データフォーマット、データモデルなどに非依存

Amazon Web Services(AWS)は、データがどこに、どんなフォーマットで保存されているかにかかわらず、簡単かつ効率的にデータクエリを実行できるオープンソースのSQL互換クエリ言語「PartiQL」を発表した。

Share
Tweet
LINE
Hatena

 Amazon Web Services(AWS)は2019年8月1日(米国時間)、SQL互換のクエリ言語「PartiQL」を発表した。「データがどこに、どんなフォーマットで保存されているかにかかわらず、簡単かつ効率的にデータクエリを実行できる」としている。

 PartiQLを使えるクエリエンジンであれば、リレーショナルデータベースの構造化データ(トランザクション用と分析用の両方)、オープンデータフォーマット(「Amazon S3」データレイクなど)の半構造化データ、ネストされたデータ、カラムごとに属性が異なる「NoSQL」、ドキュメントデータベースのスキーマレスデータなどを使った処理が可能になる。

オープンソースとして公開

 AWSは、PartiQLのチュートリアル、仕様、レファレンス実装をApache License 2.0でオープンソースとして公開した。

画像
PartiQLクエリは、特定のデータベースタイプ、ベンダー、データフォーマット、データモデルに依存しない(出典:AWS

 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.

ページトップに戻る