8. TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
raw
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
transform nodes.txt
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
data +
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
edges.txt
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
en
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
TABLE_DUMP2|1332345590|B|195.66.224.97|1299|1.11.64.0/21
ric
h
?
import enriched-nodes.txt
+
enriched-edges.txt
qu
int er
er y /
ac
t
11. nodes.txt:
1 AS1 LVLT-1 - Level 3 Communications, Inc.
10 AS10 CSNET-EXT-AS - CSNET Coordination and Information Center (CSNET-CIC)
100 AS100 FMC-CTC - FMC Central Engineering Laboratories
1000 AS1000 GONET-ASN-17 - GONET
10000 AS10000 NCM Nagasaki Cable Media Inc.
10001 AS10001 MICSNET Mics Network Corporation
10002 AS10002 ICT IGAUENO CABLE TELEVISION CO.,LTD
10003 AS10003 OCT-NET Ogaki Cable Television Co.,Inc.
10004 AS10004 AS-PHOENIX-J JIN Office Service Inc.
10006 AS10006 SECOMTRUST SECOM Trust Systems Co.,Ltd.
10010 AS10010 TOKAI TOKAI Communications Corporation
10011 AS10011 ADVAN advanscope.inc
10012 AS10012 FUSION Fusion Communications Corp.
edges.txt:
1 21616 3
1 3705 3
1 2 3
2 3 1
3 4 2
3 11488 2
4 5 1
10 10 2
10 13227 2
12 12 1
12. public class SillyImporter {
private static enum ConnectionTypes implements RelationshipType {
FOLLOWS;
}
public static void main(String[] args) {
BatchInserter database = new BatchInserterImpl("/Users/friso/Desktop/graph.db");
BatchInserterIndexProvider provider = new LuceneBatchInserterIndexProvider(database);
BatchInserterIndex index = provider.nodeIndex("allnodes", stringMap(
"type", "fulltext",
IndexManager.PROVIDER, "lucene"
));
long fzkNodeId = database.createNode(map(
new Object[] {"name", "fzk", "tweets", 25L} //node properties
));
index.add(fzkNodeId, map(new Object[] {"name", "fzk"}));
long krisgeusNodeId = database.createNode(map(
new Object[] {"name", "krisgeus", "tweets", 100L} //node properties
));
index.add(krisgeusNodeId, map(new Object[] {"name", "krisgeus"}));
database.createRelationship(
krisgeusNodeId, //from node
fzkNodeId, //to node
ConnectionTypes.FOLLOWS, //relationship type
map(new Object[] {"retweets", 3})); //relationship properties
index.flush();
provider.shutdown();
database.shutdown();
}
}
13. 30M nodes + 250M edges, < 30 minutes
(if your graph fits in memory)
14. Cypher graph query language
start a = node:allnodes(‘name:”fzk”’)
match p = a-[r]-b
return p
All relationships from node with name=fzk
15. Cypher graph query language
start a = node:allnodes(‘name:”fzk”’)
match p = a-[r]-b
where any(x in r.amounts where x > 500)
return p
All relationships from node with name=fzk, where any
element in the array property amounts of the relationship
is greater than 500
16. Cypher graph query language
start a = node:allnodes(‘name:”fzk”’),
b = node:allnodes(‘name:”krisgeus”’)
match p = a-[:FOLLOWS*1..3]-b
return p
All paths with a length between 1 and 3 (inclusive) between
node with name=fzk and node with name=krisgeus with
any relationship type=FOLLOWS
17. Cypher graph query language
start a = node:allnodes(‘name:”fzk”’),
b = node:allnodes(‘name:”krisgeus”’)
match p = a<-[:FOLLOWS]-x-[:FOLLOWS]->b
return x
All people who follow both fzk and krisgeus. Note the
indication of direction in the relationship predicates.