SlideShare a Scribd company logo
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Analyzing Blockchain and Bitcoin
Transaction Data as Graph
Oracle Code | 2018-06-12 | Funkhaus Berlin
Karin Patenge |  karin.patenge@oracle.com
Business Development Manager Technology
Oracle Deutschland B.V. & Co. KG
Hans Viehmann |  hans.viehmann@oracle.com
Product Manager Spatial and Graph Technologies
Oracle Corporation
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
• This presentation is based on the works of:
• Zhe (Alan) Wu
• Architect for Graph and Semantic
Technologies @ Oracle Corporation
• Email: alan.wu@oracle.com
Acknowledgement
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Agenda
• Modeling of Bitcoin Transactions
• Questions of Interest
• Data Processing Workflow
• Summary
• Q&A
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Setting the Scene: Analyze Bitcoin Transaction Data
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Setting the Scene: Interesting Patterns in Bitcoin Transaction
Data
@kpatenge @alanzwu @SpatialHannes
Source: http://blockchain.info
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
What does a Bitcoin Transaction look like?
• A transaction has input(s) and output(s)
– An input comes from an output of a(nother) transaction
TX hash: 6f7cf9580f1c2dfb3c4d5d043cdbb128c640e3f20161245aa7372e9666168516
TX outputSum : 10000000000
-- TX Input from: ff3dc8b461305acc5900d31602f2dafebfc406e5b050b14a352294f0965e0bf6:0
-- TX Input from: 2db69558056d0132d9848851fd20329be9cd590fa5ae2b3c55f58931f42e27f7:0
-- TX Output value: 10000000000
-- TX Output scriPubAddr: 12higDjoCCNXSA95xZMWUdPvXNmkAduhWv
Note: 1,000,000 is 0.01 BTC
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
What does a Bitcoin Transaction look like?
• A transaction has input(s) and output(s)
–An input comes from an output of a(nother) transaction
TX9
TX1
TX8
TX3
Addr X
Addr K
Addr L
Addr Y
Addr Z
$
$
$
$ $
$
$
$
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
What does a Graph look like?
• A graph has vertices (entities), edges (relationships), and properties
–Also known as linked data
TX9
TX1
TX8
TX3
Addr X
Addr K
Addr L
Addr Y
Addr Z
$
$
$
$ $
$
$
$
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
• Model 1
– Vertices: Transaction, Address
– Edges: Transaction references
(TX  TX, TX  Addr)
• Model 2
– Vertices: Transaction, Address
– Edges: Transaction‘s indirect
reference to Address
(Addr  TX  Addr)
• Model 3
– Vertices: Address
– Edges: Address to Address
payment (Addr  Addr)
Modeling Bitcoin Transactions as a Graph
TX
9
TX
1
TX
8
TX
3
Addr
X
Addr
K
Addr
L
Addr
Y
Addr
Z
$
$
$
$ $
$
$
$
TX
9
TX
1
TX
8
TX
3
Addr
X
Addr
K
Addr
L
Addr
Y
Addr
Z
$
$
$
$ $
$
$
$
TX
9
TX
1
TX
8
TX
3
Addr
X
Addr
K
Addr
L
Addr
Y
Addr
Z
$
$
$
$ $
$
$
$
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
• Graph Model 3
–What is Addr X´s contribution to
Addr K?
– Given an input address i, output
address o
-> Contribution of i to o is:
Bitcoin Transactions as a Graph: Money Flow
TX9
TX1
TX8
TX3
Addr X
Addr K
Addr L
Addr Y
Addr Z
$
$
$
$
$
$
$
$
o
i i
i
Amount
Amount
Amount
•

@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Functions of a Graph Database
Bitcoin Transactions as a Graph: Workflow
Graph
Generation
& Loading
Data
Preparation
Graph
Querying &
Analysis
Graph
Visualization
Retrieving
& Parsing
Data
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Modeling Data as Graphs
The more connected the data is, the better a Graph fits
Oracle NoSQL DB with Big Data Spatial and GraphGraphic source: http://www.ateam-oracle.com/intro-to-graphs-at-oracle/
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
• A set of nodes (aka vertices)
– each vertex has a unique identifier
– each vertex has a set of in/out edges
– each vertex has a collection of key-value
properties
• A set of edges
– each edge has a unique identifier
– each edge has a head/tail vertex
– each edge has a label denoting type of
relationship between two vertices
– each edge has a collection of key-value properties
• Blueprints Java APIs
• Implementations
– Oracle (Spatial and Graph, Big Data Spatial and
Graph), Neo4j, DataStax (Titan), InfiniteGraph,
Dex, Sail, MongoDB, …
What is a Property Graph?
https://github.com/tinkerpop/blueprints/wiki/Property-Graph-Model
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Property Graph Support
Graph Data Access Layer (DAL)
Graph Analytics
Blueprints & Lucene/SolrCloud RDF (RDF/XML, N-
Triples, N-Quads,
TriG,N3,JSON)
REST/Web
Service/Notebooks
Java,Groovy,Python,…
Java APIs
Java APIs/JDBC/SQL/PLSQL
Property Graph
formats
GraphML
GML
GraphSON
Flat FilesScalable and Persistent Storage Management
Parallel In-Memory Graph
Analytics (PGX) /
Graph Querying (PGQL)
Oracle NoSQL
Database
Oracle RDBMS Apache HBase
Apache
Spark
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Demo Environment
• Available for free:
Oracle Big Data Lite VM 4.11 running in Oracle VirtualBox
– Oracle NoSQL Database (kvlite: unclustered -> 1 node, no replication)
– Big Data Spatial and Graph (BDSG) 2.4
http://www.oracle.com/technetwork/database/bigdata-appliance/oracle-bigdatalite-2104726.html
• Property Graph Analytics Engine (PGX), Property Graph Query Language (PGQL)
• Gremlin, Apache Groovy (Shell)
• Zeppelin Notebook with PGX Interpreter
– Property Graph Format
• Oracle Flat Files
– Cytoscape 3.6.0
• Big Data Spatial and Graph 2.4 support installed
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Definition Bitcoin transaction data sample
[oracle@bigdatalite data]$ head –n 5 btc.opv
1,bt_addr,1,1111111111111111111114oLvT2,,
2,bt_addr,1,11126yHiXjavR3oNVwV2GRNso2ah4MnZtm,,
3,bt_addr,1,11128BtJwtyW4q9eRe3zts6BB4jg4uKLv8,,
4,bt_addr,1,111HnjYiCubyhPjtmZ7jEQjYcYBpKZHvJ,,
5,bt_addr,1,111KHWctzJ8tsTbittCDVzmTHVjxQR2g4,,
[oracle@bigdatalite data]$
Oracle Flat File Format: Vertices
Field # Name Description
1 vertex_ID An integer that uniquely identifies the
vertex
2 key_name The name of the key in the key-value pair
3 value_type 1=String, 2=Integer, 3=Float, ...
4 value The encoded, non-null value of key_name
when it is neither numeric nor date
5 value The encoded, non-null value of key_name
when it is numeric
6 value The encoded, nonnull value of key_name
when it is a timestamp (date)
Source: http://blockchain.info
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Definition Bitcoin transaction data sample
[oracle@bigdatalite data]$ head –n 5 btc.ope
1,317335,91594,contrib,trans_hash,1,4391b11d991e7c9ad4
f9a1a5a7ea9ed7f234643b0c883f49511e1394a5ab8ff5,,
1,317335,91594,contrib,amount,3,,5.0E9,
2,357443,91594,contrib,trans_hash,1,4391b11d991e7c9ad4
f9a1a5a7ea9ed7f234643b0c883f49511e1394a5ab8ff5,,
2,357443,91594,contrib,amount,3,,5.0E9,
3,352850,91594,contrib,trans_hash,1,4391b11d991e7c9ad4
f9a1a5a7ea9ed7f234643b0c883f49511e1394a5ab8ff5,,
3,352850,91594,contrib,amount,3,,5.0E9,
4,308829,91594,contrib,trans_hash,1,4391b11d991e7c9ad4
f9a1a5a7ea9ed7f234643b0c883f49511e1394a5ab8ff5,,
4,308829,91594,contrib,amount,3,,5.0E9,
5,314511,11714,contrib,trans_hash,1,2e8250e9f3f8043cda
d60f747982275fee2a1836ebb48b2f620d03371be8e3f6,,
5,314511,11714,contrib,amount,3,,5.0E9,
[oracle@bigdatalite data]$
Oracle Flat File Format: Edges
Field # Name Description
1 edge_ID An integer that uniquely identifies the edge
2 source_vertex_ID The vertex_ID of the outgoing tail of the edge
3 dest_vertex_ID The vertex_ID of the incoming head of the edge
4 edge_label The encoded label of the edge, which describes the
relationship between the two vertices
5 key_name The encoded name of the key in a KV pair
6 value_type 1=String, 2=Integer, 3=Double, ...
7 value The encoded, nonnull value of key_name when it is
neither numeric nor timestamp (date)
8 value The encoded, nonnull value of key_name when it is
numeric
9 value The encoded, nonnull value of key_name when it is
a timestamp (date)
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Graph Generation and Loading using Vertices & Edges files
// Start Groovy Shell connecting to Oracle NoSQL DB
cd /opt/oracle/oracle-spatial-
graph/property_graph/dal/groovy
./gremlin-opg-nosql.sh
server = new ArrayList();
server.add("bigdatalite.localdomain:5000");
// Create a graph config with graph name "btc"
// Name of key-value store is "kvstore"
// Make sure to add all vertex/edge properties needed
cfg = GraphConfigBuilder.forPropertyGraphNosql() 
.setName("btc") 
.setStoreName("kvstore") 
.setHosts(server) 
.addVertexProperty("bt_addr", PropertyType.STRING, "NA") 
.addEdgeProperty("amount", PropertyType.FLOAT, 1.0f) 
.hasEdgeLabel(true) 
.setLoadEdgeLabel(true) 
.setMaxNumConnections(2) 
.build();
// Create an instance of the graph
opg = OraclePropertyGraph.getInstance(cfg);
opg.getKVStoreConfig();
// Prepare for data load
opg.setClearTableDOP(2);
opg.clearRepository();
// Create an instance for the graph data loader
opgdl=OraclePropertyGraphDataLoader.getInstance();
// Flat files with vertices & edges of Bitcoin txs
vfile="/home/oracle/Documents/BTC/data/btc.opv";
efile="/home/oracle/Documents/BTC/data/btc.ope
// Load data into the graph
opgdl.loadData(opg, vfile, efile, 2);
// Do some checks
// Count vertices and edges
opg.countVertices();
opg.countEdges();
// Get vertices and edges
opg.getVertices();
opg.getEdges();
...
// Shut down instance and close shell
opg.shutdown();
:q
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
PGX – Graph Analytics Engine
• Toolkit for In-Memory, Parallel Graph
Analysis containing
– PGX shell
– Analyst API with a large collection of built-in
Graph algorithms
– and more
• Developed by Oracle Labs
– http://www.oracle.com/technetwork/oracle-
labs/parallel-graph-analytix/overview/index.html
– https://event.cwi.nl/grades/2018/07-VanRest.pdf
– https://docs.oracle.com/cd/E56133_01/latest/tutorials
/index.html
PGQL – Property Graph Query Language
• SQL-like Graph Pattern Matching
– WHERE clause set of comma-separated
constraints
• Developed by Oracle Labs
– http://pgql-lang.org/
• Proposed for standardization
Graph Querying and Analysis
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Analyze Bitcoin Transaction Data using PGX
• Start PGX server
/opt/oracle/oracle-spatial-
graph/property_graph/pgx/bin/start-server
• Start / Return to Groovy Shell
// Create in-memory analyst session
session=Pgx.createSession("session_ID_1");
analyst=session.createAnalyst();
// Read the graph from Oracle NoSQL DB into memory
pgxGraph =
session.readGraphWithProperties(opg.getConfig());
// Working with In-Memory Analyst
// Execute Page Rank
rank=analyst.pagerank(pgxGraph, 0.0001, 0.85, 100);
// Get top 10 vertices
rank.getTopKValues(10);
// BetweenNess Centrality
bc=analyst.vertexBetweennessCentrality(pgxGraph);
// Get top 10 vertices
bc.getTopKValues(10);
...
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Analyze Bitcoin Transaction Data using PGX
Using Zeppelin Notebook with PGX Interpreter
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
• Topology constraints
▪ (n)–[e]–>(m)
▪ (n)–[e1]–>(m1), (n)–[e2]–>(m2)
▪ (n1)-[e1]->(n2)-[e2]->(n3)-[e3]->(n4)
▪ (n1)-[e1]->(n2)<-[e2]-(n3)
• Label matching
▪ (x:Person) -[e:likes]-> (y:Person)
▪ (:Person) -[:likes]-> (:Person)
▪ (x:Student|Professor) -[e:likes|knows]->
(y:Student|Professor)
• Value constraints
▪ (x) -> (y), x.name = 'John’, y.age > 25
• In-Line constraints
▪ (n WITH name = 'John' OR name = 'James', type =
'Person') -[e WITH type = 'workAt', workHours <
40]-> ()
• …
Syntax form Examples
Basic form (n)-[e]->(m)
Omit variable name of the source
vertex
()-[e]->(m)
Omit variable name of the destination
vertex
(n)-[e]->()
Omit variable names in both vertices ()-[e]->()
Omit variable name in edge (n)-->(m)
Omit variable name in edge
(alternative, one dash)
(n)->(m)
Querying Property Graph Data using PGQL
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Query Bitcoin Transaction Data using PGQL
// Some PGQL queries
// Explore relationships in the graph
pgxResultSet = pgxGraph.queryPgql("SELECT e.label(),
count(*) WHERE (n) -[e]-> (m) GROUP BY e.label() ORDER BY
count(*) DESC");
pgxResultSet.print();
// Find top most collaborative Bitcoin addresses
pgxResultSet = pgxGraph.queryPgql("SELECT n, count(*) WHERE
(n) -[e:contrib]-> (m) GROUP BY n ORDER BY count(*) DESC
LIMIT 10");
pgxResultSet.print(3);
// Find top least collaborative Bitcoin addresses
pgxResultSet = pgxGraph.queryPgql("SELECT n, count(*) WHERE
(n) -[e:contrib]-> (m) GROUP BY n ORDER BY count(*) ASC");
pgxResultSet.print(3);
// InDegree count
pgxResultSet = pgxGraph.queryPgql("SELECT y.id(),
y.bt_addr, x.inDegree() WHERE (x) -> (y), x.inDegree() >
1000 ORDER BY x.inDegree() DESC");
pgxResultSet.print(3);
...
https://blogs.oracle.com/bigdataspatialgraph/how-many-ways-to-run-property-graph-query-language-pgql-in-bdsg-i
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Query Bitcoin Transaction Data using PGQL
Using Zeppelin Notebook with PGX Interpreter
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Visualize Bitcoin Transaction Data using Cytoscape
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Pattern Analysis 01
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Pattern Analysis 02: Addresses with incoming TX´s only
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Pattern Analysis 03: Degree of Centrality
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Summary
• Graph databases are powerful tools, complementing relational databases
– Especially strong for analysis of graph topology and connectedness
• Graph analytics offer new insight
– Especially relationships, dependencies and behavioural patterns
• Oracle Property Graph technology offers
– Comprehensive analytics through various APIs, integration with relational database
– Scaleable, parallel in-memory processing
– Secure and scaleable graph storage using Oracle NoSQL, HBase or Oracle Database
• Available both on-premise or in the Cloud
Graph capabilities in Oracle Big Data Spatial and Graph
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Property Graph running in the Oracle Cloud
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
Rich set of built-in parallel graph
algorithms
… and parallel graph mutation
operations
Additional Information: PGX - Built-in Package
@kpatenge @alanzwu @SpatialHannes
Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |
• Getting Started – Creating a Property Graph on
Oracle Database by Arthur Dayton (Vlamis
Software Solutions)
https://blogs.oracle.com/oraclespatial/getting-
started-creating-a-property-graph-on-oracle-
database
• Improve your Meetup Experience using Graph
Analytics by Karin Patenge (Oracle)
https://de.slideshare.net/kpatenge
• Big Data Spatial and Graph In-Memory Analyst
Java API:
https://docs.oracle.com/bigdata/bda411/PGXJV/toc.h
tm
• Oracle Big Data Spatial and Graph on
Oracle.com: www.oracle.com/database/big-data-
spatial-and-graph
• OTN product page (white papers, software
downloads, documentation, tutorials):
www.oracle.com/technetwork/database/database-
technologies/bigdata-spatialandgraph
• Oracle Big Data Lite Virtual Machine - a free
sandbox to get started:
www.oracle.com/technetwork/database/bigdata-
appliance/oracle-bigdatalite-2104726.html
• Hands On Lab for Big Data Spatial:
tinyurl.com/BDSG-HOL
• Blog – Examples, Tips & Tricks:
blogs.oracle.com/bigdataspatialgraph
Resources on Oracle‘s Property Graph Support
@kpatenge @alanzwu @SpatialHannes

More Related Content

What's hot

Neo4j-Databridge: Enterprise-scale ETL for Neo4j
Neo4j-Databridge: Enterprise-scale ETL for Neo4jNeo4j-Databridge: Enterprise-scale ETL for Neo4j
Neo4j-Databridge: Enterprise-scale ETL for Neo4j
GraphAware
 
Transforming AI with Graphs: Real World Examples using Spark and Neo4j
Transforming AI with Graphs: Real World Examples using Spark and Neo4jTransforming AI with Graphs: Real World Examples using Spark and Neo4j
Transforming AI with Graphs: Real World Examples using Spark and Neo4j
Fred Madrid
 
Introduction to Property Graph Features (AskTOM Office Hours part 1)
Introduction to Property Graph Features (AskTOM Office Hours part 1) Introduction to Property Graph Features (AskTOM Office Hours part 1)
Introduction to Property Graph Features (AskTOM Office Hours part 1)
Jean Ihm
 
GraphX: Graph analytics for insights about developer communities
GraphX: Graph analytics for insights about developer communitiesGraphX: Graph analytics for insights about developer communities
GraphX: Graph analytics for insights about developer communities
Paco Nathan
 
Apache Spark GraphX & GraphFrame Synthetic ID Fraud Use Case
Apache Spark GraphX & GraphFrame Synthetic ID Fraud Use CaseApache Spark GraphX & GraphFrame Synthetic ID Fraud Use Case
Apache Spark GraphX & GraphFrame Synthetic ID Fraud Use Case
Mo Patel
 
Graphs are everywhere! Distributed graph computing with Spark GraphX
Graphs are everywhere! Distributed graph computing with Spark GraphXGraphs are everywhere! Distributed graph computing with Spark GraphX
Graphs are everywhere! Distributed graph computing with Spark GraphX
Andrea Iacono
 
Graph Gurus Episode 4: Detecting Fraud and Money Laudering in Real-Time Part 2
Graph Gurus Episode 4: Detecting Fraud and Money Laudering in Real-Time Part 2Graph Gurus Episode 4: Detecting Fraud and Money Laudering in Real-Time Part 2
Graph Gurus Episode 4: Detecting Fraud and Money Laudering in Real-Time Part 2
TigerGraph
 
An Introduction to Graph: Database, Analytics, and Cloud Services
An Introduction to Graph:  Database, Analytics, and Cloud ServicesAn Introduction to Graph:  Database, Analytics, and Cloud Services
An Introduction to Graph: Database, Analytics, and Cloud Services
Jean Ihm
 
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
TigerGraph
 
ScalaTo July 2019 - No more struggles with Apache Spark workloads in production
ScalaTo July 2019 - No more struggles with Apache Spark workloads in productionScalaTo July 2019 - No more struggles with Apache Spark workloads in production
ScalaTo July 2019 - No more struggles with Apache Spark workloads in production
Chetan Khatri
 
No REST till Production – Building and Deploying 9 Models to Production in 3 ...
No REST till Production – Building and Deploying 9 Models to Production in 3 ...No REST till Production – Building and Deploying 9 Models to Production in 3 ...
No REST till Production – Building and Deploying 9 Models to Production in 3 ...
Databricks
 
An Introduction to Spark with Scala
An Introduction to Spark with ScalaAn Introduction to Spark with Scala
An Introduction to Spark with Scala
Chetan Khatri
 
Plume - A Code Property Graph Extraction and Analysis Library
Plume - A Code Property Graph Extraction and Analysis LibraryPlume - A Code Property Graph Extraction and Analysis Library
Plume - A Code Property Graph Extraction and Analysis Library
TigerGraph
 
Graph Databases and Machine Learning | November 2018
Graph Databases and Machine Learning | November 2018Graph Databases and Machine Learning | November 2018
Graph Databases and Machine Learning | November 2018
TigerGraph
 
Real-Time Fraud Detection at Scale—Integrating Real-Time Deep-Link Graph Anal...
Real-Time Fraud Detection at Scale—Integrating Real-Time Deep-Link Graph Anal...Real-Time Fraud Detection at Scale—Integrating Real-Time Deep-Link Graph Anal...
Real-Time Fraud Detection at Scale—Integrating Real-Time Deep-Link Graph Anal...
Databricks
 
Graph Analytics: Graph Algorithms Inside Neo4j
Graph Analytics: Graph Algorithms Inside Neo4jGraph Analytics: Graph Algorithms Inside Neo4j
Graph Analytics: Graph Algorithms Inside Neo4j
Neo4j
 
Oracle Spatial Studio: Fast and Easy Spatial Analytics and Maps
Oracle Spatial Studio:  Fast and Easy Spatial Analytics and MapsOracle Spatial Studio:  Fast and Easy Spatial Analytics and Maps
Oracle Spatial Studio: Fast and Easy Spatial Analytics and Maps
Jean Ihm
 
Massively Scalable Computational Finance with SciDB
 Massively Scalable Computational Finance with SciDB Massively Scalable Computational Finance with SciDB
Massively Scalable Computational Finance with SciDB
Paradigm4Inc
 
PGQL: A Language for Graphs
PGQL: A Language for GraphsPGQL: A Language for Graphs
PGQL: A Language for Graphs
Jean Ihm
 
GraphGen: Conducting Graph Analytics over Relational Databases
GraphGen: Conducting Graph Analytics over Relational DatabasesGraphGen: Conducting Graph Analytics over Relational Databases
GraphGen: Conducting Graph Analytics over Relational Databases
Konstantinos Xirogiannopoulos
 

What's hot (20)

Neo4j-Databridge: Enterprise-scale ETL for Neo4j
Neo4j-Databridge: Enterprise-scale ETL for Neo4jNeo4j-Databridge: Enterprise-scale ETL for Neo4j
Neo4j-Databridge: Enterprise-scale ETL for Neo4j
 
Transforming AI with Graphs: Real World Examples using Spark and Neo4j
Transforming AI with Graphs: Real World Examples using Spark and Neo4jTransforming AI with Graphs: Real World Examples using Spark and Neo4j
Transforming AI with Graphs: Real World Examples using Spark and Neo4j
 
Introduction to Property Graph Features (AskTOM Office Hours part 1)
Introduction to Property Graph Features (AskTOM Office Hours part 1) Introduction to Property Graph Features (AskTOM Office Hours part 1)
Introduction to Property Graph Features (AskTOM Office Hours part 1)
 
GraphX: Graph analytics for insights about developer communities
GraphX: Graph analytics for insights about developer communitiesGraphX: Graph analytics for insights about developer communities
GraphX: Graph analytics for insights about developer communities
 
Apache Spark GraphX & GraphFrame Synthetic ID Fraud Use Case
Apache Spark GraphX & GraphFrame Synthetic ID Fraud Use CaseApache Spark GraphX & GraphFrame Synthetic ID Fraud Use Case
Apache Spark GraphX & GraphFrame Synthetic ID Fraud Use Case
 
Graphs are everywhere! Distributed graph computing with Spark GraphX
Graphs are everywhere! Distributed graph computing with Spark GraphXGraphs are everywhere! Distributed graph computing with Spark GraphX
Graphs are everywhere! Distributed graph computing with Spark GraphX
 
Graph Gurus Episode 4: Detecting Fraud and Money Laudering in Real-Time Part 2
Graph Gurus Episode 4: Detecting Fraud and Money Laudering in Real-Time Part 2Graph Gurus Episode 4: Detecting Fraud and Money Laudering in Real-Time Part 2
Graph Gurus Episode 4: Detecting Fraud and Money Laudering in Real-Time Part 2
 
An Introduction to Graph: Database, Analytics, and Cloud Services
An Introduction to Graph:  Database, Analytics, and Cloud ServicesAn Introduction to Graph:  Database, Analytics, and Cloud Services
An Introduction to Graph: Database, Analytics, and Cloud Services
 
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
Hardware Accelerated Machine Learning Solution for Detecting Fraud and Money ...
 
ScalaTo July 2019 - No more struggles with Apache Spark workloads in production
ScalaTo July 2019 - No more struggles with Apache Spark workloads in productionScalaTo July 2019 - No more struggles with Apache Spark workloads in production
ScalaTo July 2019 - No more struggles with Apache Spark workloads in production
 
No REST till Production – Building and Deploying 9 Models to Production in 3 ...
No REST till Production – Building and Deploying 9 Models to Production in 3 ...No REST till Production – Building and Deploying 9 Models to Production in 3 ...
No REST till Production – Building and Deploying 9 Models to Production in 3 ...
 
An Introduction to Spark with Scala
An Introduction to Spark with ScalaAn Introduction to Spark with Scala
An Introduction to Spark with Scala
 
Plume - A Code Property Graph Extraction and Analysis Library
Plume - A Code Property Graph Extraction and Analysis LibraryPlume - A Code Property Graph Extraction and Analysis Library
Plume - A Code Property Graph Extraction and Analysis Library
 
Graph Databases and Machine Learning | November 2018
Graph Databases and Machine Learning | November 2018Graph Databases and Machine Learning | November 2018
Graph Databases and Machine Learning | November 2018
 
Real-Time Fraud Detection at Scale—Integrating Real-Time Deep-Link Graph Anal...
Real-Time Fraud Detection at Scale—Integrating Real-Time Deep-Link Graph Anal...Real-Time Fraud Detection at Scale—Integrating Real-Time Deep-Link Graph Anal...
Real-Time Fraud Detection at Scale—Integrating Real-Time Deep-Link Graph Anal...
 
Graph Analytics: Graph Algorithms Inside Neo4j
Graph Analytics: Graph Algorithms Inside Neo4jGraph Analytics: Graph Algorithms Inside Neo4j
Graph Analytics: Graph Algorithms Inside Neo4j
 
Oracle Spatial Studio: Fast and Easy Spatial Analytics and Maps
Oracle Spatial Studio:  Fast and Easy Spatial Analytics and MapsOracle Spatial Studio:  Fast and Easy Spatial Analytics and Maps
Oracle Spatial Studio: Fast and Easy Spatial Analytics and Maps
 
Massively Scalable Computational Finance with SciDB
 Massively Scalable Computational Finance with SciDB Massively Scalable Computational Finance with SciDB
Massively Scalable Computational Finance with SciDB
 
PGQL: A Language for Graphs
PGQL: A Language for GraphsPGQL: A Language for Graphs
PGQL: A Language for Graphs
 
GraphGen: Conducting Graph Analytics over Relational Databases
GraphGen: Conducting Graph Analytics over Relational DatabasesGraphGen: Conducting Graph Analytics over Relational Databases
GraphGen: Conducting Graph Analytics over Relational Databases
 

Similar to OracleCode_Berlin_Jun2018_AnalyzeBitcoinTransactionDataUsingAsGraph

20181123 dn2018 graph_analytics_k_patenge
20181123 dn2018 graph_analytics_k_patenge20181123 dn2018 graph_analytics_k_patenge
20181123 dn2018 graph_analytics_k_patenge
Karin Patenge
 
Graph Analytics on Data from Meetup.com
Graph Analytics on Data from Meetup.comGraph Analytics on Data from Meetup.com
Graph Analytics on Data from Meetup.com
Karin Patenge
 
20181019 code.talks graph_analytics_k_patenge
20181019 code.talks graph_analytics_k_patenge20181019 code.talks graph_analytics_k_patenge
20181019 code.talks graph_analytics_k_patenge
Karin Patenge
 
Knowledge Graph for Machine Learning and Data Science
Knowledge Graph for Machine Learning and Data ScienceKnowledge Graph for Machine Learning and Data Science
Knowledge Graph for Machine Learning and Data Science
Cambridge Semantics
 
Graph Analytics in Spark
Graph Analytics in SparkGraph Analytics in Spark
Graph Analytics in Spark
Paco Nathan
 
Continuous Intelligence - Intersecting Event-Based Business Logic and ML
Continuous Intelligence - Intersecting Event-Based Business Logic and MLContinuous Intelligence - Intersecting Event-Based Business Logic and ML
Continuous Intelligence - Intersecting Event-Based Business Logic and ML
Paris Carbone
 
Applying large scale text analytics with graph databases
Applying large scale text analytics with graph databasesApplying large scale text analytics with graph databases
Applying large scale text analytics with graph databases
Data Ninja API
 
Extending Analytics Beyond the Data Warehouse, ft. Warner Bros. Analytics (AN...
Extending Analytics Beyond the Data Warehouse, ft. Warner Bros. Analytics (AN...Extending Analytics Beyond the Data Warehouse, ft. Warner Bros. Analytics (AN...
Extending Analytics Beyond the Data Warehouse, ft. Warner Bros. Analytics (AN...
Amazon Web Services
 
Hadoop application architectures - using Customer 360 as an example
Hadoop application architectures - using Customer 360 as an exampleHadoop application architectures - using Customer 360 as an example
Hadoop application architectures - using Customer 360 as an example
hadooparchbook
 
Multiplaform Solution for Graph Datasources
Multiplaform Solution for Graph DatasourcesMultiplaform Solution for Graph Datasources
Multiplaform Solution for Graph Datasources
Stratio
 
Make your data fly - Building data platform in AWS
Make your data fly - Building data platform in AWSMake your data fly - Building data platform in AWS
Make your data fly - Building data platform in AWS
Kimmo Kantojärvi
 
An Update on Scaling Data Science Applications with SparkR in 2018 with Heiko...
An Update on Scaling Data Science Applications with SparkR in 2018 with Heiko...An Update on Scaling Data Science Applications with SparkR in 2018 with Heiko...
An Update on Scaling Data Science Applications with SparkR in 2018 with Heiko...
Databricks
 
Follow the money with graphs
Follow the money with graphsFollow the money with graphs
Follow the money with graphs
Stanka Dalekova
 
Observability at Expedia
Observability at ExpediaObservability at Expedia
Observability at Expedia
Vinay Sen
 
Scaling graph investigations with Math, GPUs, & Experts
Scaling graph investigations with Math, GPUs, & ExpertsScaling graph investigations with Math, GPUs, & Experts
Scaling graph investigations with Math, GPUs, & Experts
graphistry
 
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
Jean Ihm
 
Architecting next generation big data platform
Architecting next generation big data platformArchitecting next generation big data platform
Architecting next generation big data platform
hadooparchbook
 
Nodes2020 | Graph of enterprise_metadata | NEO4J Conference
Nodes2020 | Graph of enterprise_metadata | NEO4J ConferenceNodes2020 | Graph of enterprise_metadata | NEO4J Conference
Nodes2020 | Graph of enterprise_metadata | NEO4J Conference
Deepak Chandramouli
 
Delta Lake OSS: Create reliable and performant Data Lake by Quentin Ambard
Delta Lake OSS: Create reliable and performant Data Lake by Quentin AmbardDelta Lake OSS: Create reliable and performant Data Lake by Quentin Ambard
Delta Lake OSS: Create reliable and performant Data Lake by Quentin Ambard
Paris Data Engineers !
 
Architecting a next generation data platform
Architecting a next generation data platformArchitecting a next generation data platform
Architecting a next generation data platform
hadooparchbook
 

Similar to OracleCode_Berlin_Jun2018_AnalyzeBitcoinTransactionDataUsingAsGraph (20)

20181123 dn2018 graph_analytics_k_patenge
20181123 dn2018 graph_analytics_k_patenge20181123 dn2018 graph_analytics_k_patenge
20181123 dn2018 graph_analytics_k_patenge
 
Graph Analytics on Data from Meetup.com
Graph Analytics on Data from Meetup.comGraph Analytics on Data from Meetup.com
Graph Analytics on Data from Meetup.com
 
20181019 code.talks graph_analytics_k_patenge
20181019 code.talks graph_analytics_k_patenge20181019 code.talks graph_analytics_k_patenge
20181019 code.talks graph_analytics_k_patenge
 
Knowledge Graph for Machine Learning and Data Science
Knowledge Graph for Machine Learning and Data ScienceKnowledge Graph for Machine Learning and Data Science
Knowledge Graph for Machine Learning and Data Science
 
Graph Analytics in Spark
Graph Analytics in SparkGraph Analytics in Spark
Graph Analytics in Spark
 
Continuous Intelligence - Intersecting Event-Based Business Logic and ML
Continuous Intelligence - Intersecting Event-Based Business Logic and MLContinuous Intelligence - Intersecting Event-Based Business Logic and ML
Continuous Intelligence - Intersecting Event-Based Business Logic and ML
 
Applying large scale text analytics with graph databases
Applying large scale text analytics with graph databasesApplying large scale text analytics with graph databases
Applying large scale text analytics with graph databases
 
Extending Analytics Beyond the Data Warehouse, ft. Warner Bros. Analytics (AN...
Extending Analytics Beyond the Data Warehouse, ft. Warner Bros. Analytics (AN...Extending Analytics Beyond the Data Warehouse, ft. Warner Bros. Analytics (AN...
Extending Analytics Beyond the Data Warehouse, ft. Warner Bros. Analytics (AN...
 
Hadoop application architectures - using Customer 360 as an example
Hadoop application architectures - using Customer 360 as an exampleHadoop application architectures - using Customer 360 as an example
Hadoop application architectures - using Customer 360 as an example
 
Multiplaform Solution for Graph Datasources
Multiplaform Solution for Graph DatasourcesMultiplaform Solution for Graph Datasources
Multiplaform Solution for Graph Datasources
 
Make your data fly - Building data platform in AWS
Make your data fly - Building data platform in AWSMake your data fly - Building data platform in AWS
Make your data fly - Building data platform in AWS
 
An Update on Scaling Data Science Applications with SparkR in 2018 with Heiko...
An Update on Scaling Data Science Applications with SparkR in 2018 with Heiko...An Update on Scaling Data Science Applications with SparkR in 2018 with Heiko...
An Update on Scaling Data Science Applications with SparkR in 2018 with Heiko...
 
Follow the money with graphs
Follow the money with graphsFollow the money with graphs
Follow the money with graphs
 
Observability at Expedia
Observability at ExpediaObservability at Expedia
Observability at Expedia
 
Scaling graph investigations with Math, GPUs, & Experts
Scaling graph investigations with Math, GPUs, & ExpertsScaling graph investigations with Math, GPUs, & Experts
Scaling graph investigations with Math, GPUs, & Experts
 
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
How To Model and Construct Graphs with Oracle Database (AskTOM Office Hours p...
 
Architecting next generation big data platform
Architecting next generation big data platformArchitecting next generation big data platform
Architecting next generation big data platform
 
Nodes2020 | Graph of enterprise_metadata | NEO4J Conference
Nodes2020 | Graph of enterprise_metadata | NEO4J ConferenceNodes2020 | Graph of enterprise_metadata | NEO4J Conference
Nodes2020 | Graph of enterprise_metadata | NEO4J Conference
 
Delta Lake OSS: Create reliable and performant Data Lake by Quentin Ambard
Delta Lake OSS: Create reliable and performant Data Lake by Quentin AmbardDelta Lake OSS: Create reliable and performant Data Lake by Quentin Ambard
Delta Lake OSS: Create reliable and performant Data Lake by Quentin Ambard
 
Architecting a next generation data platform
Architecting a next generation data platformArchitecting a next generation data platform
Architecting a next generation data platform
 

More from Karin Patenge

20190704_AGIT_Georaster_ImageryData_KPatenge
20190704_AGIT_Georaster_ImageryData_KPatenge20190704_AGIT_Georaster_ImageryData_KPatenge
20190704_AGIT_Georaster_ImageryData_KPatenge
Karin Patenge
 
20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge
20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge
20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge
Karin Patenge
 
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
Karin Patenge
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Karin Patenge
 
20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge
Karin Patenge
 
20181120_DOAG_OracleNoSQLDB_KPatenge
20181120_DOAG_OracleNoSQLDB_KPatenge20181120_DOAG_OracleNoSQLDB_KPatenge
20181120_DOAG_OracleNoSQLDB_KPatenge
Karin Patenge
 
20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatenge
20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatenge20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatenge
20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatenge
Karin Patenge
 
5 Gründe für Oracle Spatial Technologies
5 Gründe für Oracle Spatial Technologies5 Gründe für Oracle Spatial Technologies
5 Gründe für Oracle Spatial Technologies
Karin Patenge
 
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
Karin Patenge
 
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge
Karin Patenge
 
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
Karin Patenge
 
Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12
Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12
Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12
Karin Patenge
 
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
Karin Patenge
 
20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge
Karin Patenge
 
Datenbank-gestützte Validierung und Geokodierung von Adressdatenbeständen
Datenbank-gestützte Validierung und Geokodierung von AdressdatenbeständenDatenbank-gestützte Validierung und Geokodierung von Adressdatenbeständen
Datenbank-gestützte Validierung und Geokodierung von Adressdatenbeständen
Karin Patenge
 
Raster Algebra mit Oracle Spatial und uDig
Raster Algebra mit Oracle Spatial und uDigRaster Algebra mit Oracle Spatial und uDig
Raster Algebra mit Oracle Spatial und uDig
Karin Patenge
 
Geodatenmanagement und -Visualisierung mit Oracle Spatial Technologies
Geodatenmanagement und -Visualisierung mit Oracle Spatial TechnologiesGeodatenmanagement und -Visualisierung mit Oracle Spatial Technologies
Geodatenmanagement und -Visualisierung mit Oracle Spatial Technologies
Karin Patenge
 

More from Karin Patenge (17)

20190704_AGIT_Georaster_ImageryData_KPatenge
20190704_AGIT_Georaster_ImageryData_KPatenge20190704_AGIT_Georaster_ImageryData_KPatenge
20190704_AGIT_Georaster_ImageryData_KPatenge
 
20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge
20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge
20190703_AGIT_GeoRasterWorkshop_GriddedData_KPatenge
 
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
20190604_DOAGDatabase2019_OracleNoSQLDB_for_DBAs
 
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im ÜberblickBig Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
Big Data Community Webinar vom 16. Mai 2019: Oracle NoSQL DB im Überblick
 
20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge20181210_ITTage2018_OracleNoSQLDB_KPatenge
20181210_ITTage2018_OracleNoSQLDB_KPatenge
 
20181120_DOAG_OracleNoSQLDB_KPatenge
20181120_DOAG_OracleNoSQLDB_KPatenge20181120_DOAG_OracleNoSQLDB_KPatenge
20181120_DOAG_OracleNoSQLDB_KPatenge
 
20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatenge
20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatenge20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatenge
20180921_DOAG_BigDataDays_OracleSpatialandPython_kpatenge
 
5 Gründe für Oracle Spatial Technologies
5 Gründe für Oracle Spatial Technologies5 Gründe für Oracle Spatial Technologies
5 Gründe für Oracle Spatial Technologies
 
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
IT-Tage 2017: Visuelle Analyse komplexer Datenbestände am Beispiel der Panama...
 
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge
20171106_OracleWebcast_ITTrends_EFavuzzi_KPatenge
 
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
20171121_DOAGKonferenz_JSON_OracleNoSQL_KPatenge
 
Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12
Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12
Oracle NoSQL Database: Integration in den Oracle Enterprise Manager 12
 
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge20160310_ModernApplicationDevelopment_NoSQL_KPatenge
20160310_ModernApplicationDevelopment_NoSQL_KPatenge
 
20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge20160229_ModernApplicationDevelopment_Python_KPatenge
20160229_ModernApplicationDevelopment_Python_KPatenge
 
Datenbank-gestützte Validierung und Geokodierung von Adressdatenbeständen
Datenbank-gestützte Validierung und Geokodierung von AdressdatenbeständenDatenbank-gestützte Validierung und Geokodierung von Adressdatenbeständen
Datenbank-gestützte Validierung und Geokodierung von Adressdatenbeständen
 
Raster Algebra mit Oracle Spatial und uDig
Raster Algebra mit Oracle Spatial und uDigRaster Algebra mit Oracle Spatial und uDig
Raster Algebra mit Oracle Spatial und uDig
 
Geodatenmanagement und -Visualisierung mit Oracle Spatial Technologies
Geodatenmanagement und -Visualisierung mit Oracle Spatial TechnologiesGeodatenmanagement und -Visualisierung mit Oracle Spatial Technologies
Geodatenmanagement und -Visualisierung mit Oracle Spatial Technologies
 

Recently uploaded

Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
Zilliz
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 

Recently uploaded (20)

Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Full-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalizationFull-RAG: A modern architecture for hyper-personalization
Full-RAG: A modern architecture for hyper-personalization
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 

OracleCode_Berlin_Jun2018_AnalyzeBitcoinTransactionDataUsingAsGraph

  • 1. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Analyzing Blockchain and Bitcoin Transaction Data as Graph Oracle Code | 2018-06-12 | Funkhaus Berlin Karin Patenge |  karin.patenge@oracle.com Business Development Manager Technology Oracle Deutschland B.V. & Co. KG Hans Viehmann |  hans.viehmann@oracle.com Product Manager Spatial and Graph Technologies Oracle Corporation
  • 2. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | • This presentation is based on the works of: • Zhe (Alan) Wu • Architect for Graph and Semantic Technologies @ Oracle Corporation • Email: alan.wu@oracle.com Acknowledgement @kpatenge @alanzwu @SpatialHannes
  • 3. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Agenda • Modeling of Bitcoin Transactions • Questions of Interest • Data Processing Workflow • Summary • Q&A @kpatenge @alanzwu @SpatialHannes
  • 4. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Setting the Scene: Analyze Bitcoin Transaction Data @kpatenge @alanzwu @SpatialHannes
  • 5. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Setting the Scene: Interesting Patterns in Bitcoin Transaction Data @kpatenge @alanzwu @SpatialHannes Source: http://blockchain.info
  • 6. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | What does a Bitcoin Transaction look like? • A transaction has input(s) and output(s) – An input comes from an output of a(nother) transaction TX hash: 6f7cf9580f1c2dfb3c4d5d043cdbb128c640e3f20161245aa7372e9666168516 TX outputSum : 10000000000 -- TX Input from: ff3dc8b461305acc5900d31602f2dafebfc406e5b050b14a352294f0965e0bf6:0 -- TX Input from: 2db69558056d0132d9848851fd20329be9cd590fa5ae2b3c55f58931f42e27f7:0 -- TX Output value: 10000000000 -- TX Output scriPubAddr: 12higDjoCCNXSA95xZMWUdPvXNmkAduhWv Note: 1,000,000 is 0.01 BTC @kpatenge @alanzwu @SpatialHannes
  • 7. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | What does a Bitcoin Transaction look like? • A transaction has input(s) and output(s) –An input comes from an output of a(nother) transaction TX9 TX1 TX8 TX3 Addr X Addr K Addr L Addr Y Addr Z $ $ $ $ $ $ $ $ @kpatenge @alanzwu @SpatialHannes
  • 8. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | What does a Graph look like? • A graph has vertices (entities), edges (relationships), and properties –Also known as linked data TX9 TX1 TX8 TX3 Addr X Addr K Addr L Addr Y Addr Z $ $ $ $ $ $ $ $ @kpatenge @alanzwu @SpatialHannes
  • 9. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | • Model 1 – Vertices: Transaction, Address – Edges: Transaction references (TX  TX, TX  Addr) • Model 2 – Vertices: Transaction, Address – Edges: Transaction‘s indirect reference to Address (Addr  TX  Addr) • Model 3 – Vertices: Address – Edges: Address to Address payment (Addr  Addr) Modeling Bitcoin Transactions as a Graph TX 9 TX 1 TX 8 TX 3 Addr X Addr K Addr L Addr Y Addr Z $ $ $ $ $ $ $ $ TX 9 TX 1 TX 8 TX 3 Addr X Addr K Addr L Addr Y Addr Z $ $ $ $ $ $ $ $ TX 9 TX 1 TX 8 TX 3 Addr X Addr K Addr L Addr Y Addr Z $ $ $ $ $ $ $ $ @kpatenge @alanzwu @SpatialHannes
  • 10. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | • Graph Model 3 –What is Addr X´s contribution to Addr K? – Given an input address i, output address o -> Contribution of i to o is: Bitcoin Transactions as a Graph: Money Flow TX9 TX1 TX8 TX3 Addr X Addr K Addr L Addr Y Addr Z $ $ $ $ $ $ $ $ o i i i Amount Amount Amount •  @kpatenge @alanzwu @SpatialHannes
  • 11. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Functions of a Graph Database Bitcoin Transactions as a Graph: Workflow Graph Generation & Loading Data Preparation Graph Querying & Analysis Graph Visualization Retrieving & Parsing Data @kpatenge @alanzwu @SpatialHannes
  • 12. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Modeling Data as Graphs The more connected the data is, the better a Graph fits Oracle NoSQL DB with Big Data Spatial and GraphGraphic source: http://www.ateam-oracle.com/intro-to-graphs-at-oracle/ @kpatenge @alanzwu @SpatialHannes
  • 13. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | • A set of nodes (aka vertices) – each vertex has a unique identifier – each vertex has a set of in/out edges – each vertex has a collection of key-value properties • A set of edges – each edge has a unique identifier – each edge has a head/tail vertex – each edge has a label denoting type of relationship between two vertices – each edge has a collection of key-value properties • Blueprints Java APIs • Implementations – Oracle (Spatial and Graph, Big Data Spatial and Graph), Neo4j, DataStax (Titan), InfiniteGraph, Dex, Sail, MongoDB, … What is a Property Graph? https://github.com/tinkerpop/blueprints/wiki/Property-Graph-Model @kpatenge @alanzwu @SpatialHannes
  • 14. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Property Graph Support Graph Data Access Layer (DAL) Graph Analytics Blueprints & Lucene/SolrCloud RDF (RDF/XML, N- Triples, N-Quads, TriG,N3,JSON) REST/Web Service/Notebooks Java,Groovy,Python,… Java APIs Java APIs/JDBC/SQL/PLSQL Property Graph formats GraphML GML GraphSON Flat FilesScalable and Persistent Storage Management Parallel In-Memory Graph Analytics (PGX) / Graph Querying (PGQL) Oracle NoSQL Database Oracle RDBMS Apache HBase Apache Spark @kpatenge @alanzwu @SpatialHannes
  • 15. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Demo Environment • Available for free: Oracle Big Data Lite VM 4.11 running in Oracle VirtualBox – Oracle NoSQL Database (kvlite: unclustered -> 1 node, no replication) – Big Data Spatial and Graph (BDSG) 2.4 http://www.oracle.com/technetwork/database/bigdata-appliance/oracle-bigdatalite-2104726.html • Property Graph Analytics Engine (PGX), Property Graph Query Language (PGQL) • Gremlin, Apache Groovy (Shell) • Zeppelin Notebook with PGX Interpreter – Property Graph Format • Oracle Flat Files – Cytoscape 3.6.0 • Big Data Spatial and Graph 2.4 support installed @kpatenge @alanzwu @SpatialHannes
  • 16. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Definition Bitcoin transaction data sample [oracle@bigdatalite data]$ head –n 5 btc.opv 1,bt_addr,1,1111111111111111111114oLvT2,, 2,bt_addr,1,11126yHiXjavR3oNVwV2GRNso2ah4MnZtm,, 3,bt_addr,1,11128BtJwtyW4q9eRe3zts6BB4jg4uKLv8,, 4,bt_addr,1,111HnjYiCubyhPjtmZ7jEQjYcYBpKZHvJ,, 5,bt_addr,1,111KHWctzJ8tsTbittCDVzmTHVjxQR2g4,, [oracle@bigdatalite data]$ Oracle Flat File Format: Vertices Field # Name Description 1 vertex_ID An integer that uniquely identifies the vertex 2 key_name The name of the key in the key-value pair 3 value_type 1=String, 2=Integer, 3=Float, ... 4 value The encoded, non-null value of key_name when it is neither numeric nor date 5 value The encoded, non-null value of key_name when it is numeric 6 value The encoded, nonnull value of key_name when it is a timestamp (date) Source: http://blockchain.info @kpatenge @alanzwu @SpatialHannes
  • 17. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Definition Bitcoin transaction data sample [oracle@bigdatalite data]$ head –n 5 btc.ope 1,317335,91594,contrib,trans_hash,1,4391b11d991e7c9ad4 f9a1a5a7ea9ed7f234643b0c883f49511e1394a5ab8ff5,, 1,317335,91594,contrib,amount,3,,5.0E9, 2,357443,91594,contrib,trans_hash,1,4391b11d991e7c9ad4 f9a1a5a7ea9ed7f234643b0c883f49511e1394a5ab8ff5,, 2,357443,91594,contrib,amount,3,,5.0E9, 3,352850,91594,contrib,trans_hash,1,4391b11d991e7c9ad4 f9a1a5a7ea9ed7f234643b0c883f49511e1394a5ab8ff5,, 3,352850,91594,contrib,amount,3,,5.0E9, 4,308829,91594,contrib,trans_hash,1,4391b11d991e7c9ad4 f9a1a5a7ea9ed7f234643b0c883f49511e1394a5ab8ff5,, 4,308829,91594,contrib,amount,3,,5.0E9, 5,314511,11714,contrib,trans_hash,1,2e8250e9f3f8043cda d60f747982275fee2a1836ebb48b2f620d03371be8e3f6,, 5,314511,11714,contrib,amount,3,,5.0E9, [oracle@bigdatalite data]$ Oracle Flat File Format: Edges Field # Name Description 1 edge_ID An integer that uniquely identifies the edge 2 source_vertex_ID The vertex_ID of the outgoing tail of the edge 3 dest_vertex_ID The vertex_ID of the incoming head of the edge 4 edge_label The encoded label of the edge, which describes the relationship between the two vertices 5 key_name The encoded name of the key in a KV pair 6 value_type 1=String, 2=Integer, 3=Double, ... 7 value The encoded, nonnull value of key_name when it is neither numeric nor timestamp (date) 8 value The encoded, nonnull value of key_name when it is numeric 9 value The encoded, nonnull value of key_name when it is a timestamp (date) @kpatenge @alanzwu @SpatialHannes
  • 18. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Graph Generation and Loading using Vertices & Edges files // Start Groovy Shell connecting to Oracle NoSQL DB cd /opt/oracle/oracle-spatial- graph/property_graph/dal/groovy ./gremlin-opg-nosql.sh server = new ArrayList(); server.add("bigdatalite.localdomain:5000"); // Create a graph config with graph name "btc" // Name of key-value store is "kvstore" // Make sure to add all vertex/edge properties needed cfg = GraphConfigBuilder.forPropertyGraphNosql() .setName("btc") .setStoreName("kvstore") .setHosts(server) .addVertexProperty("bt_addr", PropertyType.STRING, "NA") .addEdgeProperty("amount", PropertyType.FLOAT, 1.0f) .hasEdgeLabel(true) .setLoadEdgeLabel(true) .setMaxNumConnections(2) .build(); // Create an instance of the graph opg = OraclePropertyGraph.getInstance(cfg); opg.getKVStoreConfig(); // Prepare for data load opg.setClearTableDOP(2); opg.clearRepository(); // Create an instance for the graph data loader opgdl=OraclePropertyGraphDataLoader.getInstance(); // Flat files with vertices & edges of Bitcoin txs vfile="/home/oracle/Documents/BTC/data/btc.opv"; efile="/home/oracle/Documents/BTC/data/btc.ope // Load data into the graph opgdl.loadData(opg, vfile, efile, 2); // Do some checks // Count vertices and edges opg.countVertices(); opg.countEdges(); // Get vertices and edges opg.getVertices(); opg.getEdges(); ... // Shut down instance and close shell opg.shutdown(); :q @kpatenge @alanzwu @SpatialHannes
  • 19. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | PGX – Graph Analytics Engine • Toolkit for In-Memory, Parallel Graph Analysis containing – PGX shell – Analyst API with a large collection of built-in Graph algorithms – and more • Developed by Oracle Labs – http://www.oracle.com/technetwork/oracle- labs/parallel-graph-analytix/overview/index.html – https://event.cwi.nl/grades/2018/07-VanRest.pdf – https://docs.oracle.com/cd/E56133_01/latest/tutorials /index.html PGQL – Property Graph Query Language • SQL-like Graph Pattern Matching – WHERE clause set of comma-separated constraints • Developed by Oracle Labs – http://pgql-lang.org/ • Proposed for standardization Graph Querying and Analysis @kpatenge @alanzwu @SpatialHannes
  • 20. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Analyze Bitcoin Transaction Data using PGX • Start PGX server /opt/oracle/oracle-spatial- graph/property_graph/pgx/bin/start-server • Start / Return to Groovy Shell // Create in-memory analyst session session=Pgx.createSession("session_ID_1"); analyst=session.createAnalyst(); // Read the graph from Oracle NoSQL DB into memory pgxGraph = session.readGraphWithProperties(opg.getConfig()); // Working with In-Memory Analyst // Execute Page Rank rank=analyst.pagerank(pgxGraph, 0.0001, 0.85, 100); // Get top 10 vertices rank.getTopKValues(10); // BetweenNess Centrality bc=analyst.vertexBetweennessCentrality(pgxGraph); // Get top 10 vertices bc.getTopKValues(10); ... @kpatenge @alanzwu @SpatialHannes
  • 21. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Analyze Bitcoin Transaction Data using PGX Using Zeppelin Notebook with PGX Interpreter @kpatenge @alanzwu @SpatialHannes
  • 22. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | • Topology constraints ▪ (n)–[e]–>(m) ▪ (n)–[e1]–>(m1), (n)–[e2]–>(m2) ▪ (n1)-[e1]->(n2)-[e2]->(n3)-[e3]->(n4) ▪ (n1)-[e1]->(n2)<-[e2]-(n3) • Label matching ▪ (x:Person) -[e:likes]-> (y:Person) ▪ (:Person) -[:likes]-> (:Person) ▪ (x:Student|Professor) -[e:likes|knows]-> (y:Student|Professor) • Value constraints ▪ (x) -> (y), x.name = 'John’, y.age > 25 • In-Line constraints ▪ (n WITH name = 'John' OR name = 'James', type = 'Person') -[e WITH type = 'workAt', workHours < 40]-> () • … Syntax form Examples Basic form (n)-[e]->(m) Omit variable name of the source vertex ()-[e]->(m) Omit variable name of the destination vertex (n)-[e]->() Omit variable names in both vertices ()-[e]->() Omit variable name in edge (n)-->(m) Omit variable name in edge (alternative, one dash) (n)->(m) Querying Property Graph Data using PGQL @kpatenge @alanzwu @SpatialHannes
  • 23. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Query Bitcoin Transaction Data using PGQL // Some PGQL queries // Explore relationships in the graph pgxResultSet = pgxGraph.queryPgql("SELECT e.label(), count(*) WHERE (n) -[e]-> (m) GROUP BY e.label() ORDER BY count(*) DESC"); pgxResultSet.print(); // Find top most collaborative Bitcoin addresses pgxResultSet = pgxGraph.queryPgql("SELECT n, count(*) WHERE (n) -[e:contrib]-> (m) GROUP BY n ORDER BY count(*) DESC LIMIT 10"); pgxResultSet.print(3); // Find top least collaborative Bitcoin addresses pgxResultSet = pgxGraph.queryPgql("SELECT n, count(*) WHERE (n) -[e:contrib]-> (m) GROUP BY n ORDER BY count(*) ASC"); pgxResultSet.print(3); // InDegree count pgxResultSet = pgxGraph.queryPgql("SELECT y.id(), y.bt_addr, x.inDegree() WHERE (x) -> (y), x.inDegree() > 1000 ORDER BY x.inDegree() DESC"); pgxResultSet.print(3); ... https://blogs.oracle.com/bigdataspatialgraph/how-many-ways-to-run-property-graph-query-language-pgql-in-bdsg-i @kpatenge @alanzwu @SpatialHannes
  • 24. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Query Bitcoin Transaction Data using PGQL Using Zeppelin Notebook with PGX Interpreter @kpatenge @alanzwu @SpatialHannes
  • 25. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Visualize Bitcoin Transaction Data using Cytoscape @kpatenge @alanzwu @SpatialHannes
  • 26. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Pattern Analysis 01 @kpatenge @alanzwu @SpatialHannes
  • 27. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Pattern Analysis 02: Addresses with incoming TX´s only @kpatenge @alanzwu @SpatialHannes
  • 28. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Pattern Analysis 03: Degree of Centrality @kpatenge @alanzwu @SpatialHannes
  • 29. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Summary • Graph databases are powerful tools, complementing relational databases – Especially strong for analysis of graph topology and connectedness • Graph analytics offer new insight – Especially relationships, dependencies and behavioural patterns • Oracle Property Graph technology offers – Comprehensive analytics through various APIs, integration with relational database – Scaleable, parallel in-memory processing – Secure and scaleable graph storage using Oracle NoSQL, HBase or Oracle Database • Available both on-premise or in the Cloud Graph capabilities in Oracle Big Data Spatial and Graph @kpatenge @alanzwu @SpatialHannes
  • 30. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Property Graph running in the Oracle Cloud @kpatenge @alanzwu @SpatialHannes
  • 31. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. |@kpatenge @alanzwu @SpatialHannes
  • 32. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | Rich set of built-in parallel graph algorithms … and parallel graph mutation operations Additional Information: PGX - Built-in Package @kpatenge @alanzwu @SpatialHannes
  • 33. Copyright © 2018, Oracle and/or its affiliates. All rights reserved. | • Getting Started – Creating a Property Graph on Oracle Database by Arthur Dayton (Vlamis Software Solutions) https://blogs.oracle.com/oraclespatial/getting- started-creating-a-property-graph-on-oracle- database • Improve your Meetup Experience using Graph Analytics by Karin Patenge (Oracle) https://de.slideshare.net/kpatenge • Big Data Spatial and Graph In-Memory Analyst Java API: https://docs.oracle.com/bigdata/bda411/PGXJV/toc.h tm • Oracle Big Data Spatial and Graph on Oracle.com: www.oracle.com/database/big-data- spatial-and-graph • OTN product page (white papers, software downloads, documentation, tutorials): www.oracle.com/technetwork/database/database- technologies/bigdata-spatialandgraph • Oracle Big Data Lite Virtual Machine - a free sandbox to get started: www.oracle.com/technetwork/database/bigdata- appliance/oracle-bigdatalite-2104726.html • Hands On Lab for Big Data Spatial: tinyurl.com/BDSG-HOL • Blog – Examples, Tips & Tricks: blogs.oracle.com/bigdataspatialgraph Resources on Oracle‘s Property Graph Support @kpatenge @alanzwu @SpatialHannes