Changes in This Release for This Guide

The following changes apply to property graph support that is shipped with Oracle Graph Server and Client.

Oracle Graph Server and Client is required for using the property graph feature of Oracle Database (see Oracle Graph Server and Client Installation), and is released four times a year.

New Features

Significant New Features in Oracle Graph Server and Client 22.4

  • The RPM file installation of the graph server (PGX) generates a self-signed server keystore by default.

    See Setting Up Transport Layer Security for more information.

  • Added support for synchronizing published graphs by configuring the Flashback Synchronizer with the graph configuration object and connection details.

    See Synchronizing a Published Graph for more information.

  • Added getProgress API to the PgxFuture object to estimate and report the progress of loading a large graph into the graph server (PGX).

    See Progress Reporting and Estimation for Graph Loading for more information.

  • Added support for using custom names for subgraphs that are created and loaded from a property graph view into the graph server (PGX).

    See PGQL Based Subgraph Loading for more information.

  • Added support for PGQL 1.5 and therefore the IS keyword can be used as an alternative to : inside a label predicate in a graph pattern matching query.

    Note:

    Graph Server and Client is backwards compatible with older versions of PGQL (1.0, 1.1, 1.2, 1.3 and 1.4).
  • Added the following PGQL support when running PGQL queries on property graph views:
    • Scalar subqueries
    • EXISTS and NOT EXISTS subqueries

    See PGQL Features Supported in Property Graph Views for more information.

  • Added support for creating and modifying graphs in the database using the graph visualization application.

    See Visualizing PGQL Queries on Graphs in the Database

Migrating Property Graph Applications to Oracle Database 21c

From Release 21c onwards, Oracle Graph Server and Client must be installed separately. It is recommended to remove the older property graph libraries from $ORACLE_HOME. See Uninstalling Previous Versions of Property Graph Libraries for more details.

Deprecated Features

  • Groovy Support for Java API in Apache Zeppelin

    Groovy support for using the Java API in Apache Zeppelin client is deprecated.

  • Graph Server (PGX) Configuration Fields

    The graph server configuration fields, server_cert and server_private_key are deprecated. Instead, use server_keystore.

  • PyPGX
    • set_standarize in GraphWiseModelConfig is deprecated. Instead, use set_standardize.
    • The return value of PgqlResultSet.get_vertex_labels may or may not be a list.
  • Subgraph Loading

    Creating Subgraphs using filter expressions is deprecated. Instead, use Loading a Subgraph from Property Graph Views.

  • PgxML: inferAndGetExplanation Function

    GraphWiseModel.inferAndGetExplanation() is deprecated. Instead, use GraphWiseModel.gnnExplainer() to obtain a GnnExplainer object for the model and use GnnExplainer.inferAndExplain().

  • Pg2vecModelBuilder.setUseGraphletSize(java.lang.Boolean useGraphletSize) method in oracle.pgx.api.mllib API is deprecated. Instead, use the Pg2vecModelBuilder.setUseGraphletSize(boolean useGraphletSize) method.
  • PgxML: SupervisedGraphWiseModelBuilder.setLossFunction Function

    SupervisedGraphWiseModelBuilder.setLossFunction(SupervisedGraphWiseModelConfig.LossFunction ...) is deprecated. Instead, use SupervisedGraphWiseModelBuilder.setLossFunction(LossFunction ...) function.

  • PL/SQL API OPG_APIS.GET_SCN Function
    The PL/SQL API OPG_APIS.GET_SCN function is deprecated. Instead, to retrieve the current SCN (system change number), use the DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER function:
    SELECT dbms_flashback.get_system_change_number FROM DUAL;

Desupported Features

  • Oracle Linux 6 is desupported.
  • Oracle Text with property graph schema graphs is desupported.
  • Apache HBase is desupported.
  • Support for mixed case string arguments in PyPGX for cases where there are a fixed, enumerated list of possible values (such as, ['linear', 'tanh', 'relu']) are desupported. Only lower case arguments are now supported.
  • The two-table format is desupported.
  • The following Java API classes are desupported:
    • oracle.pg.rdbms.OraclePgqlColumnDescriptor.java
    • oracle.pg.rdbms.OraclePgqlColumnDescriptorImpl.java
    • oracle.pg.rdbms.OraclePgqlExecution.java
    • oracle.pg.rdbms.OraclePgqlExecutionFactory.java
    • oracle.pg.rdbms.OraclePgqlPreparedStatement.java
    • oracle.pg.rdbms.OraclePgqlResult.java
    • oracle.pg.rdbms.OraclePgqlResultElement.java
    • oracle.pg.rdbms.OraclePgqlResultElementImpl.java
    • oracle.pg.rdbms.OraclePgqlResultImpl.java
    • oracle.pg.rdbms.OraclePgqlResultIterable.java
    • oracle.pg.rdbms.OraclePgqlResultIteratorImpl.java
    • oracle.pg.rdbms.OraclePgqlResultSet.java
    • oracle.pg.rdbms.OraclePgqlResultSetImpl.java
    • oracle.pg.rdbms.OraclePgqlResultSetMetaData.java
    • oracle.pg.rdbms.OraclePgqlResultSetMetaDataImpl.java
    • oracle.pg.rdbms.OraclePgqlSqlTrans.java
    • oracle.pg.rdbms.OraclePgqlSqlTransImpl.java
    • oracle.pg.rdbms.OraclePgqlStatement.java
  • The following Java API methods, objects and fields in oracle.pgx.api are no longer supported:

    Desupported Methods:

    • PgxCollection methods:
      • addAllAsync(Collection<E> source)
      • removeAllAsync(Collection<E> source)
      • addAll(ID...ids)
      • removeAll(ID...ids)
    • PgqlResultSet methods:
      • getResults(): instead, use PgqlResultSet to directly iterate the result set
      • destroy()
    • User-defined pattern matching semantic methods:
      • PgxGraph#queryPgql(String, PatternMatchingSemantic): instead, use PgxGraph#queryPgql(String)
      • PgxSession.setPatternMatchingSemantic(..)
    • GraphMetaData constructors and related methods:
      • GraphMetaData()
      • GraphMetaData(GraphMetaData other, java.net.URI baseUri)
      • GraphMetaData(IdType vertexIdType)
      • GraphMetaData.setVertexIdType()
      • GraphMetaData.setEdgeIdType()
    • PgxSession#getAvailableSnapshots(GraphConfig): instead, use PgxSession#getAvailableSnapshots(PgxGraph)
    • All Analyst#filteredBfs and Analyst#filteredDfs methods that accepts filter parameter: instead, use the navigator parameter

    Desupported Objects

    • PgqlResult(a result of resultSet.getResults().iterator().next(): instead, use PgxResult as returned from resultSet.iterator().next()

    Desupported Fields

    • pattern_matching_semantic configuration field
  • The Java API method AbstractGraphConfigBuilder#setNodeIdType in oracle.pgx.config is desupported. Instead, use AbstractGraphConfigBuilder#setVertexIdType().
  • The following PyPGX classes are desupported in pypgx package. Instead, use pypgx.api.filters subpackage to access these classes:
    • EdgeFilter
    • GraphFilter
    • VertexFilter
  • The following PyPGX classes are desupported in pypgx.api package. Instead, use pypgx.api.frames subpackage to access these classes:

    • PgxCsvFrameReader
    • PgxCsvFrameStorer
    • PgxDbFrameReader
    • PgxDbFrameStorer
    • PgxFrame
    • PgxFrameBuilder
    • PgxFrameColumn
    • PgxGenericFrameReader
    • PgxGenericFrameStorer
    • PgxPgbFrameReader
    • PgxPgbFrameStorer
  • The following Python API packages are no longer supported:
    • common: This internal package is desupported. Few of the classes from this package are moved to the public package pypgx.api.
    • utils: This internal package is renamed to _utils.
  • Graph property text search based on Apache Solr/Lucene is desupported. Instead, use PGQL query expressions.
  • The PGX property type DATE is desupported. Instead, use LOCAL_DATE or TIMESTAMP.
  • Property Graph support for data stored in Oracle NoSQL Database is desupported.
  • Support for Gremlin Groovy shell is desupported.
  • Apache Tinkerpop API support for Oracle Database is desupported.
  • Loading data from flat file formats into the property graph schema is desupported.
  • Support for the Apache Groovy-based shell was deprecated in 19c and is now desupported.
  • Support for Apache HBase and Apache HDFS on Cloudera CDH5 is desupported.