数据血缘技能Skill lineage

此技能用于生成任务依赖关系图(数据血缘),通过分析SQL变换文件中的依赖关系,可视化数据血缘,支持多种输出格式如DOT、SVG、PNG、JSON,便于数据工程和数据治理。关键词:数据血缘、任务依赖、SQL分析、数据可视化、数据工程。

数据工程 0 次安装 0 次浏览 更新于 3/15/2026

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>: 逗号分隔的对象类型列表,用于显示:tasktableviewunknown
  • --all: 在输出中包含所有任务(不仅是连接的任务)
  • --verbose: 向图表添加额外的表属性
  • --reportFormat <value>: 报告输出格式:consolejsonhtml

配置上下文

血缘通过分析 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

相关技能