|
@@ -125,11 +125,11 @@ def handle_node(receiver, head_data, data_source=None, resource_type=None):
|
|
|
tag_list = receiver.get('tag')
|
|
|
receiver.update(update_attributes)
|
|
|
|
|
|
- # 创建或获取 data_resource 节点
|
|
|
+ # 创建或获取 DataResource 节点
|
|
|
with neo4j_driver.get_session() as session:
|
|
|
props_str = ", ".join([f"{k}: ${k}" for k in receiver.keys()])
|
|
|
cypher = f"""
|
|
|
- MERGE (n:data_resource {{name: $name}})
|
|
|
+ MERGE (n:DataResource {{name: $name}})
|
|
|
ON CREATE SET n = {{{props_str}}}
|
|
|
ON MATCH SET {", ".join([f"n.{k} = ${k}" for k in receiver.keys()])}
|
|
|
RETURN n
|
|
@@ -143,11 +143,11 @@ def handle_node(receiver, head_data, data_source=None, resource_type=None):
|
|
|
|
|
|
# 处理标签关系
|
|
|
if tag_list:
|
|
|
- tag_node = get_node_by_id('data_label', tag_list)
|
|
|
+ tag_node = get_node_by_id('DataLabel', tag_list)
|
|
|
if tag_node:
|
|
|
# 检查关系是否存在
|
|
|
rel_check = """
|
|
|
- MATCH (a:data_resource)-[r:label]->(b:data_label)
|
|
|
+ MATCH (a:DataResource)-[r:label]->(b:DataLabel)
|
|
|
WHERE id(a) = $resource_id AND id(b) = $tag_id
|
|
|
RETURN r
|
|
|
"""
|
|
@@ -156,7 +156,7 @@ def handle_node(receiver, head_data, data_source=None, resource_type=None):
|
|
|
# 如果关系不存在则创建
|
|
|
if not rel_result.single():
|
|
|
rel_create = """
|
|
|
- MATCH (a:data_resource), (b:data_label)
|
|
|
+ MATCH (a:DataResource), (b:DataLabel)
|
|
|
WHERE id(a) = $resource_id AND id(b) = $tag_id
|
|
|
CREATE (a)-[r:label]->(b)
|
|
|
RETURN r
|
|
@@ -169,7 +169,7 @@ def handle_node(receiver, head_data, data_source=None, resource_type=None):
|
|
|
for item in head_data:
|
|
|
# 创建元数据节点
|
|
|
meta_cypher = """
|
|
|
- MERGE (m:meta_data {name: $name})
|
|
|
+ MERGE (m:DataMeta {name: $name})
|
|
|
ON CREATE SET m.en_name = $en_name,
|
|
|
m.create_time = $create_time,
|
|
|
m.data_type = $type,
|
|
@@ -198,7 +198,7 @@ def handle_node(receiver, head_data, data_source=None, resource_type=None):
|
|
|
|
|
|
# 确认数据资源节点是否可以正确查询到
|
|
|
check_resource_cypher = """
|
|
|
- MATCH (n:data_resource)
|
|
|
+ MATCH (n:DataResource)
|
|
|
WHERE id(n) = $resource_id
|
|
|
RETURN n
|
|
|
"""
|
|
@@ -211,7 +211,7 @@ def handle_node(receiver, head_data, data_source=None, resource_type=None):
|
|
|
|
|
|
# 创建关系
|
|
|
rel_cypher = """
|
|
|
- MATCH (a:data_resource), (m:meta_data)
|
|
|
+ MATCH (a:DataResource), (m:DataMeta)
|
|
|
WHERE id(a) = $resource_id AND id(m) = $meta_id
|
|
|
MERGE (a)-[r:contain]->(m)
|
|
|
RETURN r
|
|
@@ -242,7 +242,7 @@ def handle_node(receiver, head_data, data_source=None, resource_type=None):
|
|
|
if data_source_en_name:
|
|
|
# 创建 originates_from 关系
|
|
|
rel_data_source_cypher = """
|
|
|
- MATCH (a:data_resource), (b:DataSource)
|
|
|
+ MATCH (a:DataResource), (b:DataSource)
|
|
|
WHERE id(a) = $resource_id AND b.en_name = $ds_en_name
|
|
|
MERGE (a)-[r:originates_from]->(b)
|
|
|
RETURN r
|
|
@@ -268,7 +268,7 @@ def handle_node(receiver, head_data, data_source=None, resource_type=None):
|
|
|
logger.error(f"数据源节点不存在: en_name={data_source_en_name}")
|
|
|
|
|
|
# 检查数据资源节点是否存在
|
|
|
- check_res_cypher = "MATCH (a:data_resource) WHERE id(a) = $resource_id RETURN a"
|
|
|
+ check_res_cypher = "MATCH (a:DataResource) WHERE id(a) = $resource_id RETURN a"
|
|
|
check_res_result = session.run(check_res_cypher, resource_id=resource_id)
|
|
|
if not check_res_result.single():
|
|
|
logger.error(f"数据资源节点不存在: id={resource_id}")
|
|
@@ -299,7 +299,7 @@ def handle_id_resource(resource_id):
|
|
|
|
|
|
# 使用数值ID查询
|
|
|
cypher = """
|
|
|
- MATCH (n:data_resource)
|
|
|
+ MATCH (n:DataResource)
|
|
|
WHERE id(n) = $resource_id
|
|
|
RETURN n
|
|
|
"""
|
|
@@ -327,7 +327,7 @@ def handle_id_resource(resource_id):
|
|
|
|
|
|
# 查询关联的标签
|
|
|
tag_cypher = """
|
|
|
- MATCH (n:data_resource)-[r:label]->(t:data_label)
|
|
|
+ MATCH (n:DataResource)-[r:label]->(t:DataLabel)
|
|
|
WHERE id(n) = $resource_id
|
|
|
RETURN t
|
|
|
"""
|
|
@@ -349,9 +349,9 @@ def handle_id_resource(resource_id):
|
|
|
|
|
|
# 查询关联的元数据 - 支持meta_data和Metadata两种标签
|
|
|
meta_cypher = """
|
|
|
- MATCH (n:data_resource)-[:contain]->(m)
|
|
|
+ MATCH (n:DataResource)-[:contain]->(m)
|
|
|
WHERE id(n) = $resource_id
|
|
|
- AND (m:meta_data OR m:Metadata)
|
|
|
+ AND (m:DataMeta OR m:Metadata)
|
|
|
RETURN m
|
|
|
"""
|
|
|
meta_result = session.run(meta_cypher, resource_id=resource_id_int)
|
|
@@ -407,7 +407,7 @@ def id_resource_graph(resource_id):
|
|
|
with neo4j_driver.get_session() as session:
|
|
|
# 查询数据资源节点及其关系
|
|
|
cypher = """
|
|
|
- MATCH (n:data_resource)-[r]-(m)
|
|
|
+ MATCH (n:DataResource)-[r]-(m)
|
|
|
WHERE id(n) = $resource_id
|
|
|
RETURN n, r, m
|
|
|
"""
|
|
@@ -452,7 +452,7 @@ def resource_list(page, page_size, en_name_filter=None, name_filter=None,
|
|
|
try:
|
|
|
with neo4j_driver.get_session() as session:
|
|
|
# 构建查询条件
|
|
|
- match_clause = "MATCH (n:data_resource)"
|
|
|
+ match_clause = "MATCH (n:DataResource)"
|
|
|
where_conditions = []
|
|
|
|
|
|
if en_name_filter:
|
|
@@ -469,7 +469,7 @@ def resource_list(page, page_size, en_name_filter=None, name_filter=None,
|
|
|
|
|
|
# 标签过滤需要额外的匹配
|
|
|
if tag_filter:
|
|
|
- match_clause += "-[:label]->(t:data_label)"
|
|
|
+ match_clause += "-[:label]->(t:DataLabel)"
|
|
|
where_conditions.append(f"t.name = '{tag_filter}'")
|
|
|
|
|
|
where_clause = " WHERE " + " AND ".join(where_conditions) if where_conditions else ""
|
|
@@ -497,7 +497,7 @@ def resource_list(page, page_size, en_name_filter=None, name_filter=None,
|
|
|
|
|
|
# 查询关联的标签
|
|
|
tag_cypher = """
|
|
|
- MATCH (n:data_resource)-[r:label]->(t:data_label)
|
|
|
+ MATCH (n:DataResource)-[r:label]->(t:DataLabel)
|
|
|
WHERE id(n) = $resource_id
|
|
|
RETURN t
|
|
|
"""
|
|
@@ -530,9 +530,9 @@ def id_data_search_list(resource_id, page, page_size, en_name_filter=None,
|
|
|
|
|
|
# 基本匹配语句 - 支持meta_data和Metadata标签
|
|
|
match_clause = """
|
|
|
- MATCH (n:data_resource)-[:contain]->(m)
|
|
|
+ MATCH (n:DataResource)-[:contain]->(m)
|
|
|
WHERE id(n) = $resource_id
|
|
|
- AND (m:meta_data OR m:Metadata)
|
|
|
+ AND (m:DataMeta OR m:Metadata)
|
|
|
"""
|
|
|
|
|
|
where_conditions = []
|
|
@@ -604,13 +604,13 @@ def resource_kinship_graph(resource_id, include_meta=True):
|
|
|
|
|
|
# 基本查询
|
|
|
cypher_parts = [
|
|
|
- f"MATCH (n:data_resource) WHERE id(n) = $resource_id",
|
|
|
- "OPTIONAL MATCH (n)-[:label]->(l:data_label)",
|
|
|
+ f"MATCH (n:DataResource) WHERE id(n) = $resource_id",
|
|
|
+ "OPTIONAL MATCH (n)-[:label]->(l:DataLabel)",
|
|
|
]
|
|
|
|
|
|
# 是否包含元数据 - 支持meta_data和Metadata两种标签
|
|
|
if include_meta:
|
|
|
- cypher_parts.append("OPTIONAL MATCH (n)-[:contain]->(m) WHERE (m:meta_data OR m:Metadata)")
|
|
|
+ cypher_parts.append("OPTIONAL MATCH (n)-[:contain]->(m) WHERE (m:DataMeta OR m:Metadata)")
|
|
|
|
|
|
cypher_parts.append("RETURN n, l, collect(m) as metadata")
|
|
|
|
|
@@ -688,15 +688,15 @@ def resource_impact_all_graph(resource_id, include_meta=True):
|
|
|
# 根据meta参数决定查询深度
|
|
|
if include_meta:
|
|
|
cypher = """
|
|
|
- MATCH path = (n:data_resource)-[*1..3]-(m)
|
|
|
+ MATCH path = (n:DataResource)-[*1..3]-(m)
|
|
|
WHERE id(n) = $resource_id
|
|
|
RETURN path
|
|
|
"""
|
|
|
else:
|
|
|
cypher = """
|
|
|
- MATCH path = (n:data_resource)-[*1..2]-(m)
|
|
|
+ MATCH path = (n:DataResource)-[*1..2]-(m)
|
|
|
WHERE id(n) = $resource_id
|
|
|
- AND NOT (m:meta_data) AND NOT (m:Metadata)
|
|
|
+ AND NOT (m:DataMeta) AND NOT (m:Metadata)
|
|
|
RETURN path
|
|
|
"""
|
|
|
|
|
@@ -1061,9 +1061,9 @@ def table_sql(sql):
|
|
|
def status_query(key_list):
|
|
|
query = """
|
|
|
unwind $Key_list as name
|
|
|
- OPTIONAL MATCH (n:data_model {en_name: name})
|
|
|
- OPTIONAL MATCH (n:data_resource {en_name: name})
|
|
|
- OPTIONAL MATCH (n:data_metric {en_name: name})
|
|
|
+ OPTIONAL MATCH (n:DataModel {en_name: name})
|
|
|
+ OPTIONAL MATCH (n:DataResource {en_name: name})
|
|
|
+ OPTIONAL MATCH (n:DataMetric {en_name: name})
|
|
|
WITH name, CASE
|
|
|
WHEN n IS NOT NULL THEN True
|
|
|
ELSE False
|
|
@@ -1220,7 +1220,7 @@ def data_resource_edit(data):
|
|
|
# 构建更新语句
|
|
|
set_clause = ", ".join([f"n.{k} = ${k}" for k in update_fields.keys()])
|
|
|
cypher = f"""
|
|
|
- MATCH (n:data_resource)
|
|
|
+ MATCH (n:DataResource)
|
|
|
WHERE id(n) = $resource_id
|
|
|
SET {set_clause}
|
|
|
RETURN n
|
|
@@ -1240,7 +1240,7 @@ def data_resource_edit(data):
|
|
|
if tag_id:
|
|
|
# 删除旧的标签关系
|
|
|
delete_rel_cypher = """
|
|
|
- MATCH (n:data_resource)-[r:label]->()
|
|
|
+ MATCH (n:DataResource)-[r:label]->()
|
|
|
WHERE id(n) = $resource_id
|
|
|
DELETE r
|
|
|
"""
|
|
@@ -1248,7 +1248,7 @@ def data_resource_edit(data):
|
|
|
|
|
|
# 创建新的标签关系
|
|
|
create_rel_cypher = """
|
|
|
- MATCH (n:data_resource), (t:data_label)
|
|
|
+ MATCH (n:DataResource), (t:DataLabel)
|
|
|
WHERE id(n) = $resource_id AND id(t) = $tag_id
|
|
|
CREATE (n)-[r:label]->(t)
|
|
|
RETURN r
|
|
@@ -1260,7 +1260,7 @@ def data_resource_edit(data):
|
|
|
if parsed_data:
|
|
|
# 删除旧的元数据关系
|
|
|
delete_meta_cypher = """
|
|
|
- MATCH (n:data_resource)-[r:contain]->()
|
|
|
+ MATCH (n:DataResource)-[r:contain]->()
|
|
|
WHERE id(n) = $resource_id
|
|
|
DELETE r
|
|
|
"""
|
|
@@ -1268,7 +1268,7 @@ def data_resource_edit(data):
|
|
|
|
|
|
# 删除旧的清洗资源关系
|
|
|
delete_clean_cypher = """
|
|
|
- MATCH (n:data_resource)-[r:clean_resource]->()
|
|
|
+ MATCH (n:DataResource)-[r:clean_resource]->()
|
|
|
WHERE id(n) = $resource_id
|
|
|
DELETE r
|
|
|
"""
|
|
@@ -1280,7 +1280,7 @@ def data_resource_edit(data):
|
|
|
if meta_id:
|
|
|
# 创建元数据关系
|
|
|
create_meta_cypher = """
|
|
|
- MATCH (n:data_resource), (m:meta_data)
|
|
|
+ MATCH (n:DataResource), (m:DataMeta)
|
|
|
WHERE id(n) = $resource_id AND id(m) = $meta_id
|
|
|
CREATE (n)-[r:contain]->(m)
|
|
|
RETURN r
|
|
@@ -1292,7 +1292,7 @@ def data_resource_edit(data):
|
|
|
if master_data:
|
|
|
# 创建主数据关系
|
|
|
create_master_cypher = """
|
|
|
- MATCH (master), (meta:meta_data)
|
|
|
+ MATCH (master), (meta:DataMeta)
|
|
|
WHERE id(master) = $master_id AND id(meta) = $meta_id
|
|
|
MERGE (master)-[r:master]->(meta)
|
|
|
RETURN r
|
|
@@ -1305,7 +1305,7 @@ def data_resource_edit(data):
|
|
|
standard_id = data_standard.get("id")
|
|
|
# 创建数据标准与元数据的关系
|
|
|
create_standard_meta_cypher = """
|
|
|
- MATCH (standard), (meta:meta_data)
|
|
|
+ MATCH (standard), (meta:DataMeta)
|
|
|
WHERE id(standard) = $standard_id AND id(meta) = $meta_id
|
|
|
MERGE (standard)-[r:clean_resource]->(meta)
|
|
|
RETURN r
|
|
@@ -1314,7 +1314,7 @@ def data_resource_edit(data):
|
|
|
|
|
|
# 创建数据资源与数据标准的关系
|
|
|
create_resource_standard_cypher = """
|
|
|
- MATCH (resource:data_resource), (standard)
|
|
|
+ MATCH (resource:DataResource), (standard)
|
|
|
WHERE id(resource) = $resource_id AND id(standard) = $standard_id
|
|
|
MERGE (resource)-[r:clean_resource]->(standard)
|
|
|
RETURN r
|