27.6.1 GraphBuilderインタフェースの使用によるパーティション化されたグラフの作成

createGraphBuilder() APIでは、パーティション化されたグラフの作成がサポートされています。

グラフのパーティション化の方法は、ラベルに基づいています。グラフ内の各頂点と各エッジには、ラベルを1つのみ付けることができます。同じラベルが付いた頂点は、同じ頂点プロバイダにグループ化されます。頂点プロバイダの名前は、頂点ラベルと同じになります。同様に、ラベル、出力プロバイダおよび入力プロバイダが同一である複数のエッジが、単一のエッジ・プロバイダにグループ化されます。エッジ・プロバイダ名は、次の形式で示すように、エッジ・ラベル、出力プロバイダ名および入力プロバイダ名を連結することで構成されます。

edgeLabel_sourceProviderName_destinationProviderName

同じプロバイダ内のすべての要素に、同じプロパティのリストがあります。それらのプロパティに特定の値がない場合は、デフォルト値が使用されます。

GraphBuilder APIの使用時に頂点とエッジの処理方法に影響を与える2つの重要な構成オプションを次に示します:

  • ID生成方針: これにより、どのようにグラフ構築の間に頂点とエッジのIDを生成するかを決定します。GraphBuilderでは、次の2つのID生成方針がサポートされています:
    • USER_IDS: ユーザーとして、頂点とエッジのIDを指定できます。

      なお、ユーザーが指定したIDが、すべての頂点およびエッジにわたり一意である必要があります。これは、IDが同一の2つの頂点またはエッジは、それらが別々のパーティションに属している場合でも、追加できないということです。この一意制約は、作成されたグラフによって後で採用されるID方針とは関係なく、強制適用されます。

    • AUTO_GENERATED: 頂点とエッジのIDが自動的に生成されます。
  • ID方針: どのように作成後にグラフによって頂点とエッジのIDを管理しそれにアクセスするかを決定します。このID方針は、グラフ作成中にIDがどのように生成されたか(自動生成(AUTO_GENERATED)かユーザー指定(USER_IDS)か)には関係ありません。その後、それぞれsetRetainVertexIdsまたはsetRetainEdgeIds APIを使用することで、頂点とエッジの両方について、最終グラフでこれらのIDを保持するかどうかを選択できます。頂点IDとエッジIDが保持されるかどうかに応じて、頂点IDとエッジIDについての最終グラフの方針は次のいずれかになります:
    • KEYS_AS_IDS
    • PARTITIONED_IDS
    • UNSTABLE_GENERATED_IDS
    ID方針はGraphBuilderの構成によって暗黙的に決定されるためGraphBuilderでグラフを作成するときに頂点またはエッジのID方針を明示的に選択できないことに注意してください。

    以降のトピックでは、様々なID方針について詳しく説明します: