Friday, April 23, 2021

Graph Database sample creation

 


Create Applications and relate them

CREATE (S:Application {id:1, name:'Summit', description:'US TradeCapture System', apptype: 'FO'}),
(A:Application {id:2, name:'Genesis', description:'Financial Datawarehouse', apptype: 'BO'}),
(B:Application {id:3, name:'Intellect', description:'Europe TradeCapture System', apptype: 'BO'}),
(C:Application {id:4, name:'QFXLM',  description:'Product Processor', apptype: 'MO'}),
(D:Application {id:5, name:'Reginside', description:'Reporting Analytics', apptype: 'BO'})
CREATE (S)-[:LOADS]->(A),
(C)-[:LOADS]->(A),
(B)-[:LOADS]->(C),
(A)-[:LOADS]->(D)

Create Report and Source it from Application

CREATE (R:Report {id:1, name:'GLRS Report', description:'Regulator Report'})

Create Report relationship 
MERGE (a:Application{id:5})
WITH a
MATCH (b:Report{id:1})
CREATE  (a)-[:GENERATES]->(b)
RETURN a;

MERGE (a:Application{id:4})
WITH a
MATCH (b:Application{id:2})
CREATE  (a)-[:LOADS]->(b)
RETURN a;

---Extra
Delete Node and Relationship
MATCH p=()-[r:generates]->(n:Report) Delete r,n

MATCH p=(a:Application{id:3})-[:LOADS]->(b:Application{id:3}) Delete r,n
Query all
MATCH p=()-->() RETURN p LIMIT 25





CREATE (S:DataStore {id:1, name:'SummitPRODDatastore'}),
(A:DataStore {id:2, name:'GenesisPRODDatastore'}),
(B:DataStore {id:3, name:'IntellectPRODDatastore'}),
(C:DataStore {id:4, name:'QFXLMPRODDatastore'}),
(D:DataStore {id:5, name:'ReginsidePRODDatastore'})

MERGE (a:Application{id:1})
WITH a
MATCH (b:DataStore{id:1})
CREATE  (a)-[:STORES_IN]->(b)
RETURN a;

MERGE (a:Application{id:2})
WITH a
MATCH (b:DataStore{id:2})
CREATE  (a)-[:STORES_IN]->(b)
RETURN a;

MERGE (a:Application{id:3})
WITH a
MATCH (b:DataStore{id:3})
CREATE  (a)-[:STORES_IN]->(b)
RETURN a;

MERGE (a:Application{id:4})
WITH a
MATCH (b:DataStore{id:4})
CREATE  (a)-[:STORES_IN]->(b)
RETURN a;

MERGE (a:Application{id:5})
WITH a
MATCH (b:DataStore{id:5})
CREATE  (a)-[:STORES_IN]->(b)
RETURN a;


CREATE (S:DataSet {id:1, name:'SummitTradeBlotter'}),
(S2:DataSet {id:2, name:'SummitPCDFeed'}),
(A:DataSet {id:3, name:'DailyTradeTransactionsSnapshot'}),
(B:DataSet {id:4, name:'IntellectTradeBlotter'}),
(C:DataSet {id:5, name:'QFXLMGenesisFeed'}),
(D:DataSet {id:6, name:'ReginsideTradeSummary'})

MERGE (a:DataStore{id:1})
WITH a
MATCH (b:DataSet{id:1})
CREATE  (a)-[:LOADS]->(b)
RETURN a;

MERGE (a:DataStore{id:1})
WITH a
MATCH (b:DataSet{id:2})
CREATE  (a)-[:LOADS]->(b)
RETURN a;

MERGE (a:DataStore{id:2})
WITH a
MATCH (b:DataSet{id:3})
CREATE  (a)-[:LOADS]->(b)
RETURN a;

MERGE (a:DataStore{id:3})
WITH a
MATCH (b:DataSet{id:4})
CREATE  (a)-[:LOADS]->(b)
RETURN a;

MERGE (a:DataStore{id:4})
WITH a
MATCH (b:DataSet{id:5})
CREATE  (a)-[:LOADS]->(b)
RETURN a;

MERGE (a:DataStore{id:5})
WITH a
MATCH (b:DataSet{id:6})
CREATE  (a)-[:LOADS]->(b)
RETURN a;









Nodes

~id ~labels name description id apptype
0 Application Summit US TradeCapture System 1 FO
1 Application Genesis Financial Datawarehouse 2 BO
2 Application Intellect Europe TradeCapture System 3 BO
3 Application QFXLM Product Processor 4 MO
4 Application Reginside Reporting Analytics 5 BO
10 DataStore SummitPRODDatastore 1
12 DataStore GenesisPRODDatastore 2
13 DataStore IntellectPRODDatastore 3
14 DataStore QFXLMPRODDatastore 4
15 DataStore ReginsidePRODDatastore 5
18 DataSet SummitTradeBlotter 1
19 DataSet SummitPCDFeed 2
20 DataSet DailyTradeTransactionsSnapshot 3
21 DataSet IntellectTradeBlotter 4
22 DataSet QFXLMGenesisFeed 5
23 DataSet ReginsideTradeSummary 6

Relationships

~id ~start_node_id ~end_node_id ~relationship_type
0 0 1 LOADS
1 1 12 STORES_IN
2 3 1 LOADS
3 2 3 LOADS
4 1 4 LOADS
5 0 10 STORES_IN
7 2 13 STORES_IN
8 3 14 STORES_IN
9 4 15 STORES_IN
10 10 18 LOADS
11 10 19 LOADS
12 12 20 LOADS
13 13 21 LOADS
14 14 22 LOADS
15 15 23 LOADS