14.7.2 リフレッシュを使用したスナップショットの作成
リフレッシュを使用してスナップショットを作成するには、次のステップを実行します。
- セッションを作成し、メモリーにグラフをロードします。
PgxSession.getAvailableSnapshots()
メソッドを使用して、グラフの使用可能なスナップショットを確認します。JShellを使用した使用可能なスナップショットの取得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]
Javaを使用した使用可能なスナップショットの取得Deque<GraphMetaData> snapshots = session.getAvailableSnapshots(G); for( GraphMetaData metaData : snapshots ) { System.out.println( metaData ); }
Pythonを使用した使用可能なスナップショットの取得snapshots = session.get_available_snapshots(G) for metadata in snapshots: print(metadata)
- ソース・ファイルを編集して、追加の頂点および追加のエッジを含めるか、データベースに2行挿入します。
- 元のグラフをロードしたセッションと同じセッション内で更新されたグラフをリロードします。新しいスナップショットが作成されます。
JShellを使用した更新済グラフのロード
opg4j> var G = session.readGraphWithProperties( G.getConfig(), true ) ==> PGX Graph named 'sample_2' bound to PGX session 'a1744e86-65fb-4bd1-b2dc-5458b20954a9' registered at PGX Server Instance running in embedded mode pgx> 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]
Javaを使用した更新済グラフのロードG = session.readGraphWithProperties( G.getConfig(), true ); Deque<GraphMetaData> snapshots = session.getAvailableSnapshots( G );
Pythonを使用した更新済グラフのロード使用可能なスナップショットのコールには2つのG = session.read_graph_with_properties(G.config,update_if_not_fresh=True)
GraphMetaData
オブジェクトが含まれ、1つには4つの頂点と4つのエッジ、もう1つには5つの頂点と5つのエッジが含まれることに注意してください。 getNumVertices()
およびgetNumEdges()
メソッドを使用して、グラフ変数が新しくロードされたグラフを指していることを確認します。JShellを使用したグラフ内の頂点とエッジの数の取得opg4j> G.getNumVertices() ==> 5 opg4j> G.geNumEdges() ==> 5
Javaを使用したグラフ内の頂点とエッジの数の取得int vertices = G.getNumVertices(); long edges = G.getNumEdges();
Pythonを使用したグラフ内の頂点とエッジの数の取得vertices = G.num_vertices edges = G.num_edges
親トピック: グラフのバージョニング