5.4.8 プロパティ・グラフ・インスタンスのオープンとクローズ

プロパティ・グラフを記述する際、次のOracleプロパティ・グラフ・クラスを使用して、プロパティ・グラフ・インスタンスを適切にオープンおよびクローズします。

  • OraclePropertyGraph.getInstance: Oracleプロパティ・グラフのインスタンスをオープンします。このメソッドには、接続情報とグラフ名の2つのパラメータがあります。

  • OraclePropertyGraph.clearRepository: プロパティ・グラフ・インスタンスからすべての頂点およびエッジを削除します。

  • OraclePropertyGraph.shutdown: グラフ・インスタンスをクローズします。

Oracle Databaseの場合、OraclePropertyGraph.getInstanceメソッドはOracleインスタンスを使用してデータベース接続を管理します。OraclePropertyGraphには、グラフ名、ハッシュ・パーティションの数、並列度、表領域、ストレージのオプション(圧縮など)を設定できる、コンストラクタのセットがあります。たとえば:

import oracle.pg.rdbms.*;
Oracle oracle = new Oracle(jdbcURL, username, password);

OraclePropertyGraph opg = OraclePropertyGraph.getInstance(oracle, graphName);
opg.clearRepository(); 
//     .
//     .  Graph description
//     .
// Close the graph instance
opg.shutdown();

インメモリー・アナリスト機能がアプリケーションに必要な場合、GraphConfigBuilderを使用してOracle Database用のグラフを作成し、引数としてグラフ名を指定してOraclePropertyGraphをインスタンス化する必要があります。たとえば、次のコード・スニペットでは、グラフconfigを作成し、OraclePropertyGraphインスタンスを取得し、データをそのグラフにロードし、インメモリー・アナリストを取得します。

import oracle.pgx.config.*;
import oracle.pgx.api.*;
import oracle.pgx.common.types.*;

...
 
PgNosqlGraphConfig cfg = GraphConfigBuilder. forPropertyGraphRdbms ()
       .setJdbcUrl("jdbc:oracle:thin:@<hostname>:1521:<sid>")
       .setUsername("<username>").setPassword("<password>")
       .setName(szGraphName)
       .setMaxNumConnections(8)
       .addEdgeProperty("lbl", PropertyType.STRING, "lbl")
       .addEdgeProperty("weight", PropertyType.DOUBLE, "1000000")
       .build();
 
  OraclePropertyGraph opg = OraclePropertyGraph.getInstance(cfg);  
 
  String szOPVFile = "../../data/connections.opv";
  String szOPEFile = "../../data/connections.ope";
 
  // perform a parallel data load
  OraclePropertyGraphDataLoader opgdl = OraclePropertyGraphDataLoader.getInstance();
  opgdl.loadData(opg, szOPVFile, szOPEFile, 2 /* dop */, 1000, true, "PDML=T,PDDL=T,NO_DUP=T,"); 
 
  ...
  PgxSession session = Pgx.createSession("session-id-1");
  PgxGraph g = session.readGraphWithProperties(cfg);

  Analyst analyst = session.createAnalyst();
  ...