一句话定义
工作流是一组节点加上它们之间的连线,整体作为一个可执行单元保存下来。你保存的不是结果,是产生结果的那套过程。
这是 KNIME 最值钱的一点。在 Excel 里做一遍分析,留下的是一个结果文件,过程在你脑子里。在 KNIME 里做一遍,留下的是过程本身 – 下个月换批数据重跑,算法和上次完全一致,不依赖谁还记得当时怎么操作的。
工作流、工作区、节点的关系
| 层级 | 是什么 |
|---|---|
| 节点 | 一步操作。读文件、筛行、汇总,各是一个节点 |
| 工作流 | 一串连起来的节点,完成一件完整的事。比如「从明细出月度报表」 |
| 工作流组 | 装工作流的文件夹,用来分类 |
| 工作区 | KNIME 在你磁盘上的根目录,所有工作流都放在里面。启动时会让你选 |
左侧的资源管理面板显示的就是这套层级。它对应磁盘上真实存在的目录结构 – 工作流不是存在某个数据库里,就是一个个文件夹。
中间结果存在哪
节点执行完变绿灯,输出表能点开看 – 这些中间结果是写在磁盘上的,就存在该工作流的目录里,不是只在内存中。
由此有三个实际后果:
- 关掉 KNIME 再打开,绿灯还在,结果还能看。不需要重跑。
- 工作流目录会变得很大。处理过几百万行数据的工作流,目录几个 GB 很正常。交接前用重置清掉中间结果,体积会小很多。
- 导出时可以选带不带中间结果。发给同事一般不带 – 他要的是流程本身,带上只会让文件巨大。
交接一条工作流
-
导出.knwf 文件
右键工作流选导出,得到一个
.knwf文件,对方导入即可。导出时勾掉「包含中间结果」,文件会小很多。 -
对方打开时可能缺节点
你装了某个扩展而对方没装,那几个节点会变成灰色空壳。交接时顺带说明用到了哪些扩展,这一句话能省对方半小时。
-
路径要用相对的
绝对路径换台机器必然失效。把数据放在工作流目录下的子文件夹里,路径写成相对形式 – 验证办法是导出后在另一台机器上导入并直接执行。
常见误解
| 以为 | 实际 |
|---|---|
| 工作流保存的是数据 | 保存的是过程。数据可以带也可以不带 |
| 关掉就要重跑 | 中间结果在磁盘上,重开还在 |
| 改一个节点要从头跑 | 只有它和它下游需要重跑,上游的绿灯不受影响 |
| 工作流跑通了就等于结果对 | 跑通只说明没报错。数字对不对要靠对行数、对总计 |

