kettle核心概念
- 可视化编程
kettle可以被归类为可视化编程语言,因为kettle可以使用图形化的方式定义复杂的ETL程序和工作流。
kettle里的图就是转换和作业两部分
可视化编程一直是kettle里的核心概念,他可以快速构建复杂的ETL作业和减低维护工作量。同时他隐藏了很多细节,业务人员也可以使用。 - 转换
转换(transformation)是ETL解决方案中最重要的部分,他处理抽取、转换、加载各种对数据的操作。
转换包含一个或多个步骤,如读文件、过滤数据行、数据清洗或将数据加载到数据库。
转换里的步骤其实是通过跳来连接的,跳定义了一个单向通道,允许数据从一个步骤向另一个步骤流动。 - 步骤
步骤就是控件,是转换的最基本组成部分。
步骤需要一个名字,且在转换内唯一。
每个步骤都会读写数据行。(生成记录步骤只会写数据)
步骤将数据写到与之相连的一个或多个输出跳,再传送到跳的另一端的步骤。 - 跳
跳就是两个步骤间带箭头的连线,跳定义了数据的数据通道。
跳实际上是两个步骤之间被称之为行集的数据行缓存。 - 数据行
数据以数据行的形式沿着步骤移动。一个数据行是零到多个字段的集合,字段包含下面几个数据类型:
- string:字符类型数据
- number:双精度浮点数
- integer:带符号长整型
- bignumber:任意精度数据
- date:带毫秒精度的日期时间值
- boolean:取值为true和false的布尔值
- binary:二进制字段可以包含图像、声音、视频及其他类型的二进制数据
- 元数据
每个步骤在输出数据行时都有对字段的描述,这种描述就是数据行的元数据,通常包含以下信息:
- 名称:行里的字段名应用是唯一的
- 数据类型:字段的数据类型
- 格式:数据显示的方式
- 长度:字符串的长度或者BigNumber类型的长度
- 精度:BigNumber数据类型的十进制精度
- 货币符号:¥
- 小数点符号:十进制数据的小数点格式
- 分组符号:数值类型数据的分组符号,不同文化背景下数据里的分组符号也是不同的
- 并行
跳的这种基于行集缓存的规则允许每个步骤都是由一个独立的线程运行,这样并发程度最高。
这以规则也允许数据以最小消耗内存的数据流的方式来处理。这样高并发低消耗的方式也是ETL工具的核心需求。