This topic contains the following.
Changes in Oracle Database Release 18.1 for Property Graph Support
The following are changes in Oracle Spatial and Graph Property Graph Developer's Guide for Oracle Database Release 18.1.
Support for Executing PGQL Queries Directly Against Oracle Database
You can use the
oracle.pg.rdbms Java package to directly query graph data stored in Oracle Database. For information, see Executing PGQL Queries Directly Against Oracle Database.
PGQL Enhancement: Finding Subgraph Instances
The PGQL graph query engine lets you find every subgraph instance that matches with the given query pattern in your graph data. For example, the following asks: "Find all (vertices) whom both Mario (vertex) and Luigi (vertex) like (edge) but is older (property) than Mario, by more than two years, and print their names and ages (property)."
SELECE person.name, person.age WHERE (m WITH name = 'Mario') -[WITH label = 'likes']-> (person), (l WITH name = 'Luigi') -[WITH label = 'likes']-> (person), person.age < m.age - 2 ORDER BY person.name
Support for Collaborative Filtering with SQL-Based Property Graph Analytics
New Algorithms for Release 18.1
The following new algorithms are available:
Approximate Pagerank - a faster variant of Pagerank that can be used when less precision is acceptable.
Weighted Pagerank - Pagerank that considers edge weights.
Personalized SALSA - evaluates the relative importance of nodes with respect to a given set of hub nodes.
K-Core - computes k-core decomposition of a graph. Can be used to analyze hierarchical structures in a graph by revealing subgraphs with particular properties. It can also help to visualize large graphs in 2D by using the "layers" provided by the k-cores.
Diameter, Radius, and Eccentricity - basic structural graph properties that are useful for understanding distances in a graph.
PRIM - classic algorithm that finds the minimum spanning tree of an undirected graph.
For information about the algorithms, see Oracle Spatial and Graph Property Graph Java API Reference.
A PGX client implementation in
Node.js lets you develop graph applications on top of PGX in
For more information, see the PGX
Node.js client API reference (JSDoc) at: https://docs.oracle.com/cd/E56133_01/2.5.0/jsdocs/index.html
Apache Zeppelin Integration
The PGX client and shell are integrated into Apache Zeppelin. For information, see Using the In-Memory Analyst Zeppelin Interpreter with Oracle Database
New Enterprise Scheduler
A new execution and scheduler back end to PGX allows for following:
Concurrent execution of tasks from multiple sessions
More detailed configuration for thread pools with pool weight, priority and maximum number of threads
Dynamically sized IO thread pool
Detailed, per task settings for each thread pool
For a tutorial about advanced task scheduling using execution environments, see: https://docs.oracle.com/cd/E56133_01/latest/tutorials/execution_environment.html
Undirected Graphs Enhancements
Native support for undirected graphs. New APIs also increase flexibility when creating a simplified or undirected version of an existing graph by introducing strategies for reducing edges and edge properties. It is now possible to merge or pick the edge properties of multi-edges.