secure graph.pdf
TRANSCRIPT
-
8/9/2019 Secure Graph.pdf
1/21
Secure GraphJoe FernerAltamira
-
8/9/2019 Secure Graph.pdf
2/21
About Me
Lead software developer for Lumify Author of Secure Graph
-
8/9/2019 Secure Graph.pdf
3/21
What is Secure Graph?
Secure Graph is a graph database API tallows security constraints to be applied
vertices, edges, and properties.
-
8/9/2019 Secure Graph.pdf
4/21
What about existing graph DBs
-
8/9/2019 Secure Graph.pdf
5/21
Neo4j and Titan
Security not built into the API Hard to integrate security
-
8/9/2019 Secure Graph.pdf
6/21
Secure Graph API - Insert
Visibility visA = new Visibility("a");Visibility visAandB = new Visibility("a&b");
Authorizations authA = new AccumuloAuthorizations
graph.prepareVertex("v1", visA, authA)
.setProperty("name", "Joe Ferner", visA)
.setProperty("dateOfBirth", "1977/10/30", visAa
.save();
-
8/9/2019 Secure Graph.pdf
7/21
Secure Graph API - Query
Authorizations authA = new AccumuloAuthorizations("a");
Vertex v1 = graph.getVertex("v1", authA);
// dataOfBirth not returned
Authorizations authAandB = new AccumuloAuthorizations("a
Vertex v1 = graph.getVertex("v1", authAandB);
// dataOfBirth returned
Iterable edges = v1.getEdges(Direction.BOTH, authA
-
8/9/2019 Secure Graph.pdf
8/21
API Demo
-
8/9/2019 Secure Graph.pdf
9/21
Blueprints API
AccumuloGraphgraph =createGraph();
VisibilityProvidervp =new DefaultVisibilityProvider();
config.put(authorizationsProvider.auths , a,b);
AuthorizationsProviderap =newAccumuloAuthorizationsProvider(
com.tinkerpop.blueprints.GraphblueprintsGraph
= newAccumuloSecureGraphBlueprintsGraph(graph,vp,ap);
-
8/9/2019 Secure Graph.pdf
10/21
Blueprints API
-
8/9/2019 Secure Graph.pdf
11/21
Blueprints Dem
-
8/9/2019 Secure Graph.pdf
12/21
Other Features
Multi-valued properties Property Metadata
Streaming Values
Exact match indexing
-
8/9/2019 Secure Graph.pdf
13/21
Current Storage Providers
-
8/9/2019 Secure Graph.pdf
14/21
Accumulo
Distributed key/value store similar to HBwith security.
Row ID Column
Family
Column
Qualifier
Column
Visibility
Timestamp Va
row1 props name a C
row2 props name Jo
row2 props name a Jo
-
8/9/2019 Secure Graph.pdf
15/21
Secure Graph Tables
Vertices Edges
Data
-
8/9/2019 Secure Graph.pdf
16/21
Vertices Table Format
Row ID Column
Family
Column Qualifier Value Description
V[vertex id] V - - Vertex existence
V[vertex id] EOUT [edge id] [label] Out edges
V[vertex id] EIN [edge id] [label] In edges
V[vertex id] VOUT [vertex id] [edge label] Out vertex
V[vertex id] VIN [vertex id] [edge label] In vertex
V[vertex id] PROP [prop name + key] [prop value] Property
V[vertex id] PROPMETA [prop name + key] [prop meta] Property Metada
-
8/9/2019 Secure Graph.pdf
17/21
Edges Table Format
Row ID Column
Family
Column Qualifier Value Description
E[edge id] E - - Edge existence
E[edge id] VOUT [vertex id] - Out vertex
E[edge id] VIN [vertex id] - In vertex
E[edge id] PROP [prop name + key] [prop value] Property
E[edge id] PROPMETA [prop name + key] [prop meta] Property Metada
-
8/9/2019 Secure Graph.pdf
18/21
Data Table Format
Row ID ColumnFamily
ColumnQualifier
Value
V/E[vertex/edge id + prop name + prop key] - - [data]
-
8/9/2019 Secure Graph.pdf
19/21
Large Data Overflow
Data that is larger than the default 10Meoverflowed to HDFS if needed.
-
8/9/2019 Secure Graph.pdf
20/21
Elasticsearch
Data is indexed but not stored in Elastics
We are working on a solution to apply vis
to documents but this is not done yet.
-
8/9/2019 Secure Graph.pdf
21/21
Find out more...
https://github.com/altamiracorp/secure-g