☰
从数据同步到一块看板:DataY 如何打通全链路血缘
2026/11/4 4:23:03 网站建设 项目流程

从数据同步到一块看板:DataY 如何打通全链路血缘

摘要:维度建模、指标体系、分析看板,单看每个环节都不难。难的是把它们连成一条线:数据从哪来、指标怎么算、看板影响了谁。这篇文章聊聊数据链路为什么会断,以及 DataY 如何用一套元数据把血缘真正打通。


一、一个熟悉的周一早晨

“这个月 GMV 为什么掉了 8%?”

周会上,老板指着大屏问。

运营说:“看板口径上周调过。”
数仓说:“指标定义没动。”
开发说:“我只改了一个同步字段。”

三个人打开三套系统,查了一下午。最后发现:源库订单表的status新增了一个“已取消”枚举值,同步任务没做过滤,事实表把取消单也算了进去,指标跟着涨,看板跟着错。

问题不复杂,定位却花了很久。因为每个人只看得见自己那一段:

  • 开发看得见同步任务,看不见看板;
  • 数仓看得见表和模型,看不见指标被谁引用;
  • 运营看得见看板,却不知道这块看板背后连着什么。

数据链路是通的,但“关系”没有被记录。

这就是今天很多数据团队的真实处境:不是没有数据,也不是没有工具,而是工具之间各自为政,链路上的关系散落在配置、SQL、聊天记录和某个人的脑子里。


二、三个场景,暴露同一个问题

场景一:指标对不上

同一个“销售额”,财务、运营、老板三块看板三个数。

追问下去,往往是:

  • 一个算了退款,一个没算;
  • 一个按支付时间,一个按下单时间;
  • 一个来自订单明细,一个来自汇总表。

每个口径都能自圆其说,但没有一处统一记录“这个指标到底怎么算、依赖哪张表、被哪些看板使用”。

场景二:出问题只能猜

看板数字异常,第一反应是“数仓是不是又抽风了”。

于是从看板查到数据集,从数据集查到指标,从指标查到模型,再从模型翻回 ETL 任务和源表。每一步都要换一个系统、找一个人、问一句“这块是谁做的”。

链路越长,排查越像考古。

场景三:改一处,炸一片

源库要改字段类型,开发觉得“只是改个同步配置”。

上线后才发现:

  • 三个 ETL 任务读这张表;
  • 两个事实模型绑定了这个字段;
  • 五个指标引用了这个模型;
  • 还有两块对外看板在跑。

变更本身不可怕,看不见影响面才可怕。


三、根因:处理链路和分析链路,是两套系统

一条完整的数据链路,通常长这样:

业务库 → 同步 / CDC → 数仓物理表 → 维度建模 → 指标 → 数据集 → 分析看板 / 智能问数

但在大多数团队里,这条线被切成了四段:

第一刀:工具断。
数据集成在 A 工具,任务调度在 B 平台,BI 看板在 C 系统,指标口径在 Excel 或文档里。每个工具都有自己的元数据,彼此不认。

第二刀:语义断。
物理表叫dwd_trade_order_di,业务叫“成交订单”;维度关联藏在某段 SQL 的JOIN里;指标的业务限定写在报表备注里。机器看不懂业务,人也很难还原全貌。

第三刀:SQL 断。
ETL 里有手写 SQL,看板数据集里也有手写 SQL,中间还夹着临时表、INSERT INTO、CREATE TABLE AS。传统血缘工具只能看到调度 DAG,看不到 SQL 里真实的读写关系。

第四刀:组织断。
谁生产这张表、谁消费这个指标、出问题谁负责,没有一张共同的图。于是“数据治理”变成了开会,而不是系统能力。

结果就是:血缘不是没有,而是只有半截。

数仓内部有任务依赖,BI 内部有数据集依赖,但中间隔着一条河。排障的人站在岸边,只能靠猜。


四、什么才算“全链路血缘”

全链路血缘,不是画一张好看的图,而是让下面三个问题随时有答案:

  1. 它从哪来?这块看板上的数,经过哪些指标、模型、表和任务?
  2. 它影响了谁?改这张源表,会波及哪些指标和看板?
  3. 出问题找谁?链路上的每个节点,归属哪个系统、哪个团队?

落到 DataY 里,血缘可以从三个入口看:

入口一:从物理表反查

在数据源里打开一张表,血缘图会展示:

  • 当前表被哪些数据同步、ETL 任务读写;
  • 这张表绑定了哪些数据模型;
  • 模型关联了哪些维度、指标、衍生指标;
  • 最终被哪些分析看板使用。

ETL 还会继续向上展开来源表、向下展开输出表,一路追到源头和末端。

适合排障:从一张“可疑的表”出发,顺藤摸瓜。

入口二:从模型看上下游

在维度建模的模型详情里,血缘会展示:

  • 上游:物理表、数据同步任务、ETL 写入任务;
  • 模型关系:事实表关联了哪些维度,维度又被哪些事实表引用;
  • 下游:指标、衍生指标、分析看板。

适合治理:看清楚一个模型在整张数据资产图里的位置。

入口三:从指标看影响面

在指标详情里,血缘会展示:

  • 上游:衍生指标引用的上游指标、原子指标绑定的事实模型、事实模型关联的维度,以及再往上的物理表和同步 / ETL 任务;
  • 下游:引用当前指标的衍生指标,以及使用这些指标的分析看板。

图上的节点可以点击跳转:指标跳到指标详情,模型跳到维度建模,看板直接新窗口打开。

适合变更前评估:这个指标能不能改、改完谁会受影响。


五、DataY 的做法:一条链路,一套元数据

很多血缘方案是“事后外挂”:先有各种工具,再想办法采集元数据、拼一张图。

DataY 的思路不一样:链路上的每个环节,从一开始就长在同一套元数据上。

1. 数据集成:任务配置本身就是血缘

DataY 支持可视化拖拽 ETL 画布,也支持全量、增量、CDC 实时同步。关键是,任务的输入表、输出表、字段映射都写在配置里。

这意味着:同步任务天然知道“从哪张表来、到哪张表去”,不需要额外埋点,也不依赖人工登记。

2. 维度建模:把业务语义落到模型上

DataY 支持星型 / 雪花模型,提供三种维度类型:

  • 普通维度:客户、门店、商品;
  • 层级维度:品类的一级 / 二级 / 三级,自动生成levelN_id/levelN_name;
  • 时间维度:年 / 季 / 月 / 日粒度,可生成预置日期数据。

事实表通过外键字段关联维度,并指定时间周期字段。模型还可以物化建表,直接落到内嵌 DuckDB。

这一步的价值不只是“画 ER 图”,而是让后面的指标和看板有统一的业务语义底座:指标知道自己在哪张事实表上算,能沿哪些维度下钻。

3. 指标体系:口径只定义一次

DataY 把指标分成两类:

  • 原子指标:绑定 DWD 事实表,写计算公式(如SUM(amount)),可配置业务限定;
  • 衍生指标:用${指标编码}引用已有指标,组合出毛利率、客单价等复合口径。

指标有唯一编码、有公式、有业务限定,还能预览 SQL 核对口径。

更重要的是:指标查询面板和智能问数共用同一套指标定义。报表和 AI 不会各算各的。

4. 分析看板:消费关系可追踪

分析看板通过数据集消费指标:

  • 指标数据集直接引用指标;
  • SQL 数据集承载更灵活的分析;
  • 看板可以引用已保存的数据集。

于是“这块看板用了哪些指标、这些指标来自哪个模型”不再是黑盒,而是可以反查的链路。

5. 血缘引擎:把上面四段接起来

DataY 的血缘不是单独的一张表,而是把数据源、物理表、同步任务、ETL、模型、维度、指标、衍生指标、看板这些资产,用统一的 ID 串起来。

几个关键设计:

  • SQL 静态解析:识别 ETL 和看板数据集里的INSERT INTO、CREATE TABLE AS、UPDATE、MERGE等语句,解析出真实的读写表;
  • 解析失败有兜底:部分数据库方言无法被 SQL 解析器识别时,使用轻量扫描回退,并在血缘图中用虚线标记为推断关系;
  • 不执行 SQL:打开血缘不会给生产库增加查询压力,也不会因为一条慢 SQL 卡住页面;
  • 可跳转:血缘图不只是展示,节点可以跳到对应的模型、指标或看板,形成“发现关系 → 查看详情 → 继续追踪”的闭环。

六、把血缘用起来:四个真实动作

动作一:指标异常,按图定位

看板数字不对,从看板反查指标,再沿血缘追到事实模型、物理表、ETL 任务,最后落到源表。

这次不用问三个人,也不用翻聊天记录。链路摆在那里,异常出在哪一段,一目了然。

动作二:源表变更,先做影响分析

改字段之前,先从物理表反查:

  • 哪些同步 / ETL 任务在读它;
  • 哪些模型绑定了它;
  • 哪些指标、衍生指标、看板在下游。

影响面清楚了,再决定是兼容、双写,还是停掉某个下游。把“上线后才发现”变成“上线前就知道”。

动作三:口径审计,回答“这个数怎么算的”

从指标出发,看公式、看业务限定、看绑定的事实表、看关联的维度,再看他被哪些看板引用。

口径不再是某个人脑子里的经验,而是链路上可查、可追溯的资产。

动作四:新人接手,按图索骥

新人最怕的不是不会写 SQL,而是不知道“这张表能不能动、这个指标谁在用”。

血缘图就是数据资产的地图。沿着图走一遍,比翻十份交接文档更快。

额外收益:权限和 AI 也复用同一套语义

因为维度、指标、看板长在同一条链路上:

  • 数据权限可以复用维度体系,按维度成员控制可见范围;
  • 智能问数可以优先匹配已定义指标,而不是凭空生成计算逻辑;
  • MCP 接入后,AI Agent 也能按同一套模型和指标操作平台对象,减少“AI 编口径”。

七、边界:血缘要可信,而不是看起来全

全链路血缘有一个容易踩的坑:为了“图好看”,把不确定的关系也画成实线。

DataY 的选择是:

  • 血缘基于配置和 SQL静态分析,不执行查询;
  • 能解析的,画实线;
  • 解析不了的,用轻量扫描回退,画虚线,明确告诉你“这是推断关系”;
  • 动态生成的表名、存储过程等静态分析覆盖不到的场景,不假装 100% 确定。

血缘的价值在“可信”,不在“看起来全”。宁可标出不确定,也不给一个假的确定答案。


八、DataY 是什么

DataY 是一套开源、轻量的一体化数据平台,理念很简单:

数据平台可以很小,功能不打折。

传统数据平台往往需要 Hadoop、Spark、Flink、ClickHouse 一整套组件,几十台机器起步,运维门槛高。DataY 选择另一条路:

  • 一个 JAR,自研流批一体处理引擎,拒绝组件地狱;
  • 2 核 4G就能跑通数据集成 → 数据建模 → 数据开发 → 任务调度 → 数据应用;
  • 零依赖启动,10 分钟搭好开发环境;
  • 调度 master 与执行 worker 可分可合,单机和集群同一套代码;
  • 内嵌 DuckDB 作为高性能分析引擎,同时支持 Doris、ClickHouse 等外部分析引擎。

这里的“轻量”指的是运行资源门槛低,不是能力轻量。

DataY 由两块组成:

模块定位说明
DataY Core数据集成引擎轻量、可嵌入、可扩展、流批一体;JSON 定义任务、自动建表、CDC 实时同步;可脱离 Web 独立运行或嵌入 Java 应用
DataY Web可视化数据平台拖拽式任务设计、任务调度、维度建模、指标管理、智能问数

和本文这条实时链路相关的能力:

  • 🔌多数据源:MySQL / PostgreSQL / Oracle / SQL Server / SAP HANA / Doris / ClickHouse / DuckDB 等二十余种数据源;
  • 🔄四种 CDC:MySQL Binlog、PostgreSQL WAL、Oracle LogMiner、MongoDB Change Streams;
  • 🧩统一组件模型:Source / Operator / Sink,批流共用;
  • 🛡️断点续传:Binlog 位点、LSN、SCN、resumeToken 统一持久化;
  • 🏗️自动建表:跨库 DDL 转换,表不存在时自动创建;
  • 🚀Doris 流式写入:内置DorisStreamLoad,支持 insert / delete / overwrite;
  • 🧮流内计算:StreamSQL、Join、Lookup、DataTransform,同步路上顺手把数据加工好;
  • ⏰任务调度:Quartz Cron 精确到秒,DAG 拓扑编排,master/worker 可分离;
  • 🤖MCP Harness:把数据源、数据服务、ETL 任务、数据模型暴露给 AI Agent,让 Agent 直接操作平台对象;
  • 📦可嵌入:Core 可以作为 Java 库,嵌进你自己的应用。

快速开始:

gitclone https://gitee.com/yuyuejia/datay.gitcddatay mvn clean package-DskipTestsjava-jardatay-web/target/*.jar--DATAY_AI_API_KEY=sk-xxxxxxxxx# 浏览器打开 http://localhost:8080,默认账号 admin/admin

产品首页:http://datay.yuyuejia.com.cn/
在线体验:http://datay-demo.yuyuejia.com.cn/
项目地址:https://gitee.com/yuyuejia/datay
https://github.com/yuyuejia/datay

DataY 想做的,不是再堆一套大数据组件,而是把数据集成、建模、调度、数仓和问数,收进一个足够轻的平台上。


九、最后

血缘不是一张图。

它是数据团队对三个问题的共同答案:数据从哪来、到哪去、谁负责。

当维度建模、指标体系、分析看板长在同一条链路上,排障就不再靠猜,治理也不再靠人肉。

DataY 想做的,是把这条链路做短、做通、做得看得见。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询