26.8.6 グラフの特定のスナップショットのダイレクト・ロード

PgxSession.readGraphAsOf()メソッドを使用して、グラフの特定のスナップショットを直接ロードすることもできます。これは、readGraphWithProperties()の後にsetSnapshot()を指定してグラフをロードするショートカットです。

PGXセッションにすでにロードされているグラフの2つのスナップショットについて検討します。次の例は、特定のスナップショットへの参照を取得する方法を示しています。

  1. グラフのグラフ構成を取得します:
    opg4j> var config = GraphConfigFactory.forAnyFormat().fromPath("<path_to_json>")
    ==> {"format":"adj_list", ... }
    GraphConfig config = GraphConfigFactory.forAnyFormat().fromPath("<path_to_json>");
    config = GraphConfigFactory.for_any_format().from_path("<path_to_json>")
  2. getAvailableSnapshots()を使用して、このグラフ構成のロード済スナップショットを確認します。
    opg4j> session.getAvailableSnapshots(G)
    ==> GraphMetaData [getNumVertices()=4, getNumEdges()=4, memoryMb=0, dataSourceVersion=1453315103000, creationRequestTimestamp=1453315122669 (2016-01-20 10:38:42.669), creationTimestamp=1453315122685 (2016-01-20 10:38:42.685), vertexIdType=integer, edgeIdType=long]
    ==> GraphMetaData [getNumVertices()=5, getNumEdges()=5, memoryMb=3, dataSourceVersion=1452083654000, creationRequestTimestamp=1453314938744 (2016-01-20 10:35:38.744), creationTimestamp=1453314938833 (2016-01-20 10:35:38.833), vertexIdType=integer, edgeIdType=long]
    Deque<GraphMetaData> snapshots = session.getAvailableSnapshots(G);
    session.get_available_snapshots(G)
  3. 4つの頂点と4つのエッジを持ち、タイムスタンプが1453315122685であるグラフのスナップショットをチェックアウトします。
    opg4j> var G = session.readGraphAsOf( config, 1453315122685 )
    ==> PGX Graph named 'sample' bound to PGX session 'a1744e86-65fb-4bd1-b2dc-5458b20954a9' registered at PGX Server Instance running in embedded mode
    opg4j> G.getNumVertices()
    ==> 4
    opg4j> G.getNumEdges()
    ==> 4
    PgxGraph G = session.readGraphAsOf( config, 1453315122685 );
    G = read_graph_as_of(config, creation_timestamp=1453315122685)