Kettle 输入步骤

  • 1. 生成记录/自定义常量
  • 2. 获取系统信息
  • 3. 表输入
  • 4. 文本文件输入
  • 4.1 文本文件输入
  • 2. 固定宽度文件输入
  • 5. XML 文件输入
  • 5.1 Get data from XML
  • 5.2 XML input stream (StAX)
  • 6. Json 输入
  • 7. 其他输入步骤


1. 生成记录/自定义常量

  • 用于生成自定义的数据
  • 一般用于测试, 固定数据的输入.
  • 生成记录步骤每行的数据都相同.
  • 自定义数据常量步骤更灵活.

kettle 写入postgresql 很慢 kettle表输入_etl

kettle 写入postgresql 很慢 kettle表输入_etl_02


kettle 写入postgresql 很慢 kettle表输入_XML_03

2. 获取系统信息

获得各类系统信息, 常见的包括:

  • 转换开始时间.
  • 关键时间点信息.
  • 最多十个命令行参数.
  • 主机名 ip/进程号/虚拟机内存等.
  • 上一个作业的完成情况参数.

kettle 写入postgresql 很慢 kettle表输入_XML_04


kettle 写入postgresql 很慢 kettle表输入_文本文件_05

kettle 写入postgresql 很慢 kettle表输入_文本文件_06


kettle 写入postgresql 很慢 kettle表输入_etl_07

3. 表输入

执行 Select 语句, 从数据库中获取数据

  • 可以通过 ? 和 ${var} 方式使用变量
  • ? 变量要求前面步骤传来的参数的顺序一致
  • 延迟转换: rs.getBytes(int) vS. rs.getString(int)
  • 表输入的数据类型如何和 Kettle 数据类型对应: ResultSetMetaData

kettle 写入postgresql 很慢 kettle表输入_数据_08


kettle 写入postgresql 很慢 kettle表输入_etl_09

4. 文本文件输入

文本文件输入:

  • 处理有列分隔符 (限定符、逃逸字符) 的文本文件.
  • 功能选项丰富、有错误处理机制.

CSV 文件输入:

  • 简化了文本文件输入.
  • 通过 NIO、并行、延迟转换提高性能.

Excel 文件输入:

  • 限制 Excel 文件作为输入的文本文件输入.
  • 功能和文本文件输入一样.

固定宽度文件输入:

  • 列固定宽度的文件, 不用解析字符串, 性能好.

4.1 文本文件输入

文件选择方式:

  • 直接选择本地文件.
  • 从上个步骤传递文件名.
  • 文件名列表文件(傲飞版本).

内容:

  • 封闭符、分隔符的设置, 不可见字符输入.
  • 行头设置.

过滤:

  • 内容过滤, 选中/排除记录.

字段:

  • 自动识别字段类型, 不一定准确.

输入后面带有 菱形内 S 的都可以按 CTRL + ALT + SPACE 可以看见系统内的变量.

kettle 写入postgresql 很慢 kettle表输入_文本文件_10

kettle 写入postgresql 很慢 kettle表输入_XML_11

kettle 写入postgresql 很慢 kettle表输入_kettle_12


kettle 写入postgresql 很慢 kettle表输入_文本文件_13


kettle 写入postgresql 很慢 kettle表输入_kettle_14


kettle 写入postgresql 很慢 kettle表输入_kettle_15


kettle 写入postgresql 很慢 kettle表输入_文本文件_16

kettle 写入postgresql 很慢 kettle表输入_kettle_17


kettle 写入postgresql 很慢 kettle表输入_XML_18

kettle 写入postgresql 很慢 kettle表输入_kettle_19

Excel 和 CSV 操作相差无几.

2. 固定宽度文件输入

kettle 写入postgresql 很慢 kettle表输入_数据_20


kettle 写入postgresql 很慢 kettle表输入_数据_21

kettle 写入postgresql 很慢 kettle表输入_XML_22

5. XML 文件输入

5.1 Get data from XML

文件选择方式:

  • 直接选择本地文件.
  • 从上个步骤传递文件名.
  • XMLPath: 自动选择 XMLPath 循环路径.

字段:自动或手动设置:

  • 优点:使用简单.
  • 缺点: 不能使用大 XML 文件, 占用内存.

kettle 写入postgresql 很慢 kettle表输入_数据_23


kettle 写入postgresql 很慢 kettle表输入_kettle_24

kettle 写入postgresql 很慢 kettle表输入_文本文件_25

5.2 XML input stream (StAX)

优点:

  • 可用于处理大的XML文件.
  • 处理方式更灵活、效率更高.

缺点:

  • 使用较复杂, 要写脚本或 Java, 有一定使用难度.

例子中一共有 6 个, 看第二个.

kettle 写入postgresql 很慢 kettle表输入_数据_26

比较复杂, 可以看一看.

kettle 写入postgresql 很慢 kettle表输入_文本文件_27

6. Json 输入

kettle 写入postgresql 很慢 kettle表输入_kettle_28


kettle 写入postgresql 很慢 kettle表输入_XML_29

官方文档上显示的选择字段是好使的, 而我用例子实例的时候也是不好使的.

kettle 写入postgresql 很慢 kettle表输入_kettle_30

$.myData.x.y..z:

  1. myData 是 JSON 数据的跟结点.
  2. .
  3. ..

7. 其他输入步骤

Cube 文件输入
Access 输入
配置文件输入
SAP 输入
Oracle CDC 增量输入
消息队列输入
PDF 文件输入
搜索引擎结果输入