wangxq 5d77b3db76 统一日志配置 1 månad sedan
..
README.md ff40167dac The first initialization of the project 2 månader sedan
__init__.py ff40167dac The first initialization of the project 2 månader sedan
metric_interface.py 5d77b3db76 统一日志配置 1 månad sedan

README.md

核心数据指标模块

简介

核心数据指标模块(app.core.data_metric)包含与数据指标相关的所有核心业务逻辑,负责实现数据指标的管理、查询、图谱生成等功能的核心算法和数据处理逻辑。该模块不直接处理HTTP请求,而是由API层调用,实现业务与接口的分离。

主要功能

  1. 数据指标管理:创建、更新、查询数据指标的核心逻辑
  2. 数据指标列表:实现数据指标列表的查询和过滤功能
  3. 图谱生成:计算和生成不同类型的数据指标关系图谱,包括:
    • 血缘关系图谱(Kinship Graph)
    • 影响关系图谱(Impact Graph)
    • 完整关系图谱(All Relationships Graph)
  4. 关系处理:管理数据指标与其他实体(数据模型、其他指标、元数据、标签)之间的关系

核心函数列表

函数名 描述
metric_list() 获取数据指标列表,支持多种过滤条件
handle_metric_relation() 处理数据指标血缘关系
id_mertic_graph() 生成数据指标关系图谱
handle_data_metric() 创建或更新数据指标节点
handle_meta_data_metric() 处理数据指标与其他节点的关系
handle_id_metric() 获取数据指标详情
metric_kinship_graph() 生成数据指标血缘关系图谱
metric_impact_graph() 生成数据指标影响关系图谱
metric_all_graph() 生成数据指标所有关系图谱
data_metric_edit() 编辑数据指标

数据模型

数据指标(data_metric)

数据指标是对数据的测量和计算规则,主要属性包括:

  • name: 指标名称(中文)
  • en_name: 指标英文名称
  • category: 指标分类
  • describe: 指标描述
  • time: 创建/更新时间
  • tag: 关联的标签ID
  • code: 计算代码
  • id_list: 关联的数据模型或其他指标ID列表

指标关系

数据指标与其他实体之间的主要关系类型:

  • origin: 指标来源(指标→模型或指标→指标)
  • connection: 指标与元数据的连接
  • label: 指标与标签的连接
  • child: 指标的下级关系

使用示例

1. 获取数据指标列表

from app.core.data_metric.metric_interface import metric_list

# 获取第一页,每页10条数据
skip_count = 0
page_size = 10
data, total = metric_list(skip_count, page_size, name_filter="用户")

print(f"共找到 {total} 条记录")
for item in data:
    print(f"指标名称: {item['name']}, 分类: {item['category']}")

2. 生成指标关系图谱

from app.core.data_metric.metric_interface import metric_all_graph

# 生成某个指标的所有关系图谱,包含元数据
graph_data = metric_all_graph(nodeid=123, meta=True)

# 输出图谱数据
print(f"节点数量: {len(graph_data['nodes'])}")
print(f"连线数量: {len(graph_data['lines'])}")

依赖项

本模块主要依赖以下组件:

  1. py2neo: 用于Neo4j图数据库操作
  2. routes.graph_routes: 提供图数据库连接
  3. DataOps_function.common_functions: 提供通用操作函数
  4. DataOps_function.meta_data_function: 提供元数据相关功能
  5. services.package_function: 提供节点和关系操作功能

错误处理

本模块使用Python标准异常处理机制。大多数函数在遇到错误时会抛出相应的异常,由调用者(通常是API层)捕获和处理。模块还使用logging模块记录关键操作和错误,日志文件为metric_interface.log

性能考虑

数据指标图谱查询可能涉及大量的节点和关系,查询性能可能受到影响。为优化性能,本模块:

  1. 使用MATCH查询时,尽量添加适当的WHERE条件减少结果集
  2. 使用SKIP和LIMIT进行分页查询
  3. 合理使用OPTIONAL MATCH减少查询失败
  4. 对图谱节点和关系进行过滤,只返回有效的数据

代码结构

  • init.py: 导入模块接口
  • metric_interface.py: 包含所有核心功能实现

维护者

数据平台开发团队