一句话定义
表结构是一张表有哪些列、每列叫什么、每列是什么类型的描述。数据是行,表结构是列的说明书。同一个表结构可以配一万行数据,也可以配零行。
关键机制:节点在配置阶段只看得到表结构
你把一个节点拖到画布上连好线,它立刻就知道上游有哪些列、各是什么类型 – 但它还没有看到任何一行数据。数据要到执行时才流过来。
这个机制解释了三个平时觉得奇怪的现象:
- 有些错在没执行之前就报出来了。你在某个节点里选了「金额」列,回头把上游的 Column Filter 改成排除这一列 – 下游节点立刻变红,根本不用跑。因为它拿到的新表结构里已经没有这一列了。
- 有些错非要执行才炸。比如某一格是「N/A」转不成数字。这属于数据问题,表结构层面看不出来,只有数据真流过去才发现。
- 改配置会让下游一串节点退回黄灯。上游的表结构可能变了,下游此前算出来的结果不再可信,所以被清掉等着重跑。这不是数据丢了。
哪些操作会改变表结构
| 节点 | 表结构怎么变 |
|---|---|
| Column Filter 列筛选器 | 列变少。是下游报「找不到列」最常见的源头 |
| Column Renamer 列重命名 | 列名变。写死列名的下游立刻断 |
| GroupBy 分组汇总 | 列名被改写成带聚合方法的形式,未参与聚合的列直接消失 |
| Pivoting 数据透视 | 列数由数据决定。数据换一批多出一个取值,列数就变 |
| Joiner 表连接 | 两表重名列会被加后缀 |
| Row Filter 行筛选器 | 不变。它只动行 |
| Sorter 排序器 | 不变。它只动顺序 |
由此得出一条通用准则:下游不要写死列名。凡是列名可能随数据变化的地方(透视、聚合、关联之后),在下游用通配符或按类型选列,或者紧接着用 Column Renamer 把列名固定下来。这是让一条工作流能连着跑十二个月不出事的关键。
怎么看一张表的表结构
右键任意一个已执行的节点看输出表,最上面那一行是列名,每个列名旁边的小图标就是列类型。红叉状态的节点也能看到它的输入表结构 – 这正是排查「找不到列」时最有用的动作。
相关内容
| 页面 | 相关点 |
|---|---|
| Column Filter 列筛选器 | 新增列保留还是丢弃,决定表结构是否稳定 |
| Pivoting 数据透视 | 列数随数据变化,下游最容易断的地方 |
| GroupBy 分组汇总 | 输出列命名规则 |
| Joiner 表连接 | 重名列加后缀的处理 |

