4.6.2 公開済グラフの同期
公開済グラフを同期するには、グラフ・スキーマが含まれるPartitionedGraphConfig
オブジェクトとデータベース接続の詳細で、フラッシュバック・シンクロナイザを構成します。
PartitionedGraphConfig
オブジェクトは、PartitionedGraphConfigBuilder
APIを使用するか、JSONファイルからグラフ構成を読み取ることで作成できます。
グラフ構成オブジェクトを使用して作成されたグラフの同期は一般的にサポートされていますが、次のいくつかの制限が適用されます。
- すべてのプロバイダがデータベース表であるパーティション化されたグラフ構成のみがサポートされます。
- 各エッジまたは頂点プロバイダ、あるいはその両方で、ユーザー名フィールドを設定して表の所有者を指定する必要があります。たとえば、ユーザー
SCOTT
が表を所有している場合は、プロバイダのユーザー名を適宜設定します。 - スナップショット・ソースは
CHANGE_SET
に設定する必要があります。 - 多数のスナップショットの作成時にメモリー不足を回避するために、更新操作用にグラフを最適化することをお薦めします。
次の例は、PartitionedGraphConfig
オブジェクトを作成するためのサンプル構成を示しています。
{
...
"optimized_for": "updates",
"vertex_providers": [
...
"username":"<username>",
...
],
"edge_providers": [
...
"username":"<username>",
...
],
"loading": {
"snapshots_source": "change_set"
}
}
GraphConfig cfg = GraphConfigBuilder.forPartitioned()
…
.setUsername("<username>")
.setSnapshotsSource(SnapshotsSource.CHANGE_SET)
.setOptimizedFor(GraphOptimizedFor.UPDATES)
...
.build();
前提条件として、前のセッションで公開されているグラフが必要です。たとえば:
opg4j> var graph = session.readGraphWithProperties("<path_to_json_config_file>")
graph ==> PgxGraph[name=bank_graph_analytics_fb,N=999,E=4993,created=1664310157103]
opg4j> graph.publishWithSnapshots()
PgxGraph graph = session.readGraphWithProperties("<path_to_json_config_file>");
graph.publishWithSnapshots();
>>> graph = session.read_graph_with_properties("<path_to_json_config_file>")
>>> graph.publish_with_snapshots()
これで、次のステップを実行し、JSONファイルから作成されたグラフ構成オブジェクトを使用して公開済グラフを同期できるようになります。