第三章:Transformation设计与开发


第三章:Transformation设计与开发

本章要回答的三个问题

  • 转换内部数据是怎么从一步流到下一步的

  • 有哪些输入、转换、输出步骤最常组合

  • 为什么有些步骤要放在特定顺序

为什么单独设这一章

原理讲完,这一章正式动手画转换。它是全册使用频率最高的一章,因为日常 80% 的工作就是拼转换。我们把输入、转换、输出分三节讲,再加一节输出,便于按图索骥。

读完能解决什么

读完后你能独立搭出一个完整的抽取-清洗-加载转换,知道每个常用步骤该往哪放,也能解释为什么顺序错了会出问题。

各节分工

节 关注点 交付能力
3.1 结构与数据流 看懂 hop 含义
3.2 输入步骤 接各种源
3.3 转换步骤 清洗加工
3.4 输出步骤 落各种目标

先决条件

需要第一章的组件认知和第二章的运行时概念。请打开 Spoon,准备跟着画一个读取订单表的小转换。

往下走到哪

转换解决「数据怎么洗」,第四章的作业解决「事情什么顺序做」,两者配合才是完整管道。

03-3ac5-fig01

本章常见误区

误区一:把所有清洗都堆在转换里,导致单转换几十个步骤、图成一团线团。我们建议单转换步骤数控制在二十以内,超出就拆子转换由作业串联。

误区二:忽视「输入—转换—输出」三段职责,把控制权逻辑(如判断文件是否存在)混进转换。控制流属于作业,转换只应对数据。

误区三:不写步骤备注。复杂逻辑的「为什么」只存在于原作者脑子里,半年后无人能改。备注讲因果,是评审重点。

与邻章边界

第三章教你怎么画转换,但「为什么某步骤慢」要去第六章,「数据从哪连进来」在第五章,「转换被哪个作业调度」在第四章。第三章给的是构件,第四章给的是编排。

速查清单

  • 结构:输入步骤 → 转换步骤 → 输出步骤,靠 hop 连成数据流
  • 输入:表输入、文本文件输入、JSON/XML 输入、HTTP 输入等
  • 转换:字段选择、值映射、过滤、排序、分组、JavaScript 等
  • 输出:表输出、插入/更新、文本文件输出等
  • 子转换:用映射步骤把一段逻辑封装复用

本章能产出的能力

读完你能独立画出一个完整的转换:从选定输入、安排转换步骤、到配置输出并验证行数一致。你还能判断某段逻辑该落在输入(下推 SQL)、转换(内存计算)还是输出(批量装载)哪一段,从而在源头控制复杂度。

为什么这一章不能跳过

跳过本章直接上项目,容易把转换画成一团线团:三十个步骤挤在一个图里,改一处牵动全身。我们坚持「输入—转换—输出」三段式,正是让复杂度可控。本章给的是构件,第四章给的是编排,没有构件编排就空谈。

本章最小上手练习

画一个「表输入→字段选择→值映射→表输出」的转换,每加一个步骤就预览一次,确认字段在变、状态在翻译。这个小练习把本章所有核心步骤串了一遍,也是全册最小可运行管道。

自测:你真的懂了吗

  • 能否独立画出含输入、转换、输出三段的转换
  • 能否判断某段逻辑该下推 SQL、留内存还是落批量输出
  • 能否说清单转换步骤数超过多少就该拆

本章在你项目里的落点

落地第一件事:画一个「表输入→字段选择→值映射→表输出」的最小转换,每加一步就预览一次,亲手感受小步预览如何把排错前移。第二件事:当步骤数逼近二十时主动拆子转换,用映射步骤封装复用。这两步让复杂度始终可控,是后续所有清洗的地基。

作者与出处
原作者:灏天文库
来源:平台策划编纂
整理人: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U