name: 血缘 description: 生成任务依赖关系图(数据血缘)
血缘技能
生成任务依赖关系图(数据血缘)的可视化图表。展示变换任务如何相互依赖以及依赖于源表。输出到DOT、SVG、PNG或JSON格式。
用法
starlake lineage [options]
选项
--output <value>: 输出文件路径(默认:控制台输出)--task <value>: 逗号分隔的任务列表,用于计算依赖关系(默认:所有)--reload: 在计算血缘前从磁盘重新加载YAML文件--viz: 生成DOT文件(Graphviz格式)--svg: 生成SVG图像--png: 生成PNG图像--json: 生成JSON输出--print: 以文本形式打印依赖关系到控制台--objects <value>: 逗号分隔的对象类型列表,用于显示:task、table、view、unknown--all: 在输出中包含所有任务(不仅是连接的任务)--verbose: 向图表添加额外的表属性--reportFormat <value>: 报告输出格式:console、json或html
配置上下文
血缘通过分析 metadata/transform/ 中的SQL变换文件来计算。依赖关系从SQL查询中的表引用中检测:
-- metadata/transform/kpi/order_summary.sql
-- 检测到的依赖关系:kpi.product_summary, kpi.revenue_summary
SELECT
ps.order_id,
ps.order_date,
rs.total_revenue,
ps.profit,
ps.total_units_sold
FROM
kpi.product_summary ps
JOIN kpi.revenue_summary rs ON ps.order_id = rs.order_id
血缘图显示:
- 源表(来自
load/)作为输入 - 变换任务(来自
transform/)作为处理步骤 - 任务之间的依赖关系作为有向边
示例
生成完整的血缘为SVG
starlake lineage --output lineage.svg --svg --all
为特定任务生成血缘
starlake lineage --task kpi.order_summary --svg --output order_lineage.svg
生成JSON血缘
starlake lineage --json --output lineage.json --all
以文本形式打印血缘
starlake lineage --print --all
生成DOT文件用于自定义渲染
starlake lineage --viz --output lineage.dot --all --verbose
按对象类型过滤
仅显示任务和表(排除视图):
starlake lineage --objects task,table --svg --output lineage.svg --all
生成PNG图像
starlake lineage --png --output lineage.png --all