このページでは、Spanner Graph がグラフ データベース向けの ISO 国際標準クエリ言語をどのようにサポートしているかについて説明します。
Spanner Graph は、次の 2 つの ISO 標準に基づいています。
- ISO/IEC 9075-16:2023 - 情報技術 - データベース言語 SQL プロパティグラフ クエリ(SQL/PGQ)、第 1 版、2023 年
- ISO/IEC 39075:2024 - 情報技術 - データベース言語 - GQL、第 1 版、2024 年
以下の表は、SQL/PGQ、GQL の関係性、そして Spanner Graph がそれらの標準をどのようにサポートしているかについての概要を示したものです。
標準 | SQL/PGQ | GQL | Spanner Graph | |
---|---|---|---|---|
クエリ | グラフパターン マッチング機能 | コア Graph Pattern Matching Language(GPML)機能を GQL と共有します。 | コア GPML 機能を SQL/PGQ と共有します。 | どちらの規格もサポートされています。詳細については、Spanner Graph の GQL パターンをご覧ください。 |
クエリ | その他のクエリ言語機能(LIMIT 、ORDER 、集計など) |
SQL ベース。 | SQL に似ていますが、GQL クエリ機能は線形にコンポーズ可能なグラフクエリ ステートメントです。 | どちらの規格もサポートされています。詳細については、Spanner Graph の GQL クエリ ステートメントと GoogleSQL のクエリ構文をご覧ください。 |
クエリ | グラフとテーブルの相互運用性 | サポートされています。 | サポート対象外。 | どちらの規格もサポートされています。詳細については、GRAPH_TABLE 演算子をご覧ください。 |
種類 | SQL/PGQ と GQL におけるデータ型、関数、式は類似しています。 | SQL/PGQ と GQL におけるデータ型、関数、式は類似しています。 | SQL/PGQ と GQL のほとんどのデータ型と式をサポートしています。詳細については、GoogleSQL のデータ型をご覧ください。 | |
DML | SQL/PGQ は SQL から DML を継承します。 | グラフベースの DML がサポートされています。 | SQL テーブルベースの DML がサポートされています。詳細については、GoogleSQL データ操作言語をご覧ください。 | |
スキーマ | テーブルからの CREATE PROPERTY GRAPH の使用がサポートされています。 |
オープン型とクローズ型での CREATE PROPERTY GRAPH の使用がサポートされています。 |
SQL/PGQ メソッドがサポートされています。詳細については、CREATE PROPERTY GRAPH の定義をご覧ください。 |
SQL/PGQ のサポート
標準 | SQL/PGQ の機能 ID | Spanner Graph |
---|---|---|
クエリ(グラフとテーブルの相互運用性) | 機能 G900: GRAPH_TABLE |
サポートされています。詳細については、GRAPH_TABLE 演算子をご覧ください。 |
スキーマ | 機能 G924: 要素テーブルの明示的なキー句。これは、機能 G920: DDL ベースの SQL プロパティ グラフへの準拠を主張することを意味します。 | サポートされています。詳細については、CREATE_PROPERTY_GRAPH ステートメントをご覧ください。 |
スキーマ | 機能 G925: 要素テーブルの明示的なラベルとプロパティ句。これは、機能 G920: DDL ベースの SQL プロパティ グラフへの準拠を主張することを意味します。 | サポートされています。詳細については、CREATE_PROPERTY_GRAPH ステートメントをご覧ください。 |
クエリ(GPML) | 機能 G001: 繰り返し可能な要素の一致モード。 | サポートされています。繰り返し可能な要素のマッチモードは、デフォルトのセマンティクスです。明示的な繰り返し要素のマッチモード句の構文はサポートされていません。 |
クエリ(GPML) | 機能 G008: グラフパターンの WHERE 句。これは、機能 G000: グラフパターンに準拠するという主張を意味します。 |
サポートされています。詳細については、グラフパターンをご覧ください。 |
クエリ(GPML) | 機能 G034: パスの連結。 | サポートされています。詳細については、グラフパターンをご覧ください。 |
クエリ(GPML) | 機能 G040: 頂点パターン。 | サポートされています。詳細については、要素パターンをご覧ください。 |
クエリ(GPML) | 機能 G042: 基本的なフルエッジ パターン。 | サポートされています。詳細については、要素パターンをご覧ください。 |
クエリ(GPML) | 機能 G070: ラベル式: ラベルの論理和。 | サポートされています。詳細については、ラベル式をご覧ください。 |
クエリ(GPML) | 機能 G073: ラベル式: 個々のラベル名。 | サポートされています。詳細については、ラベル式をご覧ください。 |
クエリ(GPML) | 機能 G090: プロパティ参照。 | サポートされています。 |
GQL のサポート
標準 | GQL の機能 ID | Spanner Graph |
---|---|---|
スキーマ | 機能 GG02: クローズド グラフ型を持つグラフ。GG20、GG21、GG22、GG23 の少なくとも 1 つに準拠:
|
サポートされています。GQL サポートは、GG01: オープンタイプのグラフまたは GG02 から選択できます。 Spanner Graph は、GQL とまったく同じ CREATE_GRAPH_TYPE ステートメントをサポートしていません。ただし、Spanner Graph でサポートされている CREATE_PROPERTY_GRAPH ステートメントは GG02 と密接に関連しており、GG20、GG21、GG22、GG23 に対しても類似のサポートを提供しています。 |
語彙の構造 | 「Unicode® 標準の特定のバージョン、および Unicode Technical Standard #10、Unicode Standard Annex #15、Unicode Standard Annex #31 の同期したバージョンに準拠しているという主張。準拠していると主張する Unicode® 標準のバージョンは、13.0.0 以上である必要があります。」 | Spanner Graph GQL は、GoogleSQL とまったく同じ語彙の構造を共有しています。Unicode のエスケープ値については、文字列リテラルとバイトリテラルのエスケープ シーケンスをご覧ください。 |
データ型 | 「プロパティ値の型としてサポートされているすべての値の型の集合に準拠しているという主張。このセットには、少なくとも以下が含まれている必要があります。
|
サポートされています。詳細については、Spanner Graph GQL でサポートされているデータ型の全一覧をご覧ください。 |
その他の機能
前のセクションで説明した機能は、標準の最小コンフォーマンス機能です。Spanner Graph は、ISO 標準の追加機能をサポートしています。詳細については、Spanner Graph スキーマの概要と GQL の概要をご覧ください。