Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
neo4jRelation
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
qiuchaofei
neo4jRelation
Commits
f523b450
Commit
f523b450
authored
Jan 14, 2022
by
qiuchaofei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.同步临时表,2 表与表的关系,需要通过临时表,3临时节点的repository添加事务,4 通过id查询的接口,从list改成单个。
parent
610cdd9f
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
69 additions
and
43 deletions
+69
-43
TempNodeRepository.java
...data/metadataRelation/respository/TempNodeRepository.java
+4
-0
Neo4jETLJobRepository.java
...aRelation/respository/metadata/Neo4jETLJobRepository.java
+1
-1
Neo4jETLScriptRepository.java
...lation/respository/metadata/Neo4jETLScriptRepository.java
+1
-4
Neo4jFunctionRepository.java
...elation/respository/metadata/Neo4jFunctionRepository.java
+1
-1
Neo4jProcedureRepository.java
...lation/respository/metadata/Neo4jProcedureRepository.java
+1
-1
Neo4jSchemaRepository.java
...aRelation/respository/metadata/Neo4jSchemaRepository.java
+1
-1
Neo4jSystemRepository.java
...aRelation/respository/metadata/Neo4jSystemRepository.java
+1
-1
Neo4jTableRepository.java
...taRelation/respository/metadata/Neo4jTableRepository.java
+5
-3
AsyncDataFromMongoToNeo4j.java
...a/metadataRelation/service/AsyncDataFromMongoToNeo4j.java
+7
-7
MetadataServiceImpl.java
...ta/metadataRelation/service/impl/MetadataServiceImpl.java
+45
-18
TableServiceImpl.java
...adata/metadataRelation/service/impl/TableServiceImpl.java
+2
-6
No files found.
src/main/java/com/keymobile/metadata/metadataRelation/respository/TempNodeRepository.java
View file @
f523b450
...
...
@@ -3,15 +3,19 @@ package com.keymobile.metadata.metadataRelation.respository;
import
java.util.List
;
import
com.keymobile.metadata.metadataRelation.pojo.TempNode
;
import
org.springframework.data.jpa.repository.Modifying
;
import
org.springframework.data.neo4j.annotation.Query
;
import
org.springframework.data.neo4j.repository.Neo4jRepository
;
import
org.springframework.data.repository.query.Param
;
import
javax.transaction.Transactional
;
/**
* @author mahx
* @version 1.0
* @date 2021/11/10 18:15
*/
@Transactional
public
interface
TempNodeRepository
extends
Neo4jRepository
<
TempNode
,
Long
>
{
Long
deleteTempNodesByEtlScriptId
(
String
etlScriptId
);
...
...
src/main/java/com/keymobile/metadata/metadataRelation/respository/metadata/Neo4jETLJobRepository.java
View file @
f523b450
...
...
@@ -10,6 +10,6 @@ import java.util.List;
@Repository
public
interface
Neo4jETLJobRepository
extends
Neo4jRepository
<
Neo4jETLJob
,
Long
>
{
List
<
Neo4jETLJob
>
findNeo4jETLJobByMetadataId
(
String
metadataId
);
Neo4jETLJob
findNeo4jETLJobByMetadataId
(
String
metadataId
);
}
src/main/java/com/keymobile/metadata/metadataRelation/respository/metadata/Neo4jETLScriptRepository.java
View file @
f523b450
...
...
@@ -4,10 +4,7 @@ import com.keymobile.metadata.metadataRelation.pojo.metadata.Neo4jETLScript;
import
org.springframework.data.neo4j.repository.Neo4jRepository
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
@Repository
public
interface
Neo4jETLScriptRepository
extends
Neo4jRepository
<
Neo4jETLScript
,
Long
>
{
List
<
Neo4jETLScript
>
findNeo4jETLScriptByMetadataId
(
String
metadataId
);
Neo4jETLScript
findNeo4jETLScriptByMetadataId
(
String
metadataId
);
}
src/main/java/com/keymobile/metadata/metadataRelation/respository/metadata/Neo4jFunctionRepository.java
View file @
f523b450
...
...
@@ -9,5 +9,5 @@ import java.util.List;
@Repository
public
interface
Neo4jFunctionRepository
extends
Neo4jRepository
<
Neo4jFunction
,
Long
>
{
List
<
Neo4jFunction
>
findNeo4jFunctionByMetadataId
(
String
metadataId
);
Neo4jFunction
findNeo4jFunctionByMetadataId
(
String
metadataId
);
}
src/main/java/com/keymobile/metadata/metadataRelation/respository/metadata/Neo4jProcedureRepository.java
View file @
f523b450
...
...
@@ -10,5 +10,5 @@ import java.util.List;
@Repository
public
interface
Neo4jProcedureRepository
extends
Neo4jRepository
<
Neo4jProcedure
,
Long
>
{
List
<
Neo4jProcedure
>
findNeo4jProcedureByMetadataId
(
String
metadataId
);
Neo4jProcedure
findNeo4jProcedureByMetadataId
(
String
metadataId
);
}
src/main/java/com/keymobile/metadata/metadataRelation/respository/metadata/Neo4jSchemaRepository.java
View file @
f523b450
...
...
@@ -11,7 +11,7 @@ import java.util.List;
@Repository
public
interface
Neo4jSchemaRepository
extends
Neo4jRepository
<
Neo4jSchema
,
Long
>
{
List
<
Neo4jSchema
>
findNeo4jSchemaByMetadataId
(
String
metadataId
);
Neo4jSchema
findNeo4jSchemaByMetadataId
(
String
metadataId
);
@Query
(
"match (n:Neo4jSchema{metadataId:{schemaId}} )-[r:Composition]->(m) return m "
)
List
<
BaseNode
>
getTableBySchemaId
(
@Param
(
"schemaId"
)
String
schemaId
);
...
...
src/main/java/com/keymobile/metadata/metadataRelation/respository/metadata/Neo4jSystemRepository.java
View file @
f523b450
...
...
@@ -11,7 +11,7 @@ import java.util.List;
@Repository
public
interface
Neo4jSystemRepository
extends
Neo4jRepository
<
Neo4jSystem
,
Long
>
{
List
<
Neo4jSystem
>
findNeo4jSystemByMetadataId
(
String
metadataId
);
Neo4jSystem
findNeo4jSystemByMetadataId
(
String
metadataId
);
List
<
Neo4jSystem
>
findNeo4jSystemByName
(
String
metadataName
);
// @Query("MATCH p=(n:MetaData {metadataId:{parentId}})-[r:Composition]->(m) RETURN m limit {limit} ")
...
...
src/main/java/com/keymobile/metadata/metadataRelation/respository/metadata/Neo4jTableRepository.java
View file @
f523b450
...
...
@@ -11,12 +11,14 @@ import java.util.List;
@Repository
public
interface
Neo4jTableRepository
extends
Neo4jRepository
<
Neo4jTable
,
Long
>
{
List
<
Neo4jTable
>
findNeo4jTableByMetadataId
(
String
metadataId
);
Neo4jTable
findNeo4jTableByMetadataId
(
String
metadataId
);
@Query
(
"match (n{metadataId:{tableId}} )<-[r:流向]-(m1)<-[r1:流向]-(m) return m "
)
//match (n:Neo4jTable{metadataId:"Table=1=de175ee0b21c473f915cefaad6d798f1"})-[r1:流向]->(n1)-[r0:TempInput*0..]->(m)-[r:流向]->(m1) return m1
@Query
(
"match (n:Neo4jTable{metadataId:{tableId}})<-[r1:流向]-(n1)<-[r0:TempRelation*0..]-(m)<-[r:流向]-(m1) return m1 "
)
List
<
BaseNode
>
getSourceTable
(
@Param
(
"tableId"
)
String
tableId
);
@Query
(
"match (n{metadataId:{tableId}} )-[r1:流向]->(m1)-[r:流向]->(m) return m "
)
// @Query("match (n{metadataId:{tableId}} )-[r1:流向]->(m1)-[r:流向]->(m) return m ")
@Query
(
"match (n:Neo4jTable{metadataId:{tableId}})-[r1:流向]->(n1)-[r0:TempRelation*0..]->(m)-[r:流向]->(m1) return m1 "
)
List
<
BaseNode
>
getTargetTable
(
@Param
(
"tableId"
)
String
tableId
);
@Query
(
"match (n{metadataId:{startTable}} )<-[r1:流向]-(m1)<-[r:流向]-(m{metadataId:{entTable}}) return m1 "
)
...
...
src/main/java/com/keymobile/metadata/metadataRelation/service/AsyncDataFromMongoToNeo4j.java
View file @
f523b450
...
...
@@ -63,13 +63,13 @@ public class AsyncDataFromMongoToNeo4j {
return
user
;
}
});
//先删除同个环境的数据
metadataService
.
deleteNodeByCatalogName
(
catalogName
);
metadataService
.
syschroMetadataFromMongo
(
catalogName
,
mongoDataList
);
//先同步元数据,纵向关系,root开始
//再同步元数据的横向关系
metadataService
.
syschroTable2EtlJobRelations
(
catalogName
);
//
//先删除同个环境的数据
//
metadataService.deleteNodeByCatalogName(catalogName);
// //先同步元数据,纵向关系,root开始,系统--schema--table--column,系统--etl作业--etl脚本--etlsql。
// metadataService.syschroMetadataFromMongo(catalogName,mongoDataList);
//
//
//再同步元数据的横向关系
//
metadataService.syschroTable2EtlJobRelations(catalogName);
// metadataService.syschroRelationFromMongo(catalogName);
// // 同步其他数据(模型,标准,质量等)
...
...
src/main/java/com/keymobile/metadata/metadataRelation/service/impl/MetadataServiceImpl.java
View file @
f523b450
...
...
@@ -1293,8 +1293,8 @@ public class MetadataServiceImpl implements IMetadataService {
String
systemPath
=
catalogName
+
";"
+
systemData
.
getName
();
neo4jSystem
.
setDataPath
(
systemPath
);
//用名称查找,如果存在,就不用创建
List
<
Neo4jSystem
>
neo4jSchemaList
=
neo4jSystemRepository
.
findNeo4jSystemByMetadataId
(
neo4jSystem
.
getMetadataId
());
if
(
neo4jSchemaList
==
null
||
neo4jSchemaList
.
size
()==
0
){
Neo4jSystem
neo4jSchemaList
=
neo4jSystemRepository
.
findNeo4jSystemByMetadataId
(
neo4jSystem
.
getMetadataId
());
if
(
neo4jSchemaList
==
null
){
neo4jSystemRepository
.
save
(
neo4jSystem
);
}
systemDataMap
.
put
(
systemData
.
get_id
(),
neo4jSystem
);
...
...
@@ -1325,8 +1325,8 @@ public class MetadataServiceImpl implements IMetadataService {
neo4jETLJob
.
setName
(
etlJobData
.
getName
());
neo4jETLJob
.
setCnName
(
etlJobData
.
getCnName
());
//如果存在,就不用创建
List
<
Neo4jETLJob
>
neo4jETLJobList1
=
neo4jETLJobRepository
.
findNeo4jETLJobByMetadataId
(
neo4jETLJob
.
getMetadataId
());
if
(
neo4jETLJobList1
==
null
||
neo4jETLJobList1
.
size
()==
0
){
Neo4jETLJob
neo4jETLJobList1
=
neo4jETLJobRepository
.
findNeo4jETLJobByMetadataId
(
neo4jETLJob
.
getMetadataId
());
if
(
neo4jETLJobList1
==
null
){
neo4jETLJobList
.
add
(
neo4jETLJob
);
etlJobCount
++;
}
...
...
@@ -1345,8 +1345,8 @@ public class MetadataServiceImpl implements IMetadataService {
neo4jETLScript
.
setName
(
etlScriptMongo
.
getName
());
neo4jETLScript
.
setCnName
(
etlScriptMongo
.
getCnName
());
//如果存在,就不用创建
List
<
Neo4jETLScript
>
neo4jScriptList
=
neo4jETLScriptRepository
.
findNeo4jETLScriptByMetadataId
(
neo4jETLScript
.
getMetadataId
());
if
(
neo4jScriptList
==
null
||
neo4jScriptList
.
size
()==
0
){
Neo4jETLScript
neo4jScriptList
=
neo4jETLScriptRepository
.
findNeo4jETLScriptByMetadataId
(
neo4jETLScript
.
getMetadataId
());
if
(
neo4jScriptList
==
null
){
neo4jETLScriptList
.
add
(
neo4jETLScript
);
etlScriptCount
++;
CompositionRelation
compositionRelation
=
new
CompositionRelation
();
...
...
@@ -1360,7 +1360,7 @@ public class MetadataServiceImpl implements IMetadataService {
// for (MongoData eltSqlMongo:eltSqlMongoList){
//
// String etlSqlId = eltSqlMongo.get_id();
// Neo4jETLSql neo4jETLSql =
null;//
neo4jETLSqlRepository.findNeo4jETLSqlByMetadataId(etlSqlId);
// Neo4jETLSql neo4jETLSql = neo4jETLSqlRepository.findNeo4jETLSqlByMetadataId(etlSqlId);
// if(neo4jETLSql == null){
// neo4jETLSql = new Neo4jETLSql();
//
...
...
@@ -1479,8 +1479,8 @@ public class MetadataServiceImpl implements IMetadataService {
neo4jTableList
.
clear
();
}
List
<
Neo4jTable
>
neo4jTableListExist
=
null
;
//
neo4jTableRepository.findNeo4jTableByMetadataId(metadataId);
if
(
neo4jTableListExist
==
null
||
neo4jTableListExist
.
size
()
==
0
){
Neo4jTable
neo4jTableListExist
=
neo4jTableRepository
.
findNeo4jTableByMetadataId
(
metadataId
);
if
(
neo4jTableListExist
==
null
){
Neo4jTable
neo4jTable
=
new
Neo4jTable
();
neo4jTable
.
setMetadataId
(
metadataId
);
neo4jTable
.
setName
(
metadataName
);
...
...
@@ -1506,7 +1506,7 @@ public class MetadataServiceImpl implements IMetadataService {
// List<MongoData> columnMongoDataList = mongoDbServiceImpl.findDataByparentId(metadataId, catalogName);
// for(MongoData columnMongoData:columnMongoDataList){
// String columnId = columnMongoData.get_id();
// Neo4jColumn neo4jColumnList1 = n
ull;//n
eo4jColumnRepository.findNeo4jColumnByMetadataId(columnId);
// Neo4jColumn neo4jColumnList1 = neo4jColumnRepository.findNeo4jColumnByMetadataId(columnId);
//
// if(neo4jColumnList1==null){
// Neo4jColumn neo4jColumn = new Neo4jColumn();
...
...
@@ -1605,7 +1605,6 @@ public class MetadataServiceImpl implements IMetadataService {
}
}
}
int
count
=
1
;
//获取前100个表测试
if
(
neo4jTableList
!=
null
&&
neo4jTableList
.
size
()!=
0
){
neo4jTableRepository
.
saveAll
(
neo4jTableList
);
}
...
...
@@ -2265,31 +2264,59 @@ public class MetadataServiceImpl implements IMetadataService {
String
etlScriptId
=
relation
.
getString
(
"etlScriptId"
);
String
etlJobId
=
relation
.
getString
(
"etlJobId"
);
deleteTempNodeByCatalogName
(
sqlId
);
MetaData
metadata
=
metadataRepository
.
findMetaDataByMetadataId
(
sqlId
);
if
(
metadata
==
null
)
{
Neo4jETLSql
neo4jETLSql
=
neo4jETLSqlRepository
.
findNeo4jETLSqlByMetadataId
(
sqlId
);
// MetaData metadata = metadataRepository.findMetaDataByMetadataId(sqlId);
Neo4jETLScript
neo4jETLScript
=
neo4jETLScriptRepository
.
findNeo4jETLScriptByMetadataId
(
etlScriptId
);
Long
srciptId
=
neo4jETLScript
.
getId
();
String
source
=
relation
.
getString
(
"source"
);
String
target
=
relation
.
getString
(
"target"
);
String
type
=
relation
.
getString
(
"type"
);
if
(
"Input"
.
equalsIgnoreCase
(
type
))
{
//上面方法得到的临时字段的id,怎么得到临时表的id?
String
[]
tableNames
=
StringUtils
.
split
(
source
,
'.'
);
String
tableName
=
tableNames
[
1
];
Long
tableId
=
createNode
(
nameIdMap
,
catalogName
,
etlJobId
,
etlScriptId
,
tableName
,
true
,
null
);
if
(
tableId
!=
null
)
{
tempRelationRepository
.
mergeTempRelation
(
tableId
,
srciptId
);
}
}
if
(
"Output"
.
equalsIgnoreCase
(
type
))
{
//上面方法得到的临时字段的id,怎么得到临时表的id?
String
[]
tableNames
=
StringUtils
.
split
(
target
,
'.'
);
String
tableName
=
tableNames
[
1
];
Long
tableId
=
createNode
(
nameIdMap
,
catalogName
,
etlJobId
,
etlScriptId
,
tableName
,
true
,
null
);
if
(
tableId
!=
null
)
{
tempRelationRepository
.
mergeTempRelation
(
srciptId
,
tableId
);
}
}
if
(
neo4jETLSql
==
null
)
{
logger
.
error
(
"id : {} is not found"
,
sqlId
);
continue
;
}
Long
id
=
metadata
.
getId
();
Long
id
=
neo4jETLSql
.
getId
();
String
source
=
relation
.
getString
(
"source"
);
String
target
=
relation
.
getString
(
"target"
);
if
(
StringUtils
.
isBlank
(
source
)
||
StringUtils
.
isBlank
(
target
))
{
continue
;
}
String
type
=
relation
.
getString
(
"type"
);
if
(
"Input"
.
equalsIgnoreCase
(
type
))
{
Long
nodeId
=
createNode
(
nameIdMap
,
catalogName
,
etlJobId
,
etlScriptId
,
source
,
false
,
null
);
if
(
nodeId
!=
null
)
{
tempRelationRepository
.
mergeTempRelation
(
nodeId
,
id
);
}
}
if
(
"Output"
.
equalsIgnoreCase
(
type
))
{
Long
nodeId
=
createNode
(
nameIdMap
,
catalogName
,
etlJobId
,
etlScriptId
,
target
,
false
,
null
);
if
(
nodeId
!=
null
)
{
tempRelationRepository
.
mergeTempRelation
(
id
,
nodeId
);
}
}
}
}
...
...
@@ -2314,7 +2341,7 @@ public class MetadataServiceImpl implements IMetadataService {
public
void
deleteTempNodeByCatalogName
(
String
catalogName
)
{
try
{
tempNodeRepository
.
deleteAllRelation
(
catalogName
);
tempNodeRepository
.
deleteTempNodesByCatalogName
(
catalogName
);
tempNodeRepository
.
deleteTempNodesByCatalogName
(
catalogName
+
""
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
...
...
src/main/java/com/keymobile/metadata/metadataRelation/service/impl/TableServiceImpl.java
View file @
f523b450
...
...
@@ -126,10 +126,8 @@ public class TableServiceImpl implements ITableService {
}
private
List
<
ReturnNode
>
getCurrentTableInfo
(
String
tableId
)
{
List
<
Neo4jTable
>
neo4jTableList
=
neo4jTableRepository
.
findNeo4jTableByMetadataId
(
tableId
);
Neo4jTable
neo4jTable
=
neo4jTableRepository
.
findNeo4jTableByMetadataId
(
tableId
);
List
<
ReturnNode
>
returnTableList
=
new
ArrayList
<>();
for
(
Neo4jTable
neo4jTable:
neo4jTableList
){
ReturnNode
returnNode
=
new
ReturnNode
();
returnNode
.
setId
(
neo4jTable
.
getMetadataId
());
returnNode
.
setName
(
neo4jTable
.
getName
());
...
...
@@ -139,7 +137,6 @@ public class TableServiceImpl implements ITableService {
Map
<
String
,
String
>
attributeMap
=
getAttributeMap
(
tableId
);
returnNode
.
setAttributeMaps
(
attributeMap
);
}
return
returnTableList
;
}
...
...
@@ -263,8 +260,7 @@ public class TableServiceImpl implements ITableService {
Map
<
String
,
String
>
returnMap
=
new
LinkedHashMap
<>();
List
<
Neo4jTable
>
neo4jTableList
=
neo4jTableRepository
.
findNeo4jTableByMetadataId
(
tableId
);
Neo4jTable
neo4jTable
=
neo4jTableList
.
get
(
0
);
Neo4jTable
neo4jTable
=
neo4jTableRepository
.
findNeo4jTableByMetadataId
(
tableId
);
// 英文名称,中文名称,说明,表规模(行),表大小(字节),更新时间,
// 所属系统,所属分层,加载脚本,质量情况,相关模型
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment