maxiaolong 92e675f94c 修改数据解析模块里解析提示词问题。 1 ヶ月 前
..
README.md 36f6186e36 注解掉package_funciton里定义的create_or_get_node函数。 1 ヶ月 前
__init__.py ff40167dac The first initialization of the project 2 ヶ月 前
model.py 92e675f94c 修改数据解析模块里解析提示词问题。 1 ヶ月 前

README.md

数据模型核心业务逻辑模块

本模块包含了数据模型相关的所有核心业务逻辑函数,处理数据模型的创建、查询、更新、删除以及与其他数据对象的关系管理。

主要功能

  1. 数据模型基础操作

    • 创建数据模型节点
    • 更新数据模型属性
    • 删除数据模型节点
    • 查询数据模型详情
  2. 数据模型关系管理

    • 数据模型与元数据(meta_node)的关系处理
    • 数据模型与数据资源(data_resource)的关系处理
    • 数据模型与其他数据模型的关系处理
    • 数据模型与标签(data_label)的关系处理
  3. 数据模型层级管理

    • 计算并设置数据模型层级(level)属性
    • 处理父子关系(child)
  4. 数据模型血缘分析

    • 数据模型血缘关系分析
    • 数据资源血缘关系分析
    • 生成血缘图谱数据
  5. 图谱生成

    • 生成血缘关系图谱(Kinship)
    • 生成影响关系图谱(Impact)
    • 生成全量关系图谱(All)

核心函数列表

  • calculate_model_level:计算数据模型层级
  • handle_model_relation:处理数据模型血缘关系
  • handle_data_model:创建数据模型节点
  • resource_handle_meta_data_model:处理数据模型与数据资源的关系
  • model_handle_meta_data_model:处理数据模型与其他数据模型的关系
  • handle_no_meta_data_model:处理从DDL中选取的没有元数据的数据模型
  • handle_id_model:获取数据模型详情
  • model_list:获取数据模型列表
  • model_resource_list:获取有血缘关系的数据资源列表
  • model_kinship_graph:生成数据模型血缘图谱
  • model_impact_graph:生成数据模型影响图谱
  • model_all_graph:生成数据模型全量图谱
  • data_model_edit:更新数据模型

数据模型

数据模型(data_model)节点具有以下主要属性:

  • name:数据模型名称(中文)
  • en_name:数据模型英文名称
  • category:数据模型分类
  • description:数据模型描述
  • time:创建/更新时间
  • level:数据模型层级
  • id_list:相关ID列表(JSON序列化字符串)

关系类型

数据模型相关的主要关系类型:

  • component:数据模型与元数据的组成关系
  • resource:数据模型与数据资源的关联关系
  • use:数据模型之间的使用关系
  • child:数据模型的父子关系
  • label:数据模型与标签的分类关系

依赖关系

  • 依赖 app.core.graph.graph_operations 提供图数据库节点操作功能
  • 依赖 app.routes.graph_routes 提供图数据库连接
  • 依赖 app.services.neo4j_driver 提供Neo4j会话管理
  • 依赖 app.core.meta_data 提供元数据处理功能
  • 依赖 app.utils.common_functions 提供通用功能函数
  • 依赖 app.core.data_resource 提供数据资源处理功能

调用示例

# 创建数据模型示例
from app.core.data_model.model import handle_data_model, calculate_model_level

# 创建数据模型
model_name = "客户信息模型"
result_list = ["customer_info_model"]
result = json.dumps([{"resource_id": 123, "metaData": [{"id": 456}]}])
receiver = {
    "category": "业务模型",
    "description": "包含客户基本信息的数据模型",
    "tag": 789,
    "childrenId": []
}

model_id, model_node = handle_data_model(model_name, result_list, result, receiver)

# 计算模型层级
calculate_model_level(model_id)