MultiGraph概要

1つのTigerGraphインスタンスは複数のグラフを管理することができ、それぞれに独自のユーザー権限を持たせることができます。MultiGraphはこの種の初めての機能であり、TigerGraphプラットフォームのオプションサービスとして利用できます。

MultiGraphを使用すると、1つのグラフスキーマをすべての部門で共有できます(タイプレベルで異なるアクセス制御レベルを持ちます)

MultiGraphは、さまざまなユースケースにパワフルに対応します。

  • マルチテナンシー: 1つのTigerGraphインスタンスを使用して、それぞれが独自のユーザーセットを持つ複数の完全に別個のデータセットをサポートします。各ユーザーコミュニティは、他のユーザーコミュニティや他のデータセットを見ることはできません。

  • 同一データセットに対するきめ細かい権限付け: 単一のグラフ内で利用できる役割ベースのアクセス制御によって、クエリ(データ変更クエリを含む)を実行する権限の付与ができます。単一のグラフスキームでは、あるクエリを一部のユーザーだけが実行できるようにする方法はありません。同じデータセットに対して定義された複数のグラフを使用すれば、各グラフは独自のクエリセットと独自のユーザーセットを持つことができ、実質的に、誰がどのクエリを実行できるかをカスタマイズすることができます。

  • グラフのオーバーラップ: 共有データとプライベートデータを組み合わせられるよう、グラフを部分的にオーバーラップさせることができます。

  • 階層サブグラフ: 例えば、グラフXは、グラフYおよびZのドメインをカバーするように定義できます。つまり、グラフX =(グラフY) U (グラフZ)ということになります。これを工夫して利用すれば、データのパーティション化または親子構造を記述する際にさまざまな設定が可能となります。(これは、データ型のサブクラスを定義することと同義ではありません。データタイプは依然として独立しています。)

現在、グラフを1つだけ導入している場合でも、既存の設計をやり直すことなく、いつでもMultiGraphにアップグレードしてグラフの追加が可能です。

概念

グラフおよびグラフドメイン

グラフは、頂点タイプとエッジタイプの集合として定義されます。それは、より正確に言うなら、頂点タイプやエッジタイプの集まりの中のすべての頂点やエッジです。グラフのドメインは、頂点タイプとエッジタイプの集合です。各グラフには、独自のデータ読み込みジョブとクエリが含まれています。これらは他のグラフに影響を与えず、表示もされません。

CREATE GRAPH <gname> (<頂点タイプおよびエッジタイプのリスト>)

MultiGraphの原則

  • 基本ライセンスキーのTigerGraphインスタンスは、1つのグラフのみを持つことができます。MultiGraphライセンスキーのTigerGraphインスタンスは、複数のグラフ作成が可能です。

    superuserおよびglobaldesignerは、1つ以上のグラフを定義できます。2つのグラフのドメインは、完全に分離させることも、重複させることも、正確に一致させることもできます。

  • superuserによって作られた頂点タイプまたはエッジタイプはグローバルタイプとなります。

  • superuser または globaldesigner は、1つ以上のグラフにグローバル頂点またはエッジタイプを追加することができます。グローバルタイプの頂点やエッジは、複数のグラフ間での共有が可能です。

  • 特定のグラフで admin または designer の役割を持つユーザーは、ローカルの頂点タイプとエッジタイプを自分のグラフに追加できます。ローカルタイプの頂点やエッジは、複数のグラフ間での共有はできません。

グラフ固有の役割と権限

TigerGraphシステムには、事前に定義された役割がいくつかあります。それぞれの役割は、操作を実行するための定められた論理的権限を持っています。グラフにアクセスするには、ユーザーにそのグラフにおける役割を付与する必要があります。役割がないと、ユーザーはアクセスを行うことができません。

役割をベースとしたMultiGraphアクセス制御

  • ユーザーの役割は、グラフごとに付与したり取り消したりすることができます。役割の GRANT (付与)または REVOKE (取消)ステートメントは、グラフによって変更できます。

  • GRANT / REVOKE の設定の権限を持つのは、superuseradmin (管理者)ユーザーです。

  • superuser は、任意のグラフの任意のユーザーに役割を付与できます。

  • superuser は、特定のグラフで admin (管理者)ユーザーを選択できます。管理者は、グラフのユーザー権限の管理を行うことができます。

  • ユーザーに付与される役割を、グラフごとに変えることもできます。

ユーザー、権限、役割についての詳細は、ユーザー権限と認証を参照して下さい。各役割について詳細に説明したチャートをご覧いただけます。

作業グラフの設定

  • ユーザーは、グラフにアクセスするために、作業グラフを設定する必要があります。そのためには、GSQLコマンドで-gフラグを使用するか、 USE GRAPH コマンドを使用してください。

  • 複数のグラフに対する権限を持つユーザー(superuserを含みます)でも、一度に1つのグラフのみ操作できます。 GLOBAL SCHEMA_CHANGE JOB については、その限りではありません。

クエリ、ジョブの読み込み、schema_changeジョブに使用する CREATE コマンドでは、グラフが1つのみのシステムでも、グラフ名を指定する必要がありますのでご注意ください。

他の仕様への影響

  1. RESTPPエンドポイント: グラフデータに関連するエンドポイントには、リクエストURL内にグラフ名を含める必要があります。これについては、RESTPP APIユーザーガイドを参照してください。

  2. ユーザー認証のシークレットとトークン: コマンドと手順はOAuth標準に準拠しています。詳細はこちらを参照してください。

MultiGraph機能の使用については、特に、アプリケーションに異なる役割を持つ複数のユーザーがいる場合、他にも知っておくべき詳細情報が多くあります。ドキュメントで内の関連トピックの横には、Multiple Graphのロゴ が表示されています。