9.2 JSON構成ファイルを使用したグラフのロード
プロパティ・グラフ・ビューをグラフ・サーバー(PGX)にロードするために、ロードするグラフのメタデータが含まれるグラフ構成ファイルを作成できます。
JSON構成ファイルのサンプルを次に示します:
{
"name": "BANK_GRAPH",
"source_name": "BANK_GRAPH",
"source_type": "pg_view",
"jdbc_url":"jdbc:oracle:thin:@localhost:1521/orclpdb",
"username":"graphuser",
"keystore_alias":"database1",
"vertex_providers":[
{
"name":"Accounts",
"format":"rdbms",
"database_table_name":"BANK_ACCOUNTS",
"key_column":"ID",
"key_type": "integer",
"parallel_hint_degree": 3,
"props":[
{
"name":"ID",
"type":"integer"
},
{
"name":"NAME",
"type":"string"
}
]
}
],
"edge_providers":[
{
"name":"Transfers",
"format":"rdbms",
"database_table_name":"BANK_TXNS",
"key_column":"ID",
"parallel_hint_degree": 3,
"source_column":"FROM_ACCT_ID",
"destination_column":"TO_ACCT_ID",
"source_vertex_provider":"Accounts",
"destination_vertex_provider":"Accounts",
"props":[
{
"name":"FROM_ACCT_ID",
"type":"integer"
},
{
"name":"TXN_AMOUNT",
"type":"float",
"column":"AMOUNT"
},
{
"name":"DESCRIPTION",
"type":"string"
},
{
"name":"TO_ACCT_ID",
"type":"integer"
}
]
}
]
}
前述の構成では、Javaキーストアの別名を使用して、キーストア・ファイルに格納されているデータベース・パスワードを参照します。詳細は、「キーストアへのデータベース・パスワードの格納」を参照してください。
また、エッジ・プロパティAMOUNT
の名前もTXN_AMT
に変更されます。これは、グラフをグラフ・サーバー(PGX)にロードするときに、必要に応じて頂点プロパティまたはエッジ・プロパティの名前を、データベースの基礎となる列の名前とは異なる名前に変更できることを意味します。
関連項目:
- グラフのロード時のPARALLELヒントの構成
- グラフ構成のオプションの詳細は、「グラフ構成のオプション」を参照してください。
これで、次に示すように、グラフをグラフサーバーに読み込むことができます。
./bin/opg4j --secret_store /etc/oracle/graph/keystore.p12
enter password for keystore /etc/oracle/graph/keystore.p12:
For an introduction type: /help intro
Oracle Graph Server Shell 23.2.0
Variables instance, session, and analyst ready to use
opg4j> var g = session.readGraphWithProperties("<path_to_json_configuration>")
g ==> PgxGraph[name=BANK_GRAPH_NEW,N=999,E=4993,created=1675960224397]
ServerInstance instance = GraphServer.getInstance("https://localhost:7007", <username>, <password>.toCharArray());
PgxSession session = instance.createSession("my-session");
String keystorePath = "/etc/oracle/graph/keystore.p12";
char[] keystorePassword = "<keystore_password>".toCharArray();
session.registerKeystore(keystorePath, keystorePassword);
PgxGraph g = session.readGraphWithProperties("<path_to_json_configuration>");
System.out.println("Graph: " + g);