Commit 5f373286 by qiuchaofei

1.修改查找子节点的方式,2不删除数据。

parent f3008c19
......@@ -21,6 +21,8 @@ public interface Neo4jSchemaRepository extends Neo4jRepository<Neo4jSchema, Long
@Query("match (n:Neo4jSchema{metadataId:{schemaId}} )-[r:Composition]->(m:neo4jTable) return m order by m.name ")
List<BaseNode> getTableBySchemaId(@Param("schemaId") String schemaId);
@Query("match (n:Neo4jSchema{metadataId:{schemaId}} )-[r:Composition]->(m:neo4jTable) return m order by m.name ")
List<BaseNode> getColumnBySchemaId(@Param("schemaId") String schemaId);
@Query("match (n:Neo4jSchema{metadataId:{schemaId}} )-[r:Composition]->(m:neo4jView) return m order by m.name ")
List<BaseNode> getViewBySchemaId(@Param("schemaId") String schemaId);
......
......@@ -71,10 +71,10 @@ public class AsyncDataFromMongoToNeo4j {
});
//先删除同个环境的数据
long time0 = System.currentTimeMillis();
metadataService.deleteNodeByCatalogName(catalogName);
// metadataService.deleteNodeByCatalogName(catalogName);
long time1 = System.currentTimeMillis();
logger.info("删除"+catalogName+"的数据完成,耗时:"+(time1-time0));
// logger.info("删除"+catalogName+"的数据完成,耗时:"+(time1-time0));
//先同步元数据,纵向关系,root开始,系统--schema--table--column,系统--etl作业--etl脚本--etlsql。
metadataService.syschroMetadataFromMongo(catalogName,mongoDataList);
......
......@@ -18,4 +18,9 @@ public interface ISchemaService {
boolean updateTagFromSchema(String schemaId);
boolean updateTagFromAllSchema();
Map<String,String> getTableIdFromSchemaId(String schemaId);
Map<String,String> getColumnIdFromSchemaId(String schemaId);
}
......@@ -4,7 +4,10 @@ import com.keymobile.metadata.metadataRelation.pojo.MetaData;
import com.keymobile.metadata.metadataRelation.pojo.returnBean.ReturnNode;
import com.keymobile.metadata.metadataRelation.service.DataRelationAnalyService;
import com.keymobile.metadata.metadataRelation.util.Neo4jTool;
import org.neo4j.driver.v1.*;
import org.neo4j.driver.v1.Record;
import org.neo4j.driver.v1.Session;
import org.neo4j.driver.v1.StatementResult;
import org.neo4j.driver.v1.Value;
import org.neo4j.driver.v1.types.Node;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -21,7 +24,7 @@ public class DataRelationAnalyServiceImpl implements DataRelationAnalyService {
private static final Logger logger = LoggerFactory.getLogger(DataRelationAnalyServiceImpl.class);
@Autowired
private Session session;
private Session session;
@Override
public Map<String, ReturnNode> findTableWithoutRelations(String parentId,int start,int end,String keyWord) {
......
......@@ -10,6 +10,9 @@ import com.keymobile.metadata.metadataRelation.respository.metadata.Neo4jSystemR
import com.keymobile.metadata.metadataRelation.service.ISchemaService;
import com.keymobile.metadata.metadataRelation.util.SchemaLayerObject;
import org.hibernate.loader.custom.Return;
import org.neo4j.driver.v1.Record;
import org.neo4j.driver.v1.Session;
import org.neo4j.driver.v1.StatementResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -27,6 +30,8 @@ public class SchemaServiceImpl implements ISchemaService {
@Autowired
private TagRemoteService tagRemoteService;
@Autowired
private Session session;
@Autowired
private Neo4jSystemRepository neo4jSystemRepository;
......@@ -49,11 +54,11 @@ public class SchemaServiceImpl implements ISchemaService {
* 26 });
*/
List<Neo4jSchema> neo4jSchemas = neo4jSystemRepository.getSchemaBySystemId(systemId);
System.out.println("排序前:");
for(Neo4jSchema neo4jSystem:neo4jSchemas){
System.out.println("neo4jSystem:"+neo4jSystem.getName());
}
// System.out.println("排序前:");
// for(Neo4jSchema neo4jSystem:neo4jSchemas){
//
// System.out.println("neo4jSystem:"+neo4jSystem.getName());
// }
Collections.sort(neo4jSchemas, new Comparator<Neo4jSchema>() {
@Override
public int compare(Neo4jSchema o1, Neo4jSchema o2){
......@@ -61,11 +66,11 @@ public class SchemaServiceImpl implements ISchemaService {
return compare.compare(o1.getName(), o2.getName());
}
});
System.out.println("排序后:");
for(Neo4jSchema neo4jSystem:neo4jSchemas){
System.out.println("neo4jSystem:"+neo4jSystem.getName());
}
// System.out.println("排序后:");
// for(Neo4jSchema neo4jSystem:neo4jSchemas){
//
// System.out.println("neo4jSystem:"+neo4jSystem.getName());
// }
for(Neo4jSchema neo4jSchema:neo4jSchemas ){
ReturnNode returnNode = new ReturnNode();
returnNode.setId(neo4jSchema.getMetadataId());
......@@ -292,6 +297,60 @@ public class SchemaServiceImpl implements ISchemaService {
return true;
}
@Override
public Map<String,String> getTableIdFromSchemaId(String schemaId) {
Map<String,String> tableIdMap = new HashMap<>();
//批量获取指定schema下面的table
String countCypher = "match (n:Neo4jSchema{metadataId:\""+schemaId+"\"})-->(m:Neo4jTable) return count(m) as count";
String detailCypher = "match (n:Neo4jSchema{metadataId:\""+schemaId+"\"})-->(m:Neo4jTable) return m skip 10 limit 10";
StatementResult countResult = session.run(countCypher);
int jdcount= 0 ;
while(countResult.hasNext()){
Record record = countResult.next();
jdcount= record.get( "count").asInt();
}
//分页获取 表
int pageSize = 100;
int page = jdcount/pageSize;
for(int i=0;i<page+1;i++){
detailCypher = "match (n:Neo4jSchema{metadataId:\""+schemaId+"\"})-->(m:Neo4jTable) return m.metadataId as id skip "+(page*pageSize ) +" limit "+ pageSize;
StatementResult detailResult = session.run(detailCypher);
while (detailResult.hasNext()){
Record record = detailResult.next();
String metadataId = record.get( "id").asString();
tableIdMap.put(metadataId,"");
}
}
return tableIdMap;
}
@Override
public Map<String, String> getColumnIdFromSchemaId(String schemaId) {
Map<String,String> columnIdMap = new HashMap<>();
//批量获取指定schema下面的table
String countCypher = "match (n:Neo4jSchema{metadataId:\""+schemaId+"\"})-[:Composition]->(m:Neo4jTable)-[:Composition]->(mn:Neo4jColumn) return count(mn) as count";
String detailCypher = "match (n:Neo4jSchema{metadataId:\""+schemaId+"\"})-->(m:Neo4jTable) return m skip 10 limit 10";
StatementResult countResult = session.run(countCypher);
int jdcount= 0 ;
while(countResult.hasNext()){
Record record = countResult.next();
jdcount= record.get( "count").asInt();
}
//分页获取 表
int pageSize = 100;
int page = jdcount/pageSize;
for(int i=0;i<page+1;i++){
detailCypher = "match (n:Neo4jSchema{metadataId:\""+schemaId+"\"})-[:Composition]->(m:Neo4jTable)-[:Composition]->(mn:Neo4jColumn) return mn.metadataId as id skip "+(i*pageSize ) +" limit "+ pageSize;
StatementResult detailResult = session.run(detailCypher);
while (detailResult.hasNext()){
Record record = detailResult.next();
String metadataId = record.get( "id").asString();
columnIdMap.put(metadataId,"");
}
}
return columnIdMap;
}
private void saveLabelFromTag(List<String> layer, Map<String, Neo4jSchema> neo4jSchemaMap, Map<String, List<Map<String, Object>>> returnResults) {
for (Object obj : returnResults.keySet()) {
String schemaId = (String) obj;
......
......@@ -183,11 +183,11 @@ public class SystemServiceImpl implements ISystemService {
}
}
}
System.out.println("排序前:");
for(Neo4jSystem neo4jSystem:neo4jSystemList){
System.out.println("neo4jSystem:"+neo4jSystem.getName());
}
// System.out.println("排序前:");
// for(Neo4jSystem neo4jSystem:neo4jSystemList){
//
// System.out.println("neo4jSystem:"+neo4jSystem.getName());
// }
Collections.sort(neo4jSystemList, new Comparator<Neo4jSystem>() {
@Override
public int compare(Neo4jSystem o1, Neo4jSystem o2){
......@@ -195,11 +195,11 @@ public class SystemServiceImpl implements ISystemService {
return compare.compare(o1.getName(), o2.getName());
}
});
System.out.println("排序后:");
for(Neo4jSystem neo4jSystem:neo4jSystemList){
System.out.println("neo4jSystem:"+neo4jSystem.getName());
}
// System.out.println("排序后:");
// for(Neo4jSystem neo4jSystem:neo4jSystemList){
//
// System.out.println("neo4jSystem:"+neo4jSystem.getName());
// }
for(Neo4jSystem neo4jSystem:neo4jSystemList){
ReturnNode returnNode = new ReturnNode();
returnNode.setId(neo4jSystem.getMetadataId());
......
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