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.3
- Added support for accessing the property graph Java client on Maven Central.
See Using Oracle Graph Java Client on Maven Central for more information.
- Added support for running PGQL statements and queries on graphs in Oracle SQL Developer
22.2 release.
See Property Graph Support in SQL Developer for more information.
- Added support for generating and configuring a self-signed server
keystore.
See Using a Self-Signed Server Keystore for more information.
- Added
OnMissingVertexoptions toreadGraphByNameAPI andCREATE PROPERTY GRAPHstatement for the graph server (PGX) to handle edges with missing vertices.- See Using the OnMissingVertex Options when loading a property graph view for more information.
- See Using Options to Handle Edges with Missing Vertices for more information.
- Enhanced PGQL query plans to show filter expressions.
See Explaining Query Plan for more information.
- Added support for performing
INTERVALoperations on temporal data types in PGQL queries.See Using INTERVAL Literals in PGQL Queries for more information.
- Added PGQL support for
ONE ROW PER STEPin unnesting of variable-length path queries. Also, visualization of variable-length path queries is supported using the Graph Visualization tool.See Unnesting of Variable-Length Path Queries for more information.
- Added support for optimizing loading of partitioned graphs by configuring a
new GraphConfig field,
PARALLEL_HINT_DEGREE.See Configuring PARALLEL Hint when Loading a Partitioned Graph for more information.
- Added new query optimizer hints to enhance PGQL path query translation to
SQL for property graph views.
See Using Query Optimizer Hints for more information.
- Added global caches to improve the speed of PGQL query translations for
property graph views.
See Speed Up Query Translation Using Graph Metadata Cache and Translation Cache for more information.
- Enhanced iteration of
OPG4Pyresult sets using fetch methods in alignment with cx_Oracle.See Iterating a Result Set Using Fetch Methods for more information.
- Added heterogeneous graphs support to Supervised and Unsupervised GraphWise
Models.
- See Building a GraphWise Model Using Heterogeneous Graphs for more information.
- See Building an Unsupervised GraphWise Model Using Heterogeneous Graphs for more information.
- Added support for running all the PgxML models on Linux for ARM (aarch64).
- It is recommended to provide unique names for vertex and edge tables in PGQL
CREATE PROPERTY GRAPHstatement.See Table Aliases for an example.
- It is always recommended to provide the referenced source or destination vertex key in
PGQL
CREATE PROPERTY GRAPHstatement.Refer to this example on
SOURCE KEYandDESTINATION KEYclauses.
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
- Graph Server (PGX) Configuration Fields
The graph server configuration fields,
server_certandserver_private_keyare deprecated. Instead, useserver_keystore. - PyPGX
set_standarizeinGraphWiseModelConfigis deprecated. Instead, useset_standardize.- The return value of
PgqlResultSet.get_vertex_labelsmay 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:
inferAndGetExplanationFunctionGraphWiseModel.inferAndGetExplanation()is deprecated. Instead, useGraphWiseModel.gnnExplainer()to obtain aGnnExplainerobject for the model and useGnnExplainer.inferAndExplain(). Pg2vecModelBuilder.setUseGraphletSize(java.lang.Boolean useGraphletSize)method inoracle.pgx.api.mllibAPI is deprecated. Instead, use thePg2vecModelBuilder.setUseGraphletSize(boolean useGraphletSize)method.- PL/SQL API OPG_APIS.GET_SCN FunctionThe 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
- The following Java API classes are desupported:
oracle.pg.rdbms.OraclePgqlColumnDescriptor.javaoracle.pg.rdbms.OraclePgqlColumnDescriptorImpl.javaoracle.pg.rdbms.OraclePgqlExecution.javaoracle.pg.rdbms.OraclePgqlExecutionFactory.javaoracle.pg.rdbms.OraclePgqlPreparedStatement.javaoracle.pg.rdbms.OraclePgqlResult.javaoracle.pg.rdbms.OraclePgqlResultElement.javaoracle.pg.rdbms.OraclePgqlResultElementImpl.javaoracle.pg.rdbms.OraclePgqlResultImpl.javaoracle.pg.rdbms.OraclePgqlResultIterable.javaoracle.pg.rdbms.OraclePgqlResultIteratorImpl.javaoracle.pg.rdbms.OraclePgqlResultSet.javaoracle.pg.rdbms.OraclePgqlResultSetImpl.javaoracle.pg.rdbms.OraclePgqlResultSetMetaData.javaoracle.pg.rdbms.OraclePgqlResultSetMetaDataImpl.javaoracle.pg.rdbms.OraclePgqlSqlTrans.javaoracle.pg.rdbms.OraclePgqlSqlTransImpl.javaoracle.pg.rdbms.OraclePgqlStatement.java
- 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. - Python 3.5 is desupported.
- The two-table format is desupported.
- The following Java API methods, objects and fields in
oracle.pgx.apiare no longer supported:Desupported Methods:
PgxCollectionmethods:addAllAsync(Collection<E> source)removeAllAsync(Collection<E> source)addAll(ID...ids)removeAll(ID...ids)
PgqlResultSetmethods:getResults(): instead, usePgqlResultSetto directly iterate the result setdestroy()
- User-defined pattern matching semantic methods:
PgxGraph#queryPgql(String, PatternMatchingSemantic): instead, usePgxGraph#queryPgql(String)PgxSession.setPatternMatchingSemantic(..)
GraphMetaDataconstructors and related methods:GraphMetaData()GraphMetaData(GraphMetaData other, java.net.URI baseUri)GraphMetaData(IdType vertexIdType)GraphMetaData.setVertexIdType()GraphMetaData.setEdgeIdType()
PgxSession#getAvailableSnapshots(GraphConfig): instead, usePgxSession#getAvailableSnapshots(PgxGraph)- All
Analyst#filteredBfsandAnalyst#filteredDfsmethods that acceptsfilterparameter: instead, use thenavigatorparameter
Desupported Objects
PgqlResult(a result ofresultSet.getResults().iterator().next(): instead, usePgxResultas returned fromresultSet.iterator().next()
Desupported Fields
pattern_matching_semanticconfiguration field
- The Java API method
AbstractGraphConfigBuilder#setNodeIdTypeinoracle.pgx.configis desupported. Instead, useAbstractGraphConfigBuilder#setVertexIdType(). - The following PyPGX classes are desupported in
pypgxpackage. Instead, usepypgx.api.filterssubpackage to access these classes:EdgeFilterGraphFilterVertexFilter
-
The following PyPGX classes are desupported in
pypgx.apipackage. Instead, usepypgx.api.framessubpackage to access these classes:PgxCsvFrameReaderPgxCsvFrameStorerPgxDbFrameReaderPgxDbFrameStorerPgxFramePgxFrameBuilderPgxFrameColumnPgxGenericFrameReaderPgxGenericFrameStorerPgxPgbFrameReaderPgxPgbFrameStorer
- 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 packagepypgx.api.utils: This internal package is renamed to_utils.
- Graph property text search based on Apache Solr/Lucene is desupported. Instead, use Oracle Text or 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.