let graph = @lineage.commerce_lineage_graph()
let impacted = @lineage.downstream(graph, "raw_orders")
println(@lineage.blast_radius(graph, "raw_orders"))
for node in impacted {
println("\{node.asset} depth=\{node.depth}")
}
运行
moon check --target all
moon test --target wasm
moon test --target wasm-gc
moon run cmd/main
MoonLineageKit
面向 MoonBit 的数据血缘与影响分析基础库。
MoonLineageKit 解决的是数据工具中很常见但容易被忽略的一层:当上游表、文件、流或字段发生变化时,哪些下游数据集、报表和转换会受影响。项目提供类型化的数据资产、血缘边、字段映射、上下游遍历、影响半径、环检测、风险评分、JSON 导出和 DOT 导出能力。
解决什么问题
很多轻量级数据平台会把血缘关系写在文档、表格或临时 JSON 里,缺少可测试、可复用、可解释的基础库。MoonLineageKit 把这部分抽象成 MoonBit 原生 API,让数据治理工具、报表平台、ETL 元数据工具和教学可视化可以直接复用。
核心能力
Asset:表、数据集、流、文件、报表等数据资产。LineageEdge:资产之间的转换依赖。FieldMapping:字段级来源、目标和转换表达式。downstream/upstream:影响分析和来源追踪。roots/leaves:边界资产识别。has_cycle:血缘图环检测。to_json/to_dot:机器可读导出和图可视化导出。最小示例
运行
与已有项目的区别
MoonLineageKit 不是 ETL 引擎,不负责任务调度,也不是数据库或 tracing SDK。它只做上层系统可复用的“数据血缘语义层”:资产建模、依赖图分析、字段映射、环检测和导出。
项目边界
当前不连接数据库、不执行 SQL、不运行数据管道、不存储元数据。后续可以扩展 SQL 字段提取、版本差异影响分析、可视化布局和更多风险评分模型。