Graph Developer's Guide For Property Graph - Oracle

8m ago
9 Views
1 Downloads
4.13 MB
742 Pages
Last View : 1d ago
Last Download : 3m ago
Upload by : Halle Mcleod
Transcription

Oracle Database Graph Developer's Guide for Property Graph 22.1 F51063-02 March 2022

Oracle Database Graph Developer's Guide for Property Graph, 22.1 F51063-02 Copyright 2016, 2022, Oracle and/or its affiliates. Primary Author: Lavanya Jayapalan Contributors: Prashant Kannan, Chuck Murray, Melliyal Annamalai, Korbinian Schmid, Albert Godfrind, Oskar van Rest, Jorge Barba, Ana Estrada, Steve Serra, Ryota Yamanaka, Bill Beauregard, Hector Briseno, Hassan Chafi, Eugene Chong, Souripriya Das, Juan Garcia, Florian Gratzer, Zazhil Herena, Sungpack Hong, Roberto Infante, Hugo Labra, Gabriela Montiel-Moreno, Eduardo Pacheco, Joao Paiva, Matthew Perry, Diego Ramirez, Siva Ravada, Carlos Reyes, Jane Tao, Edgar Vazquez, Zhe (Alan) Wu This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, then the following notice is applicable: U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs) and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Government end users are "commercial computer software" or "commercial computer software documentation" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, reproduction, duplication, release, display, disclosure, modification, preparation of derivative works, and/or adaptation of i) Oracle programs (including any operating system, integrated software, any programs embedded, installed or activated on delivered hardware, and modifications of such programs), ii) Oracle computer documentation and/or iii) other Oracle data, is subject to the rights and limitations specified in the license contained in the applicable contract. The terms governing the U.S. Government’s use of Oracle cloud services are defined by the applicable contract for such services. No other rights are granted to the U.S. Government. This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications. Oracle, Java, and MySQL are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. Intel and Intel Inside are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Epyc, and the AMD logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group. This software or hardware and documentation may provide access to or information about content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services, except as set forth in an applicable agreement between you and Oracle.

Contents Preface Audience xx Documentation Accessibility xx Related Documents xx Conventions xx Changes in This Release for This Guide Part I 1 Getting Started with Oracle Property Graphs Property Graph Support Overview 1.1 1.2 1.3 Introduction to Property Graphs 1-2 1.1.1 What Are Property Graphs? 1-2 1.1.2 About the Property Graph Feature of Oracle Database 1-3 1.1.2.1 Graph Server (PGX) 1-4 1.1.2.2 Options for Property Graph Architecture 1-4 Before You Begin with Oracle Property Graphs 1-7 1.2.1 Database Compatibility and Restrictions 1-7 1.2.2 Downloading Oracle Graph Server and Client 1-8 1.2.3 Installing PL/SQL Packages in Oracle Database 1-9 Oracle Graph Server and Client Installation 1-10 1.3.1 Installing Oracle Graph Server 1-10 1.3.2 Deploying Oracle Graph Server to a Web Server 1-13 1.3.2.1 Deploying to Apache Tomcat 1-13 1.3.2.2 Deploying to Oracle WebLogic Server 1-14 1.3.3 Upgrading Oracle Graph Server 1-15 1.3.4 Uninstalling Oracle Graph Server 1-15 1.3.5 Installing Oracle Graph Client 1-15 1.3.5.1 Installing the Java Client 1-16 1.3.5.2 Installing the Python Client 1-17 iii

1.4 Uninstalling the Python Client 1-18 1.3.5.4 Enabling the Graph Visualization Application 1-18 1.3.5.5 Deploying the Graph Visualization Application 1-19 1.3.5.6 Installing the Graph Zeppelin Interpreter Client 1-24 Setting Up Transport Layer Security 1-25 1.4.1 Generating a Self-Signed Server Certificate 1-25 1.4.2 Configuring the Graph Server (PGX) 1-26 1.4.3 Configuring a Client to Trust the Self-Signed Certificate 1-27 1.5 Adding Permissions to Publish the Graph 1-28 1.6 Security Best Practices with Graph Data 1-29 1.7 Interactive Graph Shell CLIs 1-30 1.7.1 Starting the OPG4J Shell 1-31 1.7.2 Starting the OPG4Py Shell 1-33 1.8 Developing Applications Using Graph Server Functionality as a Library 1-34 1.9 Storing Graphs in Oracle Database and Loading Graphs into Memory 1-35 1.9.1 Two-Tier Mode 1-35 1.9.2 Three-Tier Mode 1-35 1.10 2 1.3.5.3 Using Oracle Graph with the Autonomous Database 1-36 1.10.1 Two-Tier Deployments of Oracle Graph with Autonomous Database 1-36 1.10.2 Three-Tier Deployments of Oracle Graph with Autonomous Database 1-37 1.11 Migrating Property Graph Applications from Before Release 21c 1-40 1.12 Upgrading From Graph Server and Client 20.4.x to 21.x 1-42 1.13 Using the Graph Zeppelin Interpreter Client 1-45 1.14 About Oracle Graph Server and Client Accessibility 1-46 Quick Starts for Using Oracle Property Graph 2.1 Using Sample Data for Graph Analysis 2.1.1 2.2 2-1 Importing Data from CSV Files 2-1 Quick Start: Interactively Analyze Graph Data 2.2.1 2-3 Quick Start: Create and Query a Graph in the Database, Load into Graph Server (PGX) for Analytics 2-3 2.2.1.1 Create and Query a Graph in the Database 2-4 2.2.1.2 Load the Graph into Memory and Run Graph Analytics 2-8 2.2.2 Quick Start: Create, Query, and Analyze a Graph in Graph Server (PGX) 2-11 2.2.3 Quick Start: Executing PGQL Queries in SQLcl 2-16 2.3 QuickStart: Run Graph Analytics Using the Python Shell 2-18 2.4 Quick Start: Using the Python Client as a Module 2-20 2.5 Quick Start: Working with Property Graph Views 2-22 2.6 Oracle LiveLabs Workshops for Graphs 2-28 iv

3 4 Property Graph Views on Oracle Database Tables 3.1 Loading a Graph into the Graph Server (PGX) from a Property Graph View 3-4 3.2 Using JSON to Store Vertex and Edge Properties 3-5 Using the Graph Server (PGX) 4.1 Overview of the Graph Server (PGX) 4-2 4.1.1 Design of the Graph Server (PGX) 4-2 4.1.2 Usage Modes of the Graph Server (PGX) 4-4 4.2 User Authentication and Authorization 4-6 4.2.1 Privileges and Roles in Oracle Database 4-7 4.2.2 Basic Steps for Using an Oracle Database for Authentication 4-7 4.2.3 Prepare the Graph Server for Database Authentication 4-9 4.2.4 Store the Database Password in a Keystore 4-11 4.2.5 Token Expiration 4-16 4.2.6 Advanced Access Configuration 4-17 4.2.7 Customizing Roles and Permissions 4-18 4.2.7.1 Checking Graph Permissions Using API 4-18 4.2.7.2 Adding and Removing Roles 4-20 4.2.7.3 Defining Permissions for Individual Users 4-21 4.2.7.4 Defining Permissions to Use Custom Graph Algorithms 4-21 4.2.8 Revoking Access to the Graph Server 4-21 4.2.9 Examples of Custom Authorization Rules 4-21 4.2.10 Kerberos Enabled Authentication for the Graph Server (PGX) 4-24 4.2.10.1 Prerequisite Requirements 4-24 4.2.10.2 Prepare the Graph Server for Kerberos Authentication 4-24 4.2.10.3 Login to the Graph Server Using Kerberos Ticket 4-25 4.3 About Vertex and Edge IDs 4-27 4.4 Reading Entity Providers at the Same SCN 4-29 4.5 Reading Graphs from Oracle Database into the Graph Server (PGX) 4-32 4.5.1 Creating a JSON Configuration to Load a Graph 4-32 4.5.2 Building Graph Configuration Using the GraphConfigBuilder API 4-35 Keeping the Graph in Oracle Database Synchronized with the Graph Server 4-38 4.6 4.6.1 Examples of Synchronizing 4-39 4.7 Optimizing Graphs for Read Versus Updates in the Graph Server (PGX) 4-43 4.8 Storing a Graph Snapshot on Disk 4-44 4.9 Executing Built-in Algorithms 4-47 4.9.1 About Built-In Algorithms in the Graph Server (PGX) 4-48 4.9.2 Running the Triangle Counting Algorithm 4-49 4.9.3 Running the PageRank Algorithm 4-49 Using Custom PGX Graph Algorithms 4-50 4.10 v

4.10.1 Writing a Custom PGX Algorithm 4.10.1.1 Collections 4-51 4.10.1.2 Iteration 4-52 4.10.1.3 Reductions 4-52 4.10.2 Compiling and Running a Custom PGX Algorithm 4-53 4.10.3 Example Custom PGX Algorithm: PageRank 4-55 4.11 Creating Subgraphs 4-56 4.11.1 About Filter Expressions 4-56 4.11.2 Using a Simple Filter to Create a Subgraph 4-57 4.11.3 Using a Complex Filter to Create a Subgraph 4-58 4.11.4 Using a Vertex Set to Create a Bipartite Subgraph 4-59 Using Automatic Delta Refresh to Handle Database Changes 4-61 4.12 4.12.1 Configuring the Graph Server (PGX) for Auto-Refresh 4-61 4.12.2 Configuring Basic Auto-Refresh 4-62 4.12.3 Reading the Graph Using the Graph Server (PGX) or a Java Application 4-63 4.12.4 Checking Out a Specific Snapshot of the Graph 4-63 4.12.5 Advanced Auto-Refresh Configuration 4-64 4.12.6 Special Considerations When Using Auto-Refresh 4-65 4.13 Starting the Graph Server (PGX) 4-65 4.13.1 Starting and Stopping the Graph Server (PGX) Using the Command Line 4-66 4.13.2 Configuring the Graph Server (PGX) 4-66 4.14 Connecting to the Graph Server (PGX) 4-72 4.14.1 Connecting with the Graph Shell 4-72 4.14.2 Connecting with Java 4-77 4.14.2.1 4.14.3 5 4-50 Starting and Stopping the PGX Engine 4-77 Connecting with Python 4-78 4.15 Using Graph Server (PGX) as a Library 4-79 4.16 User-Defined Functions (UDFs) in PGX 4-80 4.17 Deploying Oracle Graph Server Behind a Load Balancer 4-84 4.17.1 Using HAProxy for PGX Load Balancing and High Availability 4-85 4.17.2 Deploying Graph Server (PGX) Using OCI Load Balancer 4-86 4.17.3 Health Check in the Load Balancer 4-89 Using the Property Graph Schema 5.1 Property Graph Schema Objects for Oracle Database 5-2 5.1.1 Property Graph Tables (Detailed Information) 5-2 5.1.2 Default Indexes on Vertex (VT ) and Edge (GE ) Tables 5-6 5.1.3 Flexibility in the Property Graph Schema 5-7 5.2 Data Access Layer 5-7 5.3 Getting Started with Property Graphs 5-7 vi

5.3.1 5.4 Using Java APIs for Property Graph Data 5.4.1 5.5 Required Privileges for Database Users Overview of the Java APIs 5-9 Oracle Graph Property Graph Java APIs 5-9 5.4.1.2 Oracle Database Property Graph Java APIs 5-9 5.4.2 Parallel Retrieval of Graph Data 5.4.3 Using an Element Filter Callback for Subgraph Extraction 5-11 5.4.4 Using Optimization Flags on Reads over Property Graph Data 5-14 5.4.5 Adding and Removing Attributes of a Property Graph Subgraph 5-16 5.4.6 Getting Property Graph Metadata 5-21 5.4.7 Merging New Data into an Existing Property Graph 5-22 5.4.8 Opening and Closing a Property Graph Instance 5-25 5.4.9 Creating Vertices 5-26 5.4.10 Creating Edges 5-26 5.4.11 Deleting Vertices and Edges 5-27 5.4.12 Reading a Graph from a Database into an Embedded Graph Server (PGX) 5-27 5.4.13 Specifying Labels for Vertices 5-28 5.4.14 Building an In-Memory Graph 5-29 5.4.15 Dropping a Property Graph 5-30 5.4.16 Executing PGQL Queries 5-30 Managing Text Indexing for Property Graph Data Configuring a Text Index for Property Graph Data 5.5.1.1 5-9 5-30 5-31 Configuring Text Indexes Using Oracle Text 5-31 5.5.2 Using Automatic Indexes for Property Graph Data 5-34 5.5.3 Using Manual Indexes for Property Graph Data 5-35 5.5.4 Executing Search Queries Over a Property Graph’s Text Indexes 5-36 5.5.4.1 5.5.5 Executing Search Queries Over a Text Index Using Oracle Text Handling Data Types 5.5.5.1 Handling Data Types on Oracle Text 5-36 5-37 5-37 5.5.6 Updating Configuration Settings on Text Indexes for Property Graph Data 5-38 5.5.7 Using Parallel Query on Text Indexes for Property Graph Data 5-38 5.5.7.1 Parallel Text Search Using Oracle Text Access Control for Property Graph Data (Graph-Level and OLS) 5.6.1 5.7 5-8 5.4.1.1 5.5.1 5.6 5-8 Applying Oracle Label Security (OLS) on Property Graph Data SQL-Based Property Graph Query and Analytics 5-39 5-40 5-41 5-46 5.7.1 Simple Property Graph Queries 5-47 5.7.2 Text Queries on Property Graphs 5-50 5.7.3 Navigation and Graph Pattern Matching 5-54 5.7.4 Navigation Options: CONNECT BY and Parallel Recursion 5-59 5.7.5 Pivot 5-62 5.7.6 SQL-Based Property Graph Analytics 5-63 vii

5.8 6 5.7.6.1 Shortest Path Examples 5-64 5.7.6.2 Collaborative Filtering Overview and Examples 5-68 Creating Property Graph Views on an RDF Graph 5-73 Property Graph Query Language (PGQL) 6.1 Creating a Property Graph using PGQL 6-1 6.2 Pattern Matching with PGQL 6-4 6.3 Edge Patterns Have a Direction with PGQL 6-4 6.4 Vertex and Edge Labels with PGQL 6-5 6.5 Variable-Length Paths with PGQL 6-5 6.6 Aggregation and Sorting with PGQL 6-6 6.7 Supported PGQL Features and Limitations 6-6 6.8 Executing PGQL Queries Against the Graph Server (PGX) 6-10 6.8.1 Getting Started with PGQL 6-11 6.8.2 Creating Property Graphs Using Graph Optimization Options 6-13 6.8.3 PGQL Features Supported in the Graph Server (PGX) 6-14 6.8.3.1 Support for Selecting All Properties 6-14 6.8.3.2 Unnesting of Variable-Length Path Queries 6-15 6.8.3.3 Limitations on Quantifiers 6-16 6.8.3.4 Limitations on WHERE and COST Clauses in Quantified Patterns 6-16 6.8.4 Java APIs for Executing CREATE PROPERTY GRAPH Statements 6-17 6.8.5 Python APIs for Executing CREATE PROPERTY GRAPH Statements 6-17 6.8.6 Java APIs for Executing SELECT Queries 6-18 6.8.6.1 Executing SELECT Queries Against a Graph in the Graph Server (PGX) 6-18 6.8.6.2 Executing SELECT Queries Against a PGX Session 6-19 6.8.6.3 Iterating Through a Result Set 6-19 6.8.6.4 Printing a Result Set 6-21 6.8.7 Java APIs for Executing UPDATE Queries 6-22 6.8.7.1 Updatability of Graphs Through PGQL 6-22 6.8.7.2 Executing UPDATE Queries Against a Graph in the Graph Server (PGX) 6-23 6.8.7.3 Executing UPDATE Queries Against a PGX Session 6-24 6.8.7.4 Altering the Underlying Schema of a Graph 6-24 6.8.8 PGQL Queries with Partitioned IDs 6-25 6.8.9 Security Tools for Executing PGQL Queries 6-26 6.8.9.1 Using Bind Variables 6-27 6.8.9.2 Using Identifiers in a Safe Manner 6-28 6.8.10 Best Practices for Tuning PGQL Queries 6-28 6.8.10.1 Memory Allocation 6-29 6.8.10.2 Parallelism 6-29 6.8.10.3 Query Plan Explaining 6-29 viii

6.9 Executing PGQL Queries Directly Against Oracle Database 6.9.1 Executing PGQL Queries Against Property Graph Schema Tables 6-31 6.9.1.1 PGQL Features Supported in Property Graph Schema 6-32 6.9.1.2 Creating Property Graphs through CREATE PROPERTY GRAPH Statements 6-34 Dropping Property Graphs through DROP PROPERTY GRAPH Statements 6-41 6.9.1.4 Using the oracle.pg.rdbms.pgql Java Package to Execute PGQL Queries 6-42 6.9.1.5 Using the Python Client to Execute PGQL Queries 6-108 6.9.1.6 Performance Considerations for PGQL Queries 6-114 6.9.1.3 6.9.2 7 6-30 Executing PGQL Queries Against Property Graph Views 6-115 6.9.2.1 PGQL Features Supported in Property Graph Views 6-116 6.9.2.2 Performance Considerations for PGQL Queries 6-119 6.9.2.3 Creating a Property Graph View 6-121 6.9.2.4 Executing PGQL SELECT Queries 6-124 6.9.2.5 Dropping A Property Graph View 6-126 Graph Visualization Application 7.1 About the Graph Visualization Application 7-1 7.2 How does the Graph Visualization Application Work 7-1 7.3 Using the Graph Visualization Application 7-2 7.4 7.5 7.3.1 Graph Visualization Modes 7-3 7.3.2 Graph Visualization Settings 7-3 7.3.3 Using the Geographical Layout 7-6 7.3.4 Using Live Search 7-8 7.3.5 Using URL Parameters to Control the Graph Visualization Application 7-9 REST Endpoints for the Graph Visualization Application 7-9 7.4.1 Login 7-10 7.4.2 List Graphs 7-11 7.4.3 Run a PGQL Query 7-11 7.4.4 Get User 7-13 7.4.5 Asynchronous REST Endpoints 7-14 7.4.5.1 Run a PGQL Query Asynchronously 7-14 7.4.5.2 Check a Query Completion 7-14 7.4.5.3 Cancel a Query Execution 7-15 7.4.5.4 Retrieve a Query Result 7-15 Kerberos Enabled Authentication for the Graph Visualization Application 7-17 7.5.1 Prerequisite Requirements for Kerberos Authentication 7-18 7.5.2 Preparing the Graph Visualization Application for Kerberos Authentication 7-18 ix

8 Using the Machine Learning Library (PgxML) for Graphs 8.1 Using the DeepWalk Algorithm 8.1.1 Loading a Graph 8-2 8.1.2 Building a Minimal DeepWalk Model 8-3 8.1.3 Building a Customized DeepWalk Model 8-4 8.1.4 Training a DeepWalk Model 8-5 8.1.5 Getting the Loss Value For a DeepWalk Model 8-5 8.1.6 Computing Similar Vertices for a Given Vertex 8-6 8.1.7 Computing Similar Vertices for a Vertex Batch 8-7 8.1.8 Getting All Trained Vertex Vectors 8-8 8.1.9 Storing a Trained DeepWalk Model 8-8 8.1.9.1 8.1.10 8.1.11 8-9 8-10 Loading a Pre-Trained Model From Another Database 8-11 Destroying a DeepWalk Model 8-12 Using the Supervised GraphWise Algorithm 8-13 8.2.1 Loading a Graph 8-14 8.2.2 Building a Minimal GraphWise Model 8-15 8.2.3 Advanced Hyperparameter Customization 8-16 8.2.4 Setting a Custom Loss Function and Batch Generator (for Anomaly Detection) 8-18 8.2.5 Training a Supervised GraphWise Model 8-20 8.2.6 Getting the Loss Value For a Supervised GraphWise Model 8-20 8.2.7 Inferring the Vertex Labels for a Supervised GraphWise Model 8-21 8.2.8 Evaluating the Supervised GraphWise Model Performance 8-22 8.2.9 Inferring Embeddings for a Supervised GraphWise Model 8-23 8.2.9.1 8.3 Storing a Trained Model in Another Database Loading a Pre-Trained DeepWalk Model 8.1.10.1 8.2 8-1 Inferring Embeddings for a Model in Another Database 8-24 8.2.10 Storing a Trained Supervised GraphWise Model 8-25 8.2.11 Loading a Pre-Trained Supervised GraphWise Model 8-26 8.2.12 Destroying a Supervised GraphWise Model 8-27 8.2.13 Explaining a Prediction of a Supervised GraphWise Model 8-27 Using the Unsupervised GraphWise Algorithm 8-30 8.3.1 Loading a Graph 8-31 8.3.2 Building a Minimal Unsupervised GraphWise Model 8-32 8.3.3 Advanced Hyperparameter Customization 8-33 8.3.4 Training a Unsupervised GraphWise Model 8-34 8.3.5 Getting the Loss Value for a Unsupervised GraphWise Model 8-34 8.3.6 Inferring Embeddings for a Unsupervised GraphWise Model 8-35 8.3.7 Storing a Unsupervised GraphWise Model 8-36 8.3.8 Loading a Pre-Trained Unsupervised GraphWise Model 8-37 8.3.9 Destroying a Unsupervised GraphWise Model 8-38 x

8.3.10 8.4 9 Explaining a Prediction for an Unsupervised GraphWise Model Using the Pg2vec Algorithm 8-38 8-41 8.4.1 Loading a Graph 8-42 8.4.2 Building a Minimal Pg2vec Model 8-43 8.4.3 Building a Customized Pg2vec Model 8-44 8.4.4 Training a Pg2vec Model 8-45 8.4.5 Getting the Loss Value For a Pg2vec Model 8-46 8.4.6 Computing Similar Graphlets for a Given Graphlet 8-46 8.4.7 Computing Similars for a Graphlet Batch 8-48 8.4.8 Inferring a Graphlet Vector 8-49 8.4.9 Inferring Vectors for a Graphlet Batch 8-49 8.4.10 Storing a Trained Pg2vec Model 8-50 8.4.11 Loading a Pre-Trained Pg2vec Model 8-51 8.4.12 Destroying a Pg2vec Model 8-52 OPG APIS Package Subprograms 9.1 OPG APIS.ANALYZE PG 9-2 9.2 OPG APIS.CF 9-4 9.3 OPG APIS.CF CLEANUP 9-7 9.4 OPG APIS.CF PREP 9-9 9.5 OPG APIS.CLEAR PG 9-10 9.6 OPG APIS.CLEAR PG INDICES 9-11 9.7 OPG APIS.CLONE GRAPH 9-11 9.8 OPG APIS.COUNT TRIANGLE 9-12 9.9 OPG APIS.COUNT TRIANGLE CLEANUP 9-13 9.10 OPG APIS.COUNT TRIANGLE PREP 9-14 9.11 OPG APIS.COUNT TRIANGLE RENUM 9-16 9.12 OPG APIS.CREATE EDGES TEXT IDX 9-17 9.13 OPG APIS.CREATE PG 9-18 9.14 OPG APIS.CREATE PG SNAPSHOT TAB 9-19 9.15 OPG APIS.CREATE PG TEXTIDX TAB 9-21 9.16 OPG APIS.CREATE STAT TABLE 9-22 9.17 OPG APIS.CREATE SUB GRAPH 9-23 9.18 OPG APIS.CREATE VERTICES TEXT IDX 9-24 9.19 OPG APIS.DROP EDGES TEXT IDX 9-26 9.20 OPG APIS.DROP PG 9-26 9.21 OPG APIS.DROP PG VIEW 9-27 9.22 OPG APIS.DROP VERTICES TEXT IDX 9-27 9.23 OPG APIS.ESTIMATE TRIANGLE RENUM 9-28 9.24 OPG APIS.EXP EDGE TAB STATS 9-30 xi

10 9.25 OPG APIS.EXP VERTEX TAB STATS 9-31 9.26 OPG APIS.FIND CC MAPPING BASED 9-32 9.27 OPG APIS.FIND CLUSTERS CLEANUP 9-33 9.28 OPG APIS.FIND CLUSTERS PREP 9-34 9.29 OPG APIS.FIND SP 9-36 9.30 OPG APIS.FIND SP CLEANUP 9-37 9.31 OPG APIS.FIND SP PREP 9-38 9.32 OPG APIS.GET BUILD ID 9-39 9.33 OPG APIS.GET GEOMETRY FROM V COL 9-39 9.34 OPG APIS.GET GEOMETRY FROM V T COLS 9-41 9.35 OPG APIS.GET LATLONG FROM V COL 9-42 9.36 OPG APIS.GET LATLONG FROM V T COLS 9-43 9.37 OPG APIS.GET LONG LAT GEOMETRY 9-44 9.38 OPG APIS.GET LATLONG FROM V COL 9-45 9.39 OPG APIS.GET LONGLAT FROM V T COLS 9-46 9.40 OPG APIS.GET SCN 9-47 9.41 OPG APIS.GET VERSION 9-47 9.42 OPG APIS.GET WKTGEOMETRY FROM V COL 9-48 9.43 OPG APIS.GET WKTGEOMETRY FROM V T COLS 9-49 9.44 OPG APIS.GRANT ACCESS 9-50 9.45 OPG APIS.IMP EDGE TAB STATS 9-51 9.46 OPG APIS.IMP VERTEX TAB STATS 9-52 9.47 OPG APIS.PR 9-54 9.48 OPG APIS.PR CLEANUP 9-56 9.49 OPG APIS.PR PREP 9-57 9.50 OPG APIS.PREPARE TEXT INDEX 9-58 9.51 OPG APIS.RENAME PG 9-58 9.52 OPG APIS.SPARSIFY GRAPH 9-59 9.53 OPG APIS.SPARSIFY GRAPH CLEANUP 9-61 9.54 OPG APIS.SPARSIFY GRAPH PREP 9-62 OPG GRAPHOP Package Subprograms 10.1 Part II 11 OPG GRAPHOP.POPULATE SKELETON TAB 10-1 Graph Server (PGX) Advanced User Guide Configuring the Graph Server (PGX) and the Graph Client 11.1 Configuration Parameters for the Graph Server (PGX) Engine 11.1.1 11-1 Configuration of the Graph Server (PGX) Run-Time Parameters 11-11 xii

11.1.2 Passing the Configuration File to the Graph Server (PGX) 11-14 11.1.3 Memory Consumption by the Graph Server (PGX) 11-15 11.1.3.1 12 14 11-16 11.2 Configuration Parameters for Connecting to the Graph Server (PGX) 11-17 11.3 Configuration Parameters for the Graph Client 11-17 Graphs Management 12.1 13 Memory Management Loading a Graph Into the Graph Server (PGX) 12-1 12.1.1 API for Loading Graphs into Memory 12-1 12.1.2 Graph Configuration Options 12-2 12.1.3 Preloading a Graph 12-9 12.1.4 Data Loading Security Best Practices 12-10 12.1.5 Data Format Support Matrix 12-10 12.1.6 Immutability of Loaded Graphs 12-11 12.2 Publishing a Graph 12-11 12.3 Publishing a Preloaded Graph 12-16 12.4 Deleting a Graph 12-17 Namespaces and Sharing 13.1 Defining Graph Names 13-1 13.2 Retrieving Graphs by Name 13-1 13.3 Checking Used Names 13-2 13.4 Property Name Resolution and Graph Mutations 13-2 PGX Programming Guides 14.1 Design of the Graph Server (PGX) API 14-3 14.2 Data Types and Collections in the Graph Server (PGX) 14-4 14.2.1 14-7 14.2.1.1 Collection Data Types 14.2.1.2 Map Data Types 14-11 Using Datetime Data Types 14-16 14.2.2 14.3 Using Collections and Maps 14-7 14.2.2.1 Loading Datetime Data 14-17 14.2.2.2 Specifying Custom Datetime Formats 14-19 14.2.2.3 APIs for Accessing Datetime Data 14-21 14.2.2.4 Querying Datetime Data Using PGQL 14-21 14.2.2.5 Accessing Datetimes from PGQL Result Sets 14-24 Handling Asynchronous Requests in Graph Server (PGX) 14-25 14.3.1 Blocking Operation 14-25 14.3.2 Chaining Operation 14-26 xiii

14.3.3 Cancelling Operation 14-27 14.3.4 Handling Concurrent Asynchronus Operations 14-27 14.4 Graph Client Sessions 14-28 14.5 Graph Mutation and Subgraphs 14-30 14.5.1 Altering Graphs 14.5.1.1 14-30 Loading Or Removing Additional Vertex or Edge Providers 14-31 14.5.2 Simplifying and Copying Graphs 14-38 14.5.3 Transposing Graphs 14-40 14.5.4 Undirecting Graphs 14-41 14.5.5 Advanced Multi-Edge Handling 14-41 14.5.5.1 Picking 14-42 14.5.5.2 Merging 14-43 14.5.5.3 StrategyBuilder in General 14-44 14.5.6 Creating a Subgraph 14-45 14.5.7 Creating a Bipartite Subgraph 14-45 14.5.8 Creating a Sparsified Subgraph 14-46 Graph Builder and Graph Change Set 14-47 14.6 14.6.1 14-47 14.6.1.1 Creating a Simple Graph 14-47 14.6.1.2 Adding a Vertex Property 14-48 14.6.1.3 Using Strings as Vertex Identifiers 14-50 14.6.1.4 Referencing a Vertex for Creating Edges 14-51 14.6.1.5 Adding an Edge Property and a Label 14-53 14.6.1.6 Using Graph Builder with Implicit IDs 14-54 14.6.2 14.7 Building Graphs Using GraphBuilder Interface Modifying Loaded Graphs Using ChangeSet 14-55 14.6.2.1 Modifying Vertices 14-56 14.6.2.2 Adding Edges 14-56 14.6.2.3 GraphChangeSet with Partitioned IDs 14-57 14.6.2.4 Error Handling when Using a ChangeSet 14-58 Managing Transient Data 14-60 14.7.1 Managing Transient Properties 14-60 14.7.2 Managing Collections and Scalars 14-61 14.8 Graph Versioning 14-63 14.8.1 Configuring the Snapshots Source 14-63 14.8.2 Creating a Snapshot via Refreshing 14-64 14.8.3 Creating a Snapshot via ChangeSet 14-66 14.8.4 Checking Out the Latest Snapshots of a Graph 14-68 14.8.5 Checking Out Different Snapshots of a Graph 14-69 14.8.6 Directly Loading a Specific Snapshot of a Graph 14-70 14.9 Labels and Properties 14.9.1 14-72 Setting and Getting Property Values 14-72 xiv

14.9.2 14.10 Getting Label Values Filter Expressions 14-73 14-74 14.10.1 Syntax 14-74 14.10.2 Type System 14-79 14.10.3 Path Finding Filters 14-79 14.10.4 Subgraph Filters 14-80 14.10.5 Operations on Filter Expressions 14-80 14.11 14.10.5.1 Defining Filter Expressions 14-81 14.10.5.2 Defining Result Set Filters 14-81 14.10.5.3 Creating a Subgraph from PGQL Result Set 14-83 14.10.5.4 Defining Collection Filters 14-84 14.10.5.5 Creating a Subgraph from Collection Filters 14-85 14.10.5.6 Combining Filter Expressions 14-86 14.10.5.7 Creating a Subgraph Using Filter Expressions with Partitioned IDs 14-87 Advanced Task Scheduling Using Execution Environments 14-88 14.11.1 Enterprise Scheduler Configuration Guide 14-88 14.11.2 Enabling Enterprise Scheduler Features 14-91 14.11.3 Retrieving and Inspecting the Execution Environment 14-91 14.11.4 Modifying and Submitting Tasks Under an Updated Environment 14-92 14.11.5 Using Lambda Syntax 14-93 14.12 Admin API 14-94 14.12.1 Get a Server Instance 14-95 14.12.2 Get Inspection Data 14-95 14.12.3 Get Active Sessions 14-96 14.12.4 Get Cached Graphs 14-98 14.12.5 Get Published Graphs 14-99 14.12.6 Get Currently Loading Graphs 14-99 14.12.7 Get Tasks 14-100 14.12.8 Get Available Memories 14-100 PgxFrames Tabular Data-Structure 14-100 14.13 14.13.1 Loading a PgxFrame from a Database 14-101 14.13.2 Loading a PgxFrame from Client-Side Data 14-103 14.13.3 Printing the Content of a PgxFrame 14-107 14.13.4 Destroying a PgxFrame 14-108 14.13.5 Storing a PgxFrame to a Database 14-109 14.13.6 Loading and Storing Vector Properties 14-110 14.13.7 Flattening Vector Properties 14-111 14.13.8 Union of PGX Frames 14-112 14.13.9 Joining PGX Frames 14-113 14.13.10 PgxFrame Helpers 14-114 14.13.11 PgxFrame-PgqlResultSet Conversions 14-117 xv

14.13.12 15 14-118 Working with Files Using the Graph Server (PGX) 15.1 Loading Graph Data from Files 15-1 15.1.1 Graph Configuration for Loading from File 15-2 15.1.2 Specifying the File Path 15-7 15.1.3 Supported File Access Protocols 15-7 15.1.4 Plain Text Formats 15-8 15.1.4.1 Comma-Separated Values (CSV) 15-10 15.1.4.2 Adjacency List (ADJ LIST) 15-13 15.1.4.3 Edge List (EDGE LIST) 15-13 15.1.4.4 Two Tables (TWO TABLES) 15-15 15.1.5 XML File Formats 15-16 15.1.6 Binary File Formats 15-17 15.2 Loading Graph Data in Parallel from Multiple Files 15-22 15.3 Exporting Graphs Into a File 15-24 15.3.1 15.4 16 Creating a Graph from Multiple PgxFrame Objects Exporting a Graph to Disk 15-26 Exporting a Graph into Multiple Files 15-28 Log Management in the Graph Server (PGX) 16.1 Part III Configuring Log4j Logging 16-1 Supplementary Information for Property Graph Support A Mapping Graph Server Roles to Default Privileges B Disabling Transport Layer Security (TLS) in Graph Server Index xvi

List of Figures 1-1 Simple Property Graph Example 1-3 1-2 Three-Tier Property Graph Architecture 1-5 1-3 Two-Tier Property Graph Architecture 1-6 1-4 Graph Visualization Login 1-20 1-5 PGQL on Graph Server (PGX) 1-23 1-6 PGQL on Database 1-24 1-7 Enabling Accessibility Mode in the Graph Visualization Application 1-47 3-1 Financial Transactions Graph 3-6 4-1 Graph Server (PGX) Design 4-3 4-2 Session and Transient Properties 4-4 4-3 Remote Server Mode 4-5 4-4 PGX as a Library 4-5 4-5 Edges Matching src.prop 10 4-57 4-6 Graph Created by the Simple Filter 4-57 4-7 Edges Matching the outDegree Filter 4-58 4-8 Graph Created by the outDegree Filter 4-59 4-9 Configuring Load Balancer Details 4-87 4-10 Adding Backends to Load Balancer 4-87 4-11 Configuring a Listener for the Load Balancer 4-88 4-12 Enabling Session Persistence 4-89 5-1 Phones Graph for Collaborative Filtering 5-68 6-1 PGQL on Property Graph Schema Tables in Oracle Database (RDBMS) 6-31 6-2 PGQL on Property Graph View

1.14 About Oracle Graph Server and Client Accessibility 1-46. 2 . Quick Starts for Using Oracle Property Graph. 2.1 Using Sample Data for Graph Analysis 2-1 2.1.1 Importing Data from CSV Files 2-1 2.2 Quick Start: Interactively Analyze Graph Data 2-3 2.2.1 Quick Start: Create and Query a Graph in the Database, Load into Graph Server (PGX) for .

Related Documents:

LÄS NOGGRANT FÖLJANDE VILLKOR FÖR APPLE DEVELOPER PROGRAM LICENCE . Apple Developer Program License Agreement Syfte Du vill använda Apple-mjukvara (enligt definitionen nedan) för att utveckla en eller flera Applikationer (enligt definitionen nedan) för Apple-märkta produkter. . Applikationer som utvecklas för iOS-produkter, Apple .

Bruksanvisning för bilstereo . Bruksanvisning for bilstereo . Instrukcja obsługi samochodowego odtwarzacza stereo . Operating Instructions for Car Stereo . 610-104 . SV . Bruksanvisning i original

The totality of these behaviors is the graph schema. Drawing a graph schema . The best way to represent a graph schema is, of course, a graph. This is how the graph schema looks for the classic Tinkerpop graph. Figure 2: Example graph schema shown as a property graph . The graph schema is pretty much a property-graph.

Oracle Database Spatial and Graph In-memory parallel graph analytics server (PGX) Load graph into memory for analysis . Command-line submission of graph queries Graph visualization tool APIs to update graph store : Graph Store In-Memory Graph Graph Analytics : Oracle Database Application : Shell, Zeppelin : Viz .

1.14 About Oracle Graph Server and Client Accessibility 1-57. 2 . Quick Starts for Using Oracle Property Graph. 2.1 Using Sample Data for Graph Analysis 2-1 2.1.1 Importing Data from CSV Files 2-1 2.2 Quick Start: Interactively Analyze Graph Data 2-3 2.2.1 Quick Start: Create and Query a Graph in the Database, Load into Graph Server (PGX) for .

10 tips och tricks för att lyckas med ert sap-projekt 20 SAPSANYTT 2/2015 De flesta projektledare känner säkert till Cobb’s paradox. Martin Cobb verkade som CIO för sekretariatet för Treasury Board of Canada 1995 då han ställde frågan

service i Norge och Finland drivs inom ramen för ett enskilt företag (NRK. 1 och Yleisradio), fin ns det i Sverige tre: Ett för tv (Sveriges Television , SVT ), ett för radio (Sveriges Radio , SR ) och ett för utbildnings program (Sveriges Utbildningsradio, UR, vilket till följd av sin begränsade storlek inte återfinns bland de 25 största

Kindergarten Writing Curriculum Pacing Guide Content Area: Writing-Language Arts Grade Level: Kindergarten Building a Talking Community: Oral Language September Unit 1: Launch Writing October-November Unit 2: Writers are Readers December-January Unit 3: How-To Books February-March Unit 4: Persuasive Writing April-June