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方針について詳しく説明します:
-
- KEYS_AS_IDS方針
KEYS_AS_IDS
方針とは、IDが、ユーザーが指定したキーに基づいているということです。この場合、IDは、グラフ全体でグローバルに一意である必要があります。 - PARTITIONED_IDS方針
PARTITIONED_IDS
方針とは、IDが、ラベル名とユーザーが指定したキーまたは自動生成されたキーを組み合せることで作成されるということです。したがって、IDの一意性要件は、グラフの作成後にラベル・レベルで適用されます。 - UNSTABLE_GENERATED_IDS方針
UNSTABLE_GENERATED_IDS
方針とは、IDが、システムによって生成され、変更される可能性があるということです。これらのIDは、必ず一定であるわけではありません。