Spanner Graph と ISO 標準

このページでは、Spanner Graph がグラフ データベース向けの ISO 国際標準クエリ言語をどのようにサポートしているかについて説明します。

Spanner Graph は、次の 2 つの ISO 標準に基づいています。

以下の表は、SQL/PGQ、GQL の関係性、そして Spanner Graph がそれらの標準をどのようにサポートしているかについての概要を示したものです。

標準 SQL/PGQ GQL Spanner Graph
クエリ グラフパターン マッチング機能 コア Graph Pattern Matching Language(GPML)機能を GQL と共有します。 コア GPML 機能を SQL/PGQ と共有します。 どちらの規格もサポートされています。詳細については、Spanner Graph の GQL パターンをご覧ください。
クエリ その他のクエリ言語機能(LIMITORDER、集計など) 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 つに準拠:
  • 機能 GG20: 明示的な要素型名。
  • 機能 GG21: 明示的な要素型キーラベルセット。
  • 機能 GG22: 要素型のキーラベルセットの推論。
  • 機能 GG22: 要素型のキーラベルセットの推論。
  • 機能 GG23 オプションの要素型キーラベルセット。
サポートされています。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 のエスケープ値については、文字列リテラルとバイトリテラルのエスケープ シーケンスをご覧ください。
データ型 「プロパティ値の型としてサポートされているすべての値の型の集合に準拠しているという主張。このセットには、少なくとも以下が含まれている必要があります。
  • STRING または VARCHAR で指定された文字列型。
  • BOOLEAN または BOOL で指定されたブール型。
  • SIGNED INTEGERINTEGER、または INT で指定された符号付き通常整数型。
  • FLOAT で指定された近似数値型。
サポートされています。詳細については、Spanner Graph GQL でサポートされているデータ型の全一覧をご覧ください。

その他の機能

前のセクションで説明した機能は、標準の最小コンフォーマンス機能です。Spanner Graph は、ISO 標準の追加機能をサポートしています。詳細については、Spanner Graph スキーマの概要GQL の概要をご覧ください。