输出组件
Insert / Update
更新/插入组件
- Connection为数据库连接
- Target table为操作的表
- Commit size为批量提交的条数,为一个事务提交
- Don’t perform any updates为是否更新,选中则即使通过keys找到数据,依然不更新而直接插入,不选中则更新
- The key(s) to look up the value(s)为查询的条件
- Update fields为指定更新或插入的字段
Update
更新组件
- Use batch updates为是否批量提交,与Commit size搭配使用
- Skip lookup为是否先查询再决定是否更新,查询到有数据则更新,否则不更新;查询不到数据会报错,需与Ignore lookup failure?搭配使用以屏蔽错误
- Flag field(key found)为获知流数据在表中是否查询到(Y/N),自定义字段。与Ignore lookup failure?是一对
Delete
删除组件
- Comparator比较规则的BETWEEN方式和Stream field2,意思是在Stream field1和Stream field2这两个流字段,满足其中一个即可
Table output
表输出组件
- Truncate table为是否彻底毁灭表数据!!!,千万不要勾选!!!
- Specify database fields为指定需要入库的表字段,不选中则全部表字段入库,选中则指定表字段,与Get fields和Enter field mapping搭配使用
- Get fields为自动将表字段和流字段映射到一块,如果在前面的步骤,定义的流字段名字与表字段一致,那将非常爽地一步到位。如果不一致,可以通过Enter field mapping手动映射
- Enter field mapping为手动映射,Add添加映射,Delete删除映射,Guess自动映射
Synchronize after merge
与Merge Rows(diff)组件配合使用,有个标志字段:new、changed、deleted、identical,对应是新增、更新、删除、相等,identical标志的数据无须操作
- Operation fieldname为结果字段,根据此字段做对应操作
- Insert when value equal、Update when value equal、Delete when value equal为等于何种值时进行对应insert、update、delete操作
- Perform lookup为在更新/删除前,先查询数据是否存在(判断key和value),存在才更新/删除
Json output
- Fields为指定制作成json的所需流字段
- Operation为输出方式,支持输出到流、输出到文件、输出流和文件
- Json block name为json串的key,可以为空
- Nr rows in a block为按多少条数据分组,例如流有3条数据,此处定义为2,那么输出就有两条json串,json串1有2个数据,json串2则只有1个数据。为0则所有数据都生成在同个json串,对内存开销大, 需要注意
- Output Value为指定json串的流字段名称
- Compatibility mode为兼容模式,选中时json串为-{“data”:[{“id”:1},{“name”:“KETTLE-FLY-菜鸟教程第二章-jsonOutput”}]},不选中时json串为-{“data”:[{“id”:1,“name”:“KETTLE-FLY-菜鸟教程第二章-jsonOutput”}]}。可以观察到id和name不在同个对象内
总结
- Insert / Update组件支持更新或插入,根据key查询表是否存在该数据,同时判断该数据与Update fields是否都相等,相等则不更新
- Update组件的Skip lookup,选不选中区别很大,不选中:因为会先查询再决定是否更新,效率慢,选中:直接更新,效率快。体现在speed因素
- Table output组件切忌勾选Truncate table
- Json output组件支持输出流或文件,支持全输出或限定条数输出