kettle组件-连接
Posted zja001
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kettle组件-连接相关的知识,希望对你有一定的参考价值。
1:合并记录
该步骤用于将两个不同来源的数据合并,这两个来源的数据分别为旧数据和新数据,该步骤将旧数据和新数据按照指定的关键字匹配,
比较,合并。
需要设置的参数:
旧数据来源:旧数据来源的步骤。
新数据来源:新数据来源的步骤。
标志字段:设置标志字段的名称,标志字段用于保存比较的结果,比较结果有下列几种:
identical:就数据和新数据一样。
changed:数据发生了变化。
new:新数据中有而就数据中没有的记录。
deleted:旧数据中有而新数据中没有的记录。
关键字段:用于定位两个数据源中的同一条记录。
比较字段:对于两个数据源中的同一条记录中,指定需要比较的字段。
合并后的数据将包括旧数据来源和新数据来源中的所有数据,对于变化的数据,使用新数据代替旧数据,同时在结果里用一个标识字段,
来指定新旧数据的比较结果。
注:
1:新旧数据需要事先按照关键字排序。
2:就数据和新数据要有相同的字段名称。
例如:
旧数据:
field1, field2
1, 1
2, 2
3, 3
4, 4
该步骤用于将两个不同来源的数据合并,这两个来源的数据分别为旧数据和新数据,该步骤将旧数据和新数据按照指定的关键字匹配,
比较,合并。
需要设置的参数:
旧数据来源:旧数据来源的步骤。
新数据来源:新数据来源的步骤。
标志字段:设置标志字段的名称,标志字段用于保存比较的结果,比较结果有下列几种:
identical:就数据和新数据一样。
changed:数据发生了变化。
new:新数据中有而就数据中没有的记录。
deleted:旧数据中有而新数据中没有的记录。
关键字段:用于定位两个数据源中的同一条记录。
比较字段:对于两个数据源中的同一条记录中,指定需要比较的字段。
合并后的数据将包括旧数据来源和新数据来源中的所有数据,对于变化的数据,使用新数据代替旧数据,同时在结果里用一个标识字段,
来指定新旧数据的比较结果。
注:
1:新旧数据需要事先按照关键字排序。
2:就数据和新数据要有相同的字段名称。
例如:
旧数据:
field1, field2
1, 1
2, 2
3, 3
4, 4
新数据
field1, field2
1, 1
2, 9
5, 5
field1, field2
1, 1
2, 9
5, 5
设置:标志字段是flag,关键字段是 field1, 比较字段是field2
合并后的数据
field1; field2; flag
1; 1; identical
2; 9; changed
3; 3; deleted
4; 4; deleted
5; 5; new
field1; field2; flag
1; 1; identical
2; 9; changed
3; 3; deleted
4; 4; deleted
5; 5; new
2:排序合并
对合并后的记录做排序,指定字段以及排序规则。
一般在排序记录后边一定要跟上一个排序合并。
https://blog.csdn.net/qq_22073849/article/details/65443846
对合并后的记录做排序,指定字段以及排序规则。
一般在排序记录后边一定要跟上一个排序合并。
https://blog.csdn.net/qq_22073849/article/details/65443846
3:记录关联(笛卡尔输出)
这个步骤允许组合输入流中的所有行(笛卡尔输出)
例:
步骤名称:在单一转换中必须唯一
临时目录:如果想输出更多的行,指定系统存储临时文件的目录名称。
临时文件前缀:生成的临时文件的前缀。
最大缓存大小:系统从临时文件读取数据的缓存大小。
读取的主要步骤:指定读取最多数据的步骤名称。
条件:可以指定复杂的条件限制输出行数。
按照旧ETL工具,需要将基础表A、表B、表C、表D,4张表的数据保存到本地数据库,然后,再通过SQL将4张表的数据关联到一
张结果表,过程共产生5张表,严重浪费数据库资源,以及当产生问题,增加维护难度。现使用kettle工具后,将不再需要将基础
表A、表B、表C、表D这4张表的数据保留到本地数据库,大大降低数据库的压力。
--------------------------先放
这个步骤允许组合输入流中的所有行(笛卡尔输出)
例:
步骤名称:在单一转换中必须唯一
临时目录:如果想输出更多的行,指定系统存储临时文件的目录名称。
临时文件前缀:生成的临时文件的前缀。
最大缓存大小:系统从临时文件读取数据的缓存大小。
读取的主要步骤:指定读取最多数据的步骤名称。
条件:可以指定复杂的条件限制输出行数。
按照旧ETL工具,需要将基础表A、表B、表C、表D,4张表的数据保存到本地数据库,然后,再通过SQL将4张表的数据关联到一
张结果表,过程共产生5张表,严重浪费数据库资源,以及当产生问题,增加维护难度。现使用kettle工具后,将不再需要将基础
表A、表B、表C、表D这4张表的数据保留到本地数据库,大大降低数据库的压力。
--------------------------先放
4:记录集连接
多表的join,可以直接用sql写入【表输入】组件,也可以借助kettle提供的【记录集连接】组件,使用kettle的记录集连接组件,首先
必须要两个输入数据集是有序的,并且是根据需要join的字段排序,可以借助kettle的【排序记录】组件。
步骤:
1:首先根据【排序记录】组件将两个数据集需要join的字段进行排序。
2:使用记录集连接组件对数据集进行排序。
注:
1:第一个步骤为连接的主表
2:连接类型分为,内链接,左外连接,右外连接,全外连接。
3:两个步骤的连接字段必须和排序记录中的名称一致。
其他:
1:步骤名称:在单一转换中名称必须唯一。
2:第一个步骤:指定要合并的第一个输入步骤。
3:第二个步骤:指定要合并的第二个输入步骤。
4:连接类型:选择合并可用的类型。
5:连接字段:指定要做关联的字段。
多表的join,可以直接用sql写入【表输入】组件,也可以借助kettle提供的【记录集连接】组件,使用kettle的记录集连接组件,首先
必须要两个输入数据集是有序的,并且是根据需要join的字段排序,可以借助kettle的【排序记录】组件。
步骤:
1:首先根据【排序记录】组件将两个数据集需要join的字段进行排序。
2:使用记录集连接组件对数据集进行排序。
注:
1:第一个步骤为连接的主表
2:连接类型分为,内链接,左外连接,右外连接,全外连接。
3:两个步骤的连接字段必须和排序记录中的名称一致。
其他:
1:步骤名称:在单一转换中名称必须唯一。
2:第一个步骤:指定要合并的第一个输入步骤。
3:第二个步骤:指定要合并的第二个输入步骤。
4:连接类型:选择合并可用的类型。
5:连接字段:指定要做关联的字段。
以上是关于kettle组件-连接的主要内容,如果未能解决你的问题,请参考以下文章