数据清洗
基于 Vue Flow 的可视化数据清洗:用声明式 清洗流(CleanFlow) 把数据源、清洗算子、合并、聚合与输出串成有向图;流定义在设计期编排,调用时再执行(按需跑通整条管道)。设计器内可用 本地管道预览(runCleanFlowLocal + Demo / Mock 表数据)验证拓扑与算子效果。
| 项 | 说明 |
|---|---|
| 核心包 | @grow-admin-rock/data-clean |
| 源码目录 | DesignRock/rock-data-clean |
| 演示模块 | @grow-admin-cornerstone/apps-designer(侧栏菜单:设计器 → 数据清洗) |
| 主要组件 | GrowDataCleanDesigner |
| 当前范围 | 可视化编排 + 全量节点配置 UI + 本地管道预览 + Mock /data-clean/*;尚未对接真实建模 / Dataset API 与展示侧消费者绑定 |
与其它低代码工具的分工(完整链路见 低代码设计器):
text
数据库建模(PostgreSQL 物理模型)
↓ 已发布元数据
数据准备 Dataset(怎么算:Join + 公式度量)
↓ 原始表 / 查询输出(亦可直接引用建模表)
数据清洗 CleanFlow(怎么洗:源 → 算子 → 输出) ← 本模块
↓ 调用时执行(目标:报表 / 页面 / API,后续对接)
├─→ 低代码设计器(页面数据源)
└─→ 报表设计器(图表数据集)| 模块 | 定位 |
|---|---|
| 数据库建模 | 物理模型:表 / 字段 / 关系 |
| 数据准备 | 分析模型:选表、Join、公式度量、输出字段 |
| 数据清洗 | ETL 流:多源接入、行级清洗、合并与聚合、声明式输出 |
| 页面设计器 / 报表设计器 | 展示:消费清洗输出(经调用时执行,后续对接) |
与「数据准备」怎么选?
- 数据准备:面向分析查询——维度 / 公式度量、输出投影,结果写入页面
state再绑图表。 - 数据清洗:面向管道编排——空值、去重、过滤、分支、Join/Union、分组透视等算子图;适合可复用的清洗流水线。 二者可衔接:清洗流的「数据表」源可指向建模表、Dataset 原始表或 Dataset 输出。
界面分区
┌─────────────────────────────────────────────────────────────┐
│ 工具栏:清洗流名称 / 草稿|已发布 / 预览 / 保存 │
├──────────┬──────────────────────────────────────────────────┤
│ 组件库 │ Vue Flow 画布 │
│ 240px │ 节点、连线、缩放;选中后浮层配置面板 │
│ │ │
├──────────┴──────────────────────────────────────────────────┤
│ 底部:管道预览表(选中节点或全流至输出;含 warning / error) │
└─────────────────────────────────────────────────────────────┘| 区域 | 能力 |
|---|---|
| 工具栏 | 改名称;状态标签;预览(有选中 → 该节点;无选中 → 跑至输出);保存(抛出 save) |
| 组件库 | 按类别折叠:数据源 / 清洗 / 合并 / 聚合 / 输出;拖入画布 |
| 画布 | 拖放节点、右侧拖出接到左侧、一对多 / 多对一;Delete 删节点 / 边;仅允许一个输出节点 |
| 配置浮层 | 选中节点后在画布上浮出,编辑名称与节点专属配置(十五种均已有表单) |
| 预览条 | runCleanFlowLocal 按拓扑跑数(Demo / Mock 表),默认最多 50 行 |
核心能力
- 声明式清洗流:产物为
CleanFlow(version: 1),含nodes+edges;设计期存定义,生产侧按「调用时执行」消费(对接中) - 五类算子组件库:源(表 / API)、清洗(空值、格式、去重、过滤、分支、字段拆分等)、合并(Join / Union)、聚合(分组 / 透视)、输出
- 本地管道执行:
runCleanFlowLocal对全部节点类型做真实变换;设计器预览与 MockPOST /data-clean/preview共用该引擎 - 有向无环连线:必须从输出锚点拖到输入锚点;禁止自连与成环;同对同出口不重复连边
- 条件分支双出口:
condition节点右侧「是 / 否」两路,与「条件过滤」(丢弃行)语义不同 - 多源表引用(Demo):建模表、Dataset 原始表、Dataset 输出三类来源(列表为前端 / Mock 写死)
当前边界(务必知晓)
| 已具备 | 尚未具备(后续版本) |
|---|---|
| 拖拽编排、连线校验、删除快捷键 | 发布状态切换 UI |
| 十五种节点配置 UI + 本地变换 | 真实建模 / Dataset 远程拉表 |
| Mock `/data-clean/tables | table-rows |
getFlow / setFlow 受控 API | 生产「调用时执行」服务端编排 |
推荐阅读
演示入口
登录后打开侧栏 设计器 → 数据清洗(由 apps-designer 注册)。本地需装配 @grow-admin-rock/data-clean、对应 Cornerstone 模块,并启用 sample/mock/dataClean.ts。
Grow Admin