First Quarterly Update on Oracle Graph (2024)

Text Size 100%:

Oracle Graph First Quarterly Update

The graph features of Oracle Database enables developers to store and navigate relationships between entities. Oracle Graph Server and Client enables developers, analysts, and data scientists to use graphs within Oracle Database, while Graph Studio in Oracle Autonomous Database removes barriers to entry by automating setup and management, automating graph creation, and by providing step-by-step examples for getting started.

The last quarterly update on Oracle Graph, announced the availability of Oracle Graph Server and Client 23.4. That release introduced a PGQL function to validate the vertices and edges of a graph when primary and foreign key constraints are not present, a PGQL function to aggregate values into a JSON array, and the ability to create a new graph from an existing one.

Oracle Graph Server and Client 24.1 is now available for download for use with databases in the Cloud (OCI Marketplace image is available) and for databases on-premises. In this release we introduce the Graph Server Administrator Dashboard to monitor memory usage, the ability to connect to Graph Server (PGX) using JDBC, and support for ONE ROW PER STEP syntax when running PGQL queries in database.

Graph Server Administrator Dashboard

This release includes a new user interface for Graph Server. You can access this new UI via <graph-server-url>:<port>/dash. The dashboard contains information on how much memory is used by graphs loaded into Graph Server, the total memory available, on-heap and off-heap memory available, and more.

Graph Server Admin Dashboard

JDBC Driver for Graph Server (PGX)

A customer had a requirement for a light-weight graph database for application developers to first test code before running the same graph queries in an Oracle Database in production.  Graph Server (PGX) can be considered to be a light-weight graph database.   So in this release we have added support for using a JDBC driver to connect to Graph Server.   This means that the same application code can run in Graph Server and in the database, using the appropriate JDBC driver.  No code changes will be required except for updating the code to create the JDBC connection.   Further, Graph Server APIs can be used as a library by an application.  This enables applications to easily test their code with Graph Server embedded in the application, and then update the JDBC string and run in a production database.

This JDBC support can also be used to connect to Graph Server when it is set up as a standalone server, or when it is deployed within Autonomous Database.  

This kind of “write once, run anywhere” model, where one application can run any SQL Property Graph or PGQL 2.0 query that is supported by the connected entity through the JDBC interface, opens up many possibilities. Stay tuned for a detailed article with code samples.

pgx as a library image

 

Path unnesting ONE ROW PER STEP

The ONE ROW PER STEP syntax has been supported in Graph Server (PGX) since release 23.2, but this release added this functionality to PGQL queries run in database as well. This syntax is used to retrieve information from vertices along paths and outputs one row per vertex. In other words, you can use this clause to un-nest paths retrieved by the query.   This clause is usually used in combination with variable-length path patterns and can be used for path visualization in Graph Visualization.

one row per step

Use of GPUs in Graph Server (PGX)

The 60+ prebuilt algorithms available for execution in Graph Server includes graph machine learning (Graph ML) algorithms such as DeepWalk, PG2Vec, Supervised GraphWise and Unsupervised GraphWise.    The compute intensive training step in this set of Graph ML algorithms can now be run on GPUs.    A lot depends on the data, but our tests show that performance improvement in the model training step can be as much as 5x.

Other notable updates

  • SQL Developer 23.1.1 was released in December 2023 and includes:
    • Support for PGQL 2.0, the fully SQL-compatible syntax, including the GRAPH_TABLE operator.
    • Path modes with CHEAPEST
    • LATERAL subquery
    • Create graphs based on existing graphs
    • SOURCE/DESTINATION predicates
    • JSON_ARRAYAGG function
    • KEEP clause
    • Graph Validation function
  • Java 8 desupported – starting 24.1, Graph Server (PGX) requires Java 11 or Java 17

For more information, please visit our Property Graph documentation and RDF Graph documentation.

Rahul Tasker

Senior Product Manager

Product Manager for Oracle Spatial and Graph