Table of Contents
- List of Figures
- List of Tables
- Title and Copyright Information
- Preface
- Changes in This Release for This Guide
-
1
Property Graph Support Overview
- 1.1 About the Property Graph Feature of Oracle Database
- 1.2 Property Graph Prerequisites
- 1.3 Property Graph Features
- 1.4 Security Best Practices with Graph Data
- 1.5 Interactive Graph Shell
- 1.6 Using Graph Server Functionality as a Library
- 1.7 Storing Graphs in Oracle Database and Loading Graphs into Memory
- 1.8 Using Oracle Graph with the Autonomous Database
- 1.9 Migrating Property Graph Applications from Before Release 21c
- 1.10 Upgrading From Graph Server and Client 20.4.x to 21.1.0
- 1.11 Quick Start: Interactively Analyze Graph Data
- 1.12 Managing Property Graphs With Python Client
-
2
Using Property Graphs in an Oracle Database Environment
- 2.1 About Property Graphs
- 2.2 Property Graph Views on Oracle Database Tables
- 2.3 Property Graph Schema Objects for Oracle Database
- 2.4 Getting Started with Property Graphs
-
2.5
Using Java APIs for Property Graph Data
- 2.5.1 Overview of the Java APIs
- 2.5.2 Parallel Loading of Graph Data
- 2.5.3 Parallel Retrieval of Graph Data
- 2.5.4 Using an Element Filter Callback for Subgraph Extraction
- 2.5.5 Using Optimization Flags on Reads over Property Graph Data
- 2.5.6 Adding and Removing Attributes of a Property Graph Subgraph
- 2.5.7 Getting Property Graph Metadata
- 2.5.8 Merging New Data into an Existing Property Graph
- 2.5.9 Opening and Closing a Property Graph Instance
- 2.5.10 Creating Vertices
- 2.5.11 Creating Edges
- 2.5.12 Deleting Vertices and Edges
- 2.5.13 Reading a Graph from a Database into an Embedded In-Memory Analyst
- 2.5.14 Specifying Labels for Vertices
- 2.5.15 Building an In-Memory Graph
- 2.5.16 Dropping a Property Graph
- 2.5.17 Executing PGQL Queries
-
2.6
Managing Text Indexing for Property Graph Data
- 2.6.1 Configuring a Text Index for Property Graph Data
- 2.6.2 Using Automatic Indexes for Property Graph Data
- 2.6.3 Using Manual Indexes for Property Graph Data
- 2.6.4 Executing Search Queries Over a Property Graph’s Text Indexes
- 2.6.5 Handling Data Types
- 2.6.6 Updating Configuration Settings on Text Indexes for Property Graph Data
- 2.6.7 Using Parallel Query on Text Indexes for Property Graph Data
- 2.7 Access Control for Property Graph Data (Graph-Level and OLS)
- 2.8 Using the Groovy-Based Shell with Property Graph Data
- 2.9 Using the Graph Zeppelin Interpreter Client
- 2.10 Creating Property Graph Views on an RDF Graph
-
2.11
Oracle Flat File Format Definition
- 2.11.1 About the Property Graph Description Files
- 2.11.2 Edge File
- 2.11.3 Vertex File
- 2.11.4 Encoding Special Characters
- 2.11.5 Example Property Graph in Oracle Flat File Format
- 2.11.6 Converting an Oracle Database Table to an Oracle-Defined Property Graph Flat File
- 2.11.7 Converting CSV Files for Vertices and Edges to Oracle-Defined Property Graph Flat Files
-
3
Using the In-Memory Graph Server (PGX)
- 3.1 Overview of the In-Memory Graph Server (PGX)
-
3.2
User Authentication and Authorization
- 3.2.1 Prepare the Graph Server for Database Authentication
- 3.2.2 Connect to the Server from JShell with Database Authentication
- 3.2.3 Read Data from the Database
- 3.2.4 Store the Database Password in a Keystore
- 3.2.5 Token Expiration
- 3.2.6 Advanced Access Configuration
- 3.2.7 Revoking Access to the Graph Server
- 3.2.8 Examples of Custom Authorization Rules
- 3.3 Keeping the Graph in Oracle Database Synchronized with the Graph Server
- 3.4 Configuring the In-Memory Analyst
- 3.5 Storing a Graph Snapshot on Disk
- 3.6 Executing Built-in Algorithms
- 3.7 Using Custom PGX Graph Algorithms
- 3.8 Creating Subgraphs
- 3.9 Using Automatic Delta Refresh to Handle Database Changes
- 3.10 Starting the In-Memory Analyst Server
- 3.11 Deploying to Apache Tomcat
- 3.12 Deploying to Oracle WebLogic Server
- 3.13 Connecting to the In-Memory Analyst Server
- 3.14 Managing Property Graph Snapshots
- 3.15 User-Defined Functions (UDFs) in PGX
- 4 SQL-Based Property Graph Query and Analytics
-
5
Property Graph Query Language (PGQL)
- 5.1 Creating a Property Graph using PGQL
- 5.2 Creating Property Graph Views Using PGQL
- 5.3 Pattern Matching with PGQL
- 5.4 Edge Patterns Have a Direction with PGQL
- 5.5 Vertex and Edge Labels with PGQL
- 5.6 Variable-Length Paths with PGQL
- 5.7 Aggregation and Sorting with PGQL
-
5.8
Executing PGQL Queries Against the In-Memory
Graph Server (PGX)
- 5.8.1 Getting Started with PGQL
- 5.8.2 Supported PGQL Features
- 5.8.3 Java APIs for Executing CREATE PROPERTY GRAPH Statements
- 5.8.4 Java APIs for Executing SELECT Queries
- 5.8.5 Java APIs for Executing UPDATE Queries
- 5.8.6 Security Tools for Executing PGQL Queries
- 5.8.7 Best Practices for Tuning PGQL Queries
-
5.9
Executing PGQL Queries Directly Against Oracle Database
- 5.9.1 PGQL Features Supported
- 5.9.2 Creating Property Graphs through CREATE PROPERTY GRAPH Statements
- 5.9.3 Dropping Property Graphs through DROP PROPERTY GRAPH Statements
-
5.9.4
Using the oracle.pg.rdbms.pgql Java Package to Execute PGQL Queries
- 5.9.4.1 Basic Query Execution
- 5.9.4.2 Security Techniques for PGQL Queries
- 5.9.4.3 Using a Text Index with PGQL Queries
- 5.9.4.4 Obtaining the SQL Translation for a PGQL Query
- 5.9.4.5 Additional Options for PGQL Translation and Execution
- 5.9.4.6 Querying Another User’s Property Graph
- 5.9.4.7 Using Query Optimizer Hints with PGQL
- 5.9.5 Modifying Property Graphs through INSERT, UPDATE, and DELETE Statements
- 5.9.6 Performance Considerations for PGQL Queries
- 6 Graph Visualization Application
-
7
Using the Machine Learning Library (PgxML) for Graphs
-
7.1
Using the DeepWalk Algorithm
- 7.1.1 Loading a Graph
- 7.1.2 Building a Minimal DeepWalk Model
- 7.1.3 Building a Customized DeepWalk Model
- 7.1.4 Training a DeepWalk Model
- 7.1.5 Getting the Loss Value For a DeepWalk Model
- 7.1.6 Computing Similar Vertices for a Given Vertex
- 7.1.7 Computing Similar Vertices for a Vertex Batch
- 7.1.8 Storing a Trained DeepWalk Model
- 7.1.9 Loading a Pre-Trained DeepWalk Model
- 7.1.10 Destroying a DeepWalk Model
-
7.2
Using the Supervised GraphWise Algorithm
- 7.2.1 Loading a Graph
- 7.2.2 Building a Minimal GraphWise Model
- 7.2.3 Advanced Hyperparameter Customization
- 7.2.4 Training a Supervised GraphWise Model
- 7.2.5 Getting the Loss Value For a Supervised GraphWise Model
- 7.2.6 Inferring the Vertex Labels for a Supervised GraphWise Model
- 7.2.7 Evaluating the Supervised GraphWise Model Performance
- 7.2.8 Inferring Embeddings for a Supervised GraphWise Model
- 7.2.9 Storing a Trained Supervised GraphWise Model
- 7.2.10 Loading a Pre-Trained Supervised GraphWise Model
- 7.2.11 Destroying a Supervised GraphWise Model
-
7.3
Using the Pg2vec Algorithm
- 7.3.1 Loading a Graph
- 7.3.2 Building a Minimal Pg2vec Model
- 7.3.3 Building a Customized Pg2vec Model
- 7.3.4 Training a Pg2vec Model
- 7.3.5 Getting the Loss Value For a Pg2vec Model
- 7.3.6 Computing Similar Graphlets for a Given Graphlet
- 7.3.7 Computing Similars for a Graphlet Batch
- 7.3.8 Inferring a Graphlet Vector
- 7.3.9 Inferring Vectors for a Graphlet Batch
- 7.3.10 Storing a Trained Pg2vec Model
- 7.3.11 Loading a Pre-Trained Pg2vec Model
- 7.3.12 Destroying a Pg2vec Model
-
7.1
Using the DeepWalk Algorithm
- 8 Spatial Support in Property Graphs
-
9
OPG_APIS Package Subprograms
- 9.1 OPG_APIS.ANALYZE_PG
- 9.2 OPG_APIS.CF
- 9.3 OPG_APIS.CF_CLEANUP
- 9.4 OPG_APIS.CF_PREP
- 9.5 OPG_APIS.CLEAR_PG
- 9.6 OPG_APIS.CLEAR_PG_INDICES
- 9.7 OPG_APIS.CLONE_GRAPH
- 9.8 OPG_APIS.COUNT_TRIANGLE
- 9.9 OPG_APIS.COUNT_TRIANGLE_CLEANUP
- 9.10 OPG_APIS.COUNT_TRIANGLE_PREP
- 9.11 OPG_APIS.COUNT_TRIANGLE_RENUM
- 9.12 OPG_APIS.CREATE_EDGES_TEXT_IDX
- 9.13 OPG_APIS.CREATE_PG
- 9.14 OPG_APIS.CREATE_PG_SNAPSHOT_TAB
- 9.15 OPG_APIS.CREATE_PG_TEXTIDX_TAB
- 9.16 OPG_APIS.CREATE_STAT_TABLE
- 9.17 OPG_APIS.CREATE_SUB_GRAPH
- 9.18 OPG_APIS.CREATE_VERTICES_TEXT_IDX
- 9.19 OPG_APIS.DROP_EDGES_TEXT_IDX
- 9.20 OPG_APIS.DROP_PG
- 9.21 OPG_APIS.DROP_PG_VIEW
- 9.22 OPG_APIS.DROP_VERTICES_TEXT_IDX
- 9.23 OPG_APIS.ESTIMATE_TRIANGLE_RENUM
- 9.24 OPG_APIS.EXP_EDGE_TAB_STATS
- 9.25 OPG_APIS.EXP_VERTEX_TAB_STATS
- 9.26 OPG_APIS.FIND_CC_MAPPING_BASED
- 9.27 OPG_APIS.FIND_CLUSTERS_CLEANUP
- 9.28 OPG_APIS.FIND_CLUSTERS_PREP
- 9.29 OPG_APIS.FIND_SP
- 9.30 OPG_APIS.FIND_SP_CLEANUP
- 9.31 OPG_APIS.FIND_SP_PREP
- 9.32 OPG_APIS.GET_BUILD_ID
- 9.33 OPG_APIS.GET_GEOMETRY_FROM_V_COL
- 9.34 OPG_APIS.GET_GEOMETRY_FROM_V_T_COLS
- 9.35 OPG_APIS.GET_LATLONG_FROM_V_COL
- 9.36 OPG_APIS.GET_LATLONG_FROM_V_T_COLS
- 9.37 OPG_APIS.GET_LONG_LAT_GEOMETRY
- 9.38 OPG_APIS.GET_LATLONG_FROM_V_COL
- 9.39 OPG_APIS.GET_LONGLAT_FROM_V_T_COLS
- 9.40 OPG_APIS.GET_SCN
- 9.41 OPG_APIS.GET_VERSION
- 9.42 OPG_APIS.GET_WKTGEOMETRY_FROM_V_COL
- 9.43 OPG_APIS.GET_WKTGEOMETRY_FROM_V_T_COLS
- 9.44 OPG_APIS.GRANT_ACCESS
- 9.45 OPG_APIS.IMP_EDGE_TAB_STATS
- 9.46 OPG_APIS.IMP_VERTEX_TAB_STATS
- 9.47 OPG_APIS.PR
- 9.48 OPG_APIS.PR_CLEANUP
- 9.49 OPG_APIS.PR_PREP
- 9.50 OPG_APIS.PREPARE_TEXT_INDEX
- 9.51 OPG_APIS.RENAME_PG
- 9.52 OPG_APIS.SPARSIFY_GRAPH
- 9.53 OPG_APIS.SPARSIFY_GRAPH_CLEANUP
- 9.54 OPG_APIS.SPARSIFY_GRAPH_PREP
- 10 OPG_GRAPHOP Package Subprograms
- Supplementary Information for Property Graph Support
- Index