3.1 Loading a Graph into the Graph Server (PGX) from a Property Graph View
You can load a graph into the graph server (PGX) from a property graph view by name.
You can use the following PgxSession method to load a graph from a
property graph view by name:
readGraphByName(String name, GraphSource source)The arguments used in the method are as follows:
name: Name of the property graph view.source: Source for the graph. In this case,PG_VIEW.
The readGraphByName(String name, GraphSource source) method
reads the property graph view metadata tables and internally generates the
graph configuration to load the graph. You must have
PGX_SESSION_NEW_GRAPH permission to use this
API.
For example you can load the graph from a property graph view as shown:
opg4j> var graph = session.readGraphByName("BANKDATAVIEW", GraphSource.PG_VIEW)
$12 ==> PgxGraph[name=bankdataview,N=1000,E=5001,created=1625730942294]PgxGraph graph = session.readGraphByName("BANKDATAVIEW", GraphSource.PG_VIEW);
Graph: PgxGraph[name=bankdataview,N=1000,E=5001,created=1625732149262]>>> graph = session.read_graph_by_name('BANKDATAVIEW', 'pg_view')
>>> graph
PgxGraph(name: bankdataview, v: 1000, e: 5001, directed: True, memory(Mb): 0)
Using Graph Optimization Options When Loading a Property Graph View
You can optimize the read or update performance when loading a property
graph view by name by using an additional options
parameter as shown:
readGraphByName(String name, GraphSource source, ReadGraphOption
options)
The options parameter can have the following supported
values:
ReadGraphOption.optimizeFor(GraphOptimizedFor.READ): Specifies that the loaded graph is optimized for READ.ReadGraphOption.optimizeFor(GraphOptimizedFor.UPDATE): Specifies that the loaded graph is optimized for UPDATE.ReadGraphOption.synchronizable(): Specifies that the loaded graph can be synchronized.
It is important to note that the
synchronizable() option can be used in
combination with UPDATE and READ.
However, the UPDATE and READ
options cannot be used at the same time.
The following example loads a property graph view for
READ and SYNCHRONIZABLE
options:
opg4j> var graph = session.readGraphByName("BANK_GRAPH_VIEW", GraphSource.PG_VIEW,
...> ReadGraphOption.optimizeFor(GraphOptimizedFor.READ),
...> ReadGraphOption.synchronizable())
graph ==> PgxGraph[name=BANK_GRAPH_VIEW_2,N=1000,E=5001,created=1648457198462]
PgxGraph graph = session.readGraphByName("BANKDATAVIEW", GraphSource.PG_VIEW, "BANK_GRAPH_VIEW", GraphSource.PG_VIEW,
ReadGraphOption.optimizeFor(GraphOptimizedFor.READ),
ReadGraphOption.synchronizable());
Parent topic: Property Graph Views on Oracle Database Tables