Commit 352d3355 by linxu
parents 527c2ec0 06a96f10
......@@ -229,8 +229,23 @@ public class MetadataServiceImpl implements IMetadataService {
if (analysisId.contains(metadataId1)) {
continue;
}
String impactCypher = "MATCH p=(a:MetaData{metadataId:\"" + metadataId + "\"})-[r:Composition]->()-->()-->()<-[r1:Composition]-(b:MetaData{metadataId:\"" + metadataId1 + "\"})\n" +
"RETURN p";
String impactCypher = "";
if(modelName.toLowerCase().equals("table") ){
impactCypher= "MATCH p=(a:MetaData{metadataId:\"" + metadataId + "\"})-[r:Composition]->()-->()-->()<-[r1:Composition]-(b:MetaData{metadataId:\"" + metadataId1 + "\"})\n" +
"RETURN p";
}else if(modelName.toLowerCase().equals("sqlscript")){
impactCypher= "MATCH p=(a:MetaData{metadataId:\"" + metadataId + "\"})-[r:Execute]->()-->()-->()<-[r1:Execute]-(b:MetaData{metadataId:\"" + metadataId1 + "\"})\n" +
"RETURN p";
}else if(modelName.toLowerCase().equals("etljob")){
impactCypher= "MATCH p=(a:MetaData{metadataId:\"" + metadataId + "\"})-[r:Execute]->()-[r1:Execute]->()-->()-->()<-[r2:Execute]-()<-[r3:Execute]-(b:MetaData{metadataId:\"" + metadataId1 + "\"})\n" +
"RETURN p";
}else if(modelName.toLowerCase().equals("column") ||modelName.toLowerCase().equals("sql") ){
impactCypher= "MATCH p=(a:MetaData{metadataId:\"" + metadataId + "\"})-->()-->(b:MetaData{metadataId:\"" + metadataId1 + "\"})\n" +
"RETURN p";
}
StatementResult impactResult = session.run(impactCypher);
if (impactResult.hasNext()) {
logger.info(metadataId + " --->>" + metadataId1);
......@@ -242,12 +257,24 @@ public class MetadataServiceImpl implements IMetadataService {
edge.setEdgeId("" + count++);
returnReslult.getEdges().add(edge);
}
String lineageCypher = "MATCH p=(a:MetaData{metadataId:\"" + metadataId1 + "\"})-[r:Composition]->() -->()-->()<-[r1:Composition]-(b:MetaData{metadataId:\"" + metadataId + "\"})\n" +
"RETURN p";
String lineageCypher = "";
if(modelName.toLowerCase().equals("table")){
lineageCypher= "MATCH p=(a:MetaData{metadataId:\"" + metadataId1 + "\"})-[r:Composition]->() -->()-->()<-[r1:Composition]-(b:MetaData{metadataId:\"" + metadataId + "\"})\n" +
"RETURN p";
}else if(modelName.toLowerCase().equals("sqlscript")){
lineageCypher= "MATCH p=(a:MetaData{metadataId:\"" + metadataId1 + "\"})-[r:Execute]->() -->()-->()<-[r1:Execute]-(b:MetaData{metadataId:\"" + metadataId + "\"})\n" +
"RETURN p";
}else if(modelName.toLowerCase().equals("etljob")){
lineageCypher= "MATCH p=(a:MetaData{metadataId:\"" + metadataId1 + "\"})-[r:Execute]->()-[r1:Execute]->()-->()-->()<-[r2:Execute]-()<-[r3:Execute]-(b:MetaData{metadataId:\"" + metadataId + "\"})\n" +
"RETURN p";
}else if(modelName.toLowerCase().equals("column") ||modelName.toLowerCase().equals("sql") ){
lineageCypher= "MATCH p=(a:MetaData{metadataId:\"" + metadataId1 + "\"})-->()-->(b:MetaData{metadataId:\"" + metadataId + "\"})\n" +
"RETURN p";
}
// String lineageCypher = "MATCH p=(a:MetaData{metadataId:\"" + metadataId1 + "\"})-[r:Composition]->() -->()-->()<-[r1:Composition]-(b:MetaData{metadataId:\"" + metadataId + "\"})\n" +
// "RETURN p";
StatementResult lineageResult = session.run(lineageCypher);
if (lineageResult.hasNext()) {
logger.info(metadataId + "<<-- " + metadataId1);
Edge edge = new Edge();
......@@ -554,23 +581,17 @@ public class MetadataServiceImpl implements IMetadataService {
@Override
public List<String> findAllNodeTypes() {
Iterable<MetaData> dataIterable = metadataRepository.findAll();
List<String> labels = new ArrayList<>();
Neo4jConfig neo4jConfig = new Neo4jConfig();
Driver neo4jConnection = neo4jConfig.getNeo4jConnection();
Session session = neo4jConnection.session();
String getLabels = " MATCH (n) RETURN distinct labels(n) as name ";
StatementResult result = session.run(getLabels);
while (result.hasNext()) {
Record record = (Record) result.next();
String labelName = record.get("name").toString();
Value name = record.get("name");
List<Object> objects = name.asList();
int size = objects.size();
String type = "";
Object object = objects.get(size - 1);
labels.add(object.toString());
for(MetaData data :dataIterable){
String metadataId = data.getMetadataId();
String[] metadataIds = metadataId.split("=");
String modelName = metadataIds[0];
if(!labels.contains(modelName)){
labels.add(modelName);
}
}
return labels;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment