乐趣区

关于大数据:大数据-ETL-处理工具-Kettle-的核心概念

在理论工作中,能够应用 Kettle 的图形化的形式定义简单的 ETL 程序和工作流,如下图就是通过一系列的转换(Transformation)实现一个作业(Job)流程。

Kettle 外围概念

转换
转换(Transaformation)是 ETL 中最次要的局部,它解决抽取、转换、加载各种对数据行的操作。转换蕴含一个或多个步骤(Step),如上图中的「CSV 文件输出」、「Excel 输入」步骤,还包含过滤数据行、数据荡涤、数据去重或将数据加载到数据库等等。转换里的步骤通过跳(hop)来进行连贯,跳定义一个单向通道,容许数据从一个步骤向另一个步骤流动。

步骤(Step)

Kettle 外面的,Step 步骤是转换里的根本的组成部分,上篇疾速体验的案例中就存在两个步骤,「CSV 文件输出」和「Excel 输入」,一个步骤有如下几个要害个性:

步骤须要有一个名字,这个名字在转换范畴内惟一。

每个步骤都会读、写数据行(惟一例外是「生成记录」步骤,该步骤只写数据)。

步骤将数据写到与之相连的一个或多个输入跳,再传送到跳的另一端的步骤。

大多数的步骤都能够有多个输入跳,当有多个输入时,会弹出如下图所示的正告进行抉择散发还是复制。一个步骤的数据发送能够被设置为散发和复制,散发是指标步骤轮流接管记录,复制是所有的记录被同时发送到所有的指标步骤。

跳(Hop)

Kettle 外面的,跳(Hop),跳就是步骤之间带箭头的连线,跳定义了步骤之间的数据通路,如上图。在 Kettle 里,数据的单位是行,数据流就是数据行从一个步骤到另一个步骤的挪动,跳是两个步骤之间的被称之为行集的数据行缓存(行集的大小能够在转换的设置里定义,如下图)。当行集满了,向行集写数据的步骤将进行写入,直到行集里又有了空间;当行集空了,从行集读取数据的步骤进行读取,直到行集里又有可读的数据行。大数据培训

行集设置

数据行
在 Kettle 里,数据的单位是行,数据以数据行的模式沿着步骤挪动。一个数据行是零到多个字段的汇合,字段蕴含上面几种数据类型。

String:字符类型数据
Number: 双精度浮点数
Integer:带符号长整型(64 位)
BigNumber:任意精度数据
Date:带毫秒精度的日期工夫值
Boolean:取值为 true 和 false 的布尔值
Binary:二进制字段能够蕴含图像、声音、视频及其他类型的二进制数据
image-20210708013817323

同时,每个步骤在输入数据行时都有对字段的形容,这种形容就是数据行的元数据。通常蕴含上面一些信息:

名称:行里的字段名利用是惟一的
数据类型:字段的数据类型
格局:数据显示的形式,如 Integer 的 #、0.00
长度:字符串的长度或者 BigNumber 类型的长度
精度:BigNumber 数据类型的十进制精度
货币符号:¥
小数点符号:十进制数据的小数点格局
分组符号:数值类型数据的分组符号
步骤是并行的
这种基于行集缓存的规定(后面「跳(Hop)」节提到),容许每个步骤都是由一个独立的线程运行,这样并发水平最高。这一规定也容许数据以最小耗费内存的数据流的形式来解决(设置正当的行集大小)。在数据仓库建设过程中,常常要解决大量数据,所以这种并发低消耗内存的形式也是 ETL 工具的外围需要。

对于 Kettle 的转换,所有步骤都以并发形式执行,即:当转换启动后,所有步骤都同时启动,从它们的输出跳中读取数据,并把解决过的数据写到输出跳,直到输出跳里不再有数据,就停止步骤的运行。当所有的步骤都停止了,整个转换就停止了。

总结
Kettle 通过一系列的转换(Transformation)实现一个作业(Job)流程
通过理解 Kettle 的外围概念,得悉 Kettle 是通过「跳(Hop)」将数据流从一个步骤到另一个步骤的挪动,每个步骤都是由一个独立的线程运行,这样进步并发水平,但相比 Hadoop 生态挪动计算模型更加低廉
Kettle 自身由 Java 开发,须要配置正当的 JVM 参数。

退出移动版