Skip to content
On this page

数据清洗

基于 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 行

核心能力

  1. 声明式清洗流:产物为 CleanFlowversion: 1),含 nodes + edges;设计期存定义,生产侧按「调用时执行」消费(对接中)
  2. 五类算子组件库:源(表 / API)、清洗(空值、格式、去重、过滤、分支、字段拆分等)、合并(Join / Union)、聚合(分组 / 透视)、输出
  3. 本地管道执行runCleanFlowLocal 对全部节点类型做真实变换;设计器预览与 Mock POST /data-clean/preview 共用该引擎
  4. 有向无环连线:必须从输出锚点拖到输入锚点;禁止自连与成环;同对同出口不重复连边
  5. 条件分支双出口condition 节点右侧「是 / 否」两路,与「条件过滤」(丢弃行)语义不同
  6. 多源表引用(Demo):建模表、Dataset 原始表、Dataset 输出三类来源(列表为前端 / Mock 写死)

当前边界(务必知晓)

已具备尚未具备(后续版本)
拖拽编排、连线校验、删除快捷键发布状态切换 UI
十五种节点配置 UI + 本地变换真实建模 / Dataset 远程拉表
Mock `/data-clean/tablestable-rows
getFlow / setFlow 受控 API生产「调用时执行」服务端编排

推荐阅读

  1. 基础用法 — 接入演示、工具栏 / 画布操作、组件 API
  2. 数据模型CleanFlow / 节点 config / 工厂与导出
  3. 节点与算子 — 类别、端口、各类型配置字段与过滤运算符

演示入口

登录后打开侧栏 设计器 → 数据清洗(由 apps-designer 注册)。本地需装配 @grow-admin-rock/data-clean、对应 Cornerstone 模块,并启用 sample/mock/dataClean.ts