精华内容
下载资源
问答
  • kettle基本概念
    2021-04-17 00:29:04

    本章主要讲述kettle的基本概念,我们需要了解kettle工具本身的一些设计原则,以及kettle里的不同功能模块。首先讲述如何通过转换,以数据行的形式来处理数据,然后解释如何使用作业以工作流形式将转换连接起来。

    本章要讲述如下的kettle概念:

    数据库连接

    工具和常用程序

    资源库

    虚拟文件系统

    参数和变理

    可视化编程

    设计原则

    kettle工具在设计初始就考虑一些设计原则,这些原则也借鉴了以前使用过的其他一些etl工具积累下的经验和教训。先总结一下以前的经验,看我们能从中获得哪些有益的经验。

    易于开发:作为数据仓库和etl开发者,你只想把时间用在创建bi解决方案,任何于软件安装,配置的时间都是一种浪费。例如,为了创建数据库连接,很多和kettle类似的java工具都要求用户手工输入数据库驱动类名和jdbcurl连接串。尽管用户通过互联网都能搜索到这些信息,但这明显把用户的注意力转移到了技术方面而非业务方面,kettle尽量避免这类问题的发生。

    避免自定义开发:一般来说,etl工具要使用简单的事情更简单,使用复杂的事情成为可能。ETL工具提供了标准化的构建组件来实现etl开发人员不断重复的需求。当然可以通过java代码或java 脚本实现一些功能。

    所有功能都通过用户界面完成:对于这一黄金准则也有很少的几个例外(如kettle.properties和shared.xml文件就是两个例外),不能通过界面,要手工修改配置文件。如果不直接把所有功能通过界面的方式提供给用户,实现上就是在浪费开发人员的时间,也是在浪费用户的时间,专家级的etl用户还要去学习隐藏在界面以外的一些特性。在kettle里,etl元数据可以通过xml格式表现,或通资源库,或通过使用java api.无论etl元 数据是以哪种形式提供,都可以百分之百图用户来编辑。

    没有命名限制:ETL转换里有各种各样的名称,如数据库连接、转换、步骤、数据字段,作业等都要有一个名称。如果还要在命名时考虑一些限制(如长度、选择的字符),就会给工作带来一个麻烦,etl工具需要足够的智能化来处理etl开发人员设置的各种名称,最终etl解决方案应该可以尽可能地自描述。

    透明:如果etl工具需要你了解转换中某一部分工作如何完成的,那么这个etl工具就是不透明的。当然,如果想自已实现etl工具里某一种同样的功能,你就要确切地知道这一部分功能是如何完成的。不过允许用户看到etl过程中各部分的运行状态也是很重要的,这样可以加快开发速度、降低维护成本。

    灵活的数据通道:对etl开发者来说,创造性极端重要,创造性不但让你享受到工作的乐趣,而且能让你以最快的方式开发出etl方案。kettle从设计初始就在数据的发送、接收方式上尽可能灵活。kettle可以在文本文件、关系数据库等不同目标之间复制和分发数据,从不同数据源合并数据也是内核引擎的一部分,也同样很简单。

    只映射需要映射的字段:在一些etl工具经常可以看到数百行的输入和输出映射,对于维护人员来说这是一个噩梦。有etl开发过程中,字段要经常变动,这样的大量的映射也会增加维护成本。

    kettle的一个重要核心原则就是etl流程中所有未指定的字段都自动被传递到下一个组件。这个原则极大减少了维护成本。也就是说输入中的字段会自动出现在输出中,除非中间过程设置终止某个字段的传递 。

    kettle设计模块

    通常每个kettle工具都用不同的名字区分不同的组成部分,名字就是说明了这一组成部分的功能。或可以使用这一部分得到什么结果,kettle也不例外。本书解释了一些kettle特定的功能名称。通过本章可以了解如何在转换里逐行处理转换,如何在作业处理工作流,你也学习诸如数据类型和数据转换等细节内容。

    转换

    转换是etl解决方案中最主要的部分,它处理抽取,转换,加载各阶段对各种数据行的操作,转换包括一个或多个步骤如读取文件,过滤输出行、数据清洗或将数据加载到数据库。

    转换里的步骤通过跳来连接,跳定义一个单向通道,允许数据从一个步骤向另一个步骤流动。在kettle里,数据的单位是行,数据流就是数据行从一个步骤到另一个步骤移动。数据流的另一个同义词就是记录流。

    显示了一个转换例子,该转换从数据库表读取数据并写入到文本文件。

    除了步骤和跳,转换还包括了注释,注释是一个小的文本框,可以放转换流程图的任何位置,注释的主要目的的合作转换文档化。

    步骤:

    步骤在转换里的基本组成部分,它以图标的方式图形化展形,图2-1显示了两个步骤,表输入和文本文件输出,一个步骤有如下几个特性。

    步骤需要有一个名字,这个名字的转换范围内唯一

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

    步骤将数据写到与之相连一个或多个输出跳,再传送到另一端的步骤,对另一端步骤来说这个跳就是一个输入跳,步骤通过输入跳接收数据。

    大多数的步骤可以有多个输出跳,一个步骤的数据发送可以被 设置为轮流发送和复制发送。轮流发送是将数据行依次发给每一个输出跳,复制发送是将全部数据行发送给所有输出跳。

    在运行转换时,一个线程运行一个步骤和步骤的多份拷贝,所有步骤的线程几乎同时运行,数据行连续流过步骤之间的跳。

    除了上面这些标准的功能,每个步骤都都有明显的功能区别,这可以通过步骤类型体现。如图2-1中的表输入步骤就是向关系型数据库的表发出一个sql查询,并将得到的数据行写到它的输出跳。另一方面文本文件输出步骤从它的输入跳读取数据行,并将数据行写文件文件。

    转换的跳:跳就是步骤之间带箭头的连线,跳定义了步骤之间的数据通路。跳实际上是两个步骤之间的被 称为行集的数据行缓存(行集的大小可以在转换的设置里定义),当行集满了,向行集数据的步骤停止写入,直到行集里又有了空间,当行集空了,从行集读取数据的步骤停止读取,直到行集里又有可读的数据行。

    当创建新跳的时候,需要记住跳转换里不能循环,因为转换里每个步骤都依赖前一个步骤获取字段值 。

    并行

    跳的这个基于行集缓存的规则允许每个步骤由一个独立的线程运行,这样并发程序最高,这一规则也允许数据以最小消耗内存的方式来处理。在数据仓库里,我们经常需处理大量数据,所以这种并发低消耗方式来处理。在数据仓库里,我们经常要处理大量数据,所以这种并发低耗内存的方式也是etl工具的核心需求。

    对于kettle,不可能定义一个执行顺序,不可能也没有必要确定一个起点或终点。因为所有步骤都以并发方式执行,当转换启动后,所有步骤都同时启动,从它们的输入跳中读取数据,并把处理过的数据写到输出跳,直到输入跳里不再有数据,就中止步骤的运行。当所有的步骤都中止了,整个转换就中止了,也就是说,从功能角度来看,转换也有明确的起点和终点。

    转换启动后,从它们的输入跳中读取数据,并把处理过的数据写出输出跳,直到输入跳里不再有数据,就中止步骤的运行。当所有的步骤都中止了,整个转换就中止了,也就是说,从功能的角度来看,转换也有明确的起点和终点。例如显示的转换起点就是表输入步骤,终点就是文本文件输出步骤因为这个步骤将数据写到文件,而且后面不再有其他节点。

    上面说的如何定义转换的起点和终点看上去有点自相矛盾或截然相反,实际上并没有这个复杂,只是因为看问题的角度不同。你能想像到数据沿转换里的步骤移动,而形成一条从头到尾的数据通路。而另一方面,转换里的步骤几乎是同时启动的,所以不可能判断哪个步骤是第一个启动的步骤。

    如果想要一个任务沿着指定的顺序执行,那么就要使用本章后面讲的作业了。

    数据行

    数据以数据行的形式沿着步骤移动,一个数据行是零到多个字段的集合,字段包括几种数据类型。

    string:字符类型数据。

    number:双精度浮点数。

    integer:带符号长整形(64位)。

    bignubmer:任意精度数值。

    date:带毫秒精度的日期时间值。

    boolean:取值为true和false的布尔值 

    binary:二进制字段可以包括图形,声音,视步骤及其他类型的二进制数据。

    每个步骤在输出数据行时都有对字段的描述,这种描述就是数据行的元数据。通常包括下面一些信息:

    名称:行里的字段名应该是唯一的。

    数据类型:字段的数据类型

    长度:字符串的长度或bignumber类型长度。

    精度:bignumber数据类型的十进制精度。

    掩码:数据显示的格式。如果要把数值型(number,integer,bignumber)或日期类型转换成字符串类型就需要掩码,例如在图形界中预览数值型,日期型数据,或者把这些数据保存成文本或xml格式就需要用这种格式。

    小数点:十进制数据的小数点格式,不同文化背景下小数点符号是不同的,一般是点.或逗号,

    分组符号:数值类型数据的分组符号,不同文化背景下数字里的分组符号也是不同的。一般是逗号(,)或点. 或单引号(‘)。

    初始步骤:kettle在元数据里还记录了字段由哪个步骤创建的,可以让你快速定位字段由转换里的哪个步骤最后一次创建或修改。

    当设计转换时有几个数据类型的规则需要注意:行级里的所有行都应该有同样的数据结构。就是说,当从多个步骤向一个步骤写数据时,多个步骤输出的数据行应该有相同的结构。

    字段元数据不会在转换中发生。就是说,字符串不会自动截去长度以适应指定的长度,浮动数也不会自动取整以适应指定的精度。这些功能必须通过一些指定步骤来完成。

    默认情况下,空字符串被认为null相等。

    注意:空字符串与null是否相等,可以通过一个参数kettle_empty_string_differs_from_null来设置。

    数据转换:即可以显式地转换数据类型,如在字段选择步骤中直接选择要转换的数据类型,也可以隐式转换数据类型,如将数值类型数据写入数据库varchar类型字段。这两种形式数据转换实际是完全一样的,都是使用了数据对数据的描述。

    Date和string的转换:

    kettle内部的date类型里包括了足够的信息。可以用这些信息来表现任何毫秒精度的日期、时间值。如果要在String和date类型转换,唯一要指定就是日期格式掩码。关于日期和时间的掩码可以参考java api文档的date and time patterns部分。部分:http://java.sun.com/j2se/1.4.2/docs/api/text/SimpleDateFormat.html.这个文档列出所有可以用于编码的字母,不用于编码目的字母都应该包含的单引号里。

    例如:表2-1显示了一个例子日期2009年12月6日21点6分6秒321毫秒的几个字符串日期编码的例子。

    转换掩码结果
    yyyy/MM/dd HH:mm:ss.SSS2009/12/06 21:06:54.321
    h:mm s9:06 PM
    HH:mm:ss21:06:54
    M-d-yy12-6-09
      

    Numeric和String的转换

    Numeric数据(包括number,integer,bignumber)类型之间的转换用到了下面几种字段的元数据。

    转换掩码

    小数点符号

    分组符号

    贷币符号

    这些转换掩码只是决定一个文本字符串如何转换一个值。而数值本身实际 精度和舍入无关。java api中定义了所有可用的掩码符号和格式规划:参考 http://java.sun.com/j2se/1.4.2/docs/api/java/text/DecimalFormat.html

    转换掩码小数点符号分组符号结果
    123.5678#,###.###.,1,234.57
    1234.5668000,000.0000,.001.234,45
    1.9#.00;-#.00.,-1.9
    1200000;00000  12

    其他转换:

    描述
    booleanstring转换y或N,如果设置长度大于等于3,转换成true或false
    stringboolean字符串Y,true,yes,1都转换true,其它字符串转换为false(不区分大小写)
    Integer datedate integer整形和日期之间转换时,整形就是1970-01-01 00:00:00 GMT开始计算的毫秒值。例如2010-09-12可以转换为128411280000,反之亦然。

    作业:

    大多数etl项目都需要完成各种各样的维护工作。例如,当运行中发生错误,要做哪些操作,如何转换文件,验证数据表是否存在,等等,而这些操作要按照一些顺序完成。因为转换以并行方式执行。就需要一个可以串行执行作业处理这些操作。

    一个作业包括一个或作业项,这些作业项某种顺序来执行。作业执行顺序由作业项之间的跳和每个作业项的执行结果来决定的作业。

    作业项:

    作业项是作业的基本构成部分。如同转换的步骤,作业项也可以使用图标的方式图形化展示。但是,如果你再仔细观察。还是会发现作业一些地方不同于步骤。

    新步骤的名字应该是唯一的,但作业项可以有影考贝。这样可以把一个作业项放在多个不同的位置。这些影子拷贝里的信息都是相同的,编辑了一份拷贝,其他拷贝会随之修改。

    在作业项之间可以传递一个结果对象,这个结果对象里包含了数据行,它们不是以流的方式来传递的。而是等一个作业项执行完了,再传递下一个作业项。

    默认情况下,所有的作业项都是以串行方式执行的,只是在特殊的情况下,以并行方式执行。

    因为作业顺序作业项,所以必须定义一个起点。有一个叫开始的作业项就定义了这个起点。一个作业只能定义一个开始作业项。

    作业跳:

    作业的跳是作业项之间的连接线,它定义了作业的执行路径。作业里每个作业项的不同运行结果决定了作业的不同执行路径。对作业项的运行结果的判断如下:

    无条件执行,不论上一个作业执行成功还是失败,下一个作业项都会执行。这是一种黑色的连接线。上面有一个锁的图标,如图2-2所示。

    当运行结果为真时执行。当上一个作业项执行结果为真时,执行下一个作业项。通常在需要无错误执行的情况下使用。这是一种绿色的连接线,上面有一个对钩号的图标。

    当运行结果为假时执行:当一个作业项的执行结果为假时或没有成功执行时,执行下一个作业项,这是一种红色的连接线,上面有一个红色的停止图标。

    在作业项连接的右键菜单上和跳的小图标的选项里都可以设置上这几种判断方式。

    多路径和回溯

    kettle使用一种回溯算法来执行作业里的所有的作业项,而且所以项的运行结果(真或假)也决定执行路径。回溯算法是:假设执行到了图里的一条路径的某个节点时,要依次这个节点所有子路径。直到没有再可以执行的子路径。就返回该节点的上一节点,再反复这个过程。

    A\B\C三个作业项的执行顺序如下:

    首先开始作业项搜索所有下一节点作业项,找到A和C

    执行A

    搜索A后面的作业业,发现b

    执行b

    搜索b后面的,没有找到任何作业项

    回到a,也没发现其他作业项

    回到start ,发现另一个执行的作业项c

    执行c

    搜索c后同的作业项,没有找到任可作业项

    回到start,没有找到任何作业项。

    作业结束。

    这种回溯算法有两个重要特征:

    因为作业可以嵌套的,除了作业项有运行结果,作业也需要一个运行结果,因为一个作业可以是另一个作业的作业项。

    一个作业的运行结果,来自于最后一个执行的作业项。上面的例子里例子的执行顺序可以是abc,也可以cab,所以不能保证作业项c的结果就是作业的结果。

    当你在作业里面创建一个循环,作业项就会被执行多次,作业项的多次运行结果会保存在同存里,以便以后使用。

    并行执行:

    有时候需要将作业项并行执行,这种并行执行也可以的,一个作业项可以并发的方式执行它后面的所有作业项:

    并行执行的作业项

    在这个例子里,作业项a和c几乎同时启动,需要注意的是,如果a和c顺序的多个作业项。那么两组作业项也并行执行的。

    两组同时执行的作业项:

    在这个例子里,作业项【A,B,LOg1】和【C、D、Cleanup Tables】是在两个线程里并行执行的。通过常设计者也是希望以这样的方式执行,设计者希望一部作业并行执行。然后再串行执行其他作业项,这就需要把并行的作业项放到一个新的作业项。然后作为另一个作业的作业项。

    并行加载作业作为另一个作业的项

    作业项结果:

    作业执行结果不仅决定了作业执行路径,而且还向下一个作业项传递了一个结果对象。结果对象包括了一下面一些信息。

    一组数据行:在转换里使用复制行到结果,步骤可以设置这组数据行,与之对应,使用从结果获取行,步骤可以获取 这组数据行。在一些作业项,如shell

    转换或作业的元数据:

    转换和作业是kettle的核心组成部分,以前曾经讨论过,它们可以用xml格式来表示,可以保存存资源库。可以用java api的形式来表示。它们的这些表示试,都依赖于下面的这些元数据。

    名字:转换或作业的名字,尽管名字不是必要的,但应该使用名字,不论是在一个etl工程内还是在多个etl工程内,都应尽可能使用唯一名字。这样在远程执行时或多个etl工程共用一个资源库时都会有帮助。

    文件名:转换或作业都在文件名或url,只有当转换或作业是以xml文件的形式存储时,才需要设置这个属性,当资源库加载时,不必设置这个属性。

    目录:这个目录,是指在kettle资源库的目录,当转换或作业保存资源库里设置。当保存为xml文件时,不用设置。

    描述:这是一个可选属性,用来设置作业或转换的简短的描述信息。如果使用了资源库,这个描述属性会出现资源库浏览窗口的文件列表中。

    扩展描述:也是一个可选属性,用来设置作业或转换的详细的描述信息。

    数据库连接:

    kettle里的连接和作业使用数据库连接来连接到关系型数据库。kettle数据库连接实际是数据库连接的描述。也就是建立实际连接需要的参数。实际连接只是在运行才建立,定义一个kettle的数据库连接并不真正打开一个数据库的连接。

    不幸的是各个连接库的行为都不是完全相同的。

    在数据库连接窗口中主要设置下面3个选项:

    连接名称:设置一个在作业或转换范围内唯一的名称。

    连接类型:从数据库列表中选择要连接的数据库类型。根据选中数据库的类型不同,要设置的访问方式和连接参数设置也不同,某些kettle步骤或作业项生成sql语句时使用的方言也不同。

    访问方式:在列表里可以选择的访问方式,一般都使用jdbc连接。不过也可也可以odbc,jndi数据源,oracle的oci连接,使用oracle 命名服各。

    根据选择的数据库不同,右侧面板的连接参数设置也不同,例如oracle数据可以设置表空间选项.

    一般常用的连接参数如下:

    主机名:数据库服务器的主机名或ip地址

    数据库名:要访问的数据库名。

    端口号:默认是选中的数据库服务器的默认端口号。

    用户名和密码:数据库服务器的用户名和密码。

    特殊选项:

    对大多数据用户来说,使用数据库连接窗口的一般标签的足够了。但偶尔也可能需要设置对话框高级标签的内容。

    支持boolean数据类型:对boolean数据类型,大多数数据库的处理方式都不相同。许多数据库根本不支持boolean类型。所以默认情况下,kettle使用一个字段的字段(char(1))的不同值(Y或N)来代替boolean字段,如果选中了这个选项,kettle就会支持boolean类型的数据库生成正确的sql的言。

    双引号分割标识符:强迫sql语句里的所有标识符(列名,表名)加双引号,一般用于区分大水上写的数据库,或者你怀疑kettle里定义的关键字列表和实际数据库不一致。

    强制转为小写:将所有标识符(表名和列名)转为小写。

    强制转为大写:将所有标识符(表名和列名)转为大写。

    默认模式名:当不明确指定模式名,默认的模式名。

    连接后要执行的sql语句:一般用于建立连接后,修改某此参数,如Session级的变量或调试信息等。

    关系型数据库的力量:

    关系型数据库是一种高级的软件,它在数据的连接、合并、排序等方面有着突出的优势。和基于流的数据处理引擎,如kettle相比,它有一大优点,数据库使用的数据都存储在磁盘中,当关系型数库进行连接或排序操作时,只要使用这些数据的引用即可,而不用这些数据加载内存里,这就体现出明显的性能方面的优抛。但缺点也是很明显的,把数据加载到关系型数据库里也会产生性能的瓶颈。

    对etl开发者而言,要尽可能利用数据库自身的性能优势,来完成连接或排序这样的操作,如数据的来源不同,也应该先在数据库里排序,以便在etl里做连接操作。

    连接和事务。
    数据库连接只在执行作业或转换时使用。在作业里,每一个作业项都打开和关闭一个独立的数据库连接。转换也是如此,但是因为转换的步骤是并行执行的,每个步骤打开一个独立的数据库开始一个事务。尽管这样的在很多情况下会提高性能,但当不同步骤更新同一个表时,也会带锁和参照完整性问题。

    为解决打开多个连接产生的问题,kettle可以在一个事务中完成转换。转换序曲置对话框的选项转换放在数据库事务中,可以完成此功能。当选中了这个选项,所有步骤里的数据库连接都使用同一个数据库连接。只有所有步骤都正确,转换正确执行,才能提交事务,否则回流事务。

    表数据库集群的表输入

    在上图中,同样的一个查询会被执行五遍,每个数据分区执行一遍,每个数据分区执行一遍。在kettle里,所有使用数据库连接的步骤都可以使用分区特性。例如,表输出步骤在分区模式下会把不同数据输出到不同的数据分区。

    工具:kettle里有不同工具,用于etl不同阶段,主要工具如下:

    spoon 图形界面工具,快速设计和维护复杂etl工作流。

    kitchen:运行作业的命令工具。

    pan:运行转换的命令行工具。

    carte:轻量级Web服务器,用来远程执行转换或作业,一个运行有cart进程的机器可以作为从服务器,从服务器是kettle集群的一部分。

    资源库:

    当你的etl项目规模比较大,有很多etl开发人员一起工作,开发人员之间的合作就显得很重要,kettle以插件的方式灵活地定义不同种类的资源库,但不论是哪种资源库,它们基本要素是相同的,这些资源库使用相同的用户界面,存储相同的元数据。目前有3种常见资源库: 数据库资源库、pentaho资源库和文件资源库。

    无论资源库都应该具有下面的特性:

    中央存储:在一个中心位置存储所有的转换和作业。etl用户可以访问工程的最新视图。

    文件加锁:防止多个用户同时修改。

    修订管理:一个理想的资源库可惟存储一个转换或作业的所有历史版本,以便将来参考,你可以打开历史版本,并查看变更日志。

    依赖完整性检查:检查资源库转换或作业之间的相互依赖关系,可以确保资源库里没有丢失任何链接,没有丢失任务转换,作业或数据库连接。

    安全性:安全性可以未授权的用户修改或执行etl作业。

    引用:重新组织转换、作业、或简单重新命名,都是etl开发人员的常见工作,要做好这些工作,需要完整的转换或作业的引用。

     

     

     

     

     

     

    更多相关内容
  • kettle详解(数据抽取、转换、装载) 一:下载路径 当你要学习一个工具时,往往一开始就找不到下载路径,也不知道是为什么,连个官网都找不到,最后还是问的别人要的路径,做程序好心酸。 ... 二:学习 ...

    kettle详解(数据抽取、转换、装载)

    一:下载路径

    当你要学习一个工具时,往往一开始就找不到下载路径,也不知道是为什么,连个官网都找不到,最后还是问的别人要的路径,做程序好心酸。

    http://community.pentaho.com/projects/data-integration     下载路径

    二:学习

    kettle是什么?

    ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少。kettle支持图形化的GUI设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面有着比较稳定的表现,其中最主要的我们通过熟练的应用它,减少了非常多的研发工作量,提高了我们的工作效率.

     

    Kettle是一款国外开源的ETL工具,纯Java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。

    Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。

    Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。

    Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

    为什么使用kettle?

     

    这里简单概括一下几种具体的应用场景,按网络环境划分主要包括:

    • 表视图模式:这种情况我们经常遇到,就是在同一网络环境下,我们对各种数据源的表数据进行抽取、过滤、清洗等,例如历史数据同步、异构系统数据交互、数据对称发布或备份等都归属于这个模式;传统的实现方式一般都要进行研发(一小部分例如两个相同表结构的表之间的数据同步,如果sqlserver数据库可以通过发布/订阅实现),涉及到一些复杂的一些业务逻辑如果我们研发出来还容易出各种bug;

    • 前置机模式:这是一种典型的数据交换应用场景,数据交换的双方A和B网络不通,但是A和B都可以和前置机C连接,一般的情况是双方约定好前置机的数据结构,这个结构跟A和B的数据结构基本上是不一致的,这样我们就需要把应用上的数据按照数据标准推送到前置机上,这个研发工作量还是比较大的;

    • 文件模式: 数据交互的双方A和B是完全的物理隔离,这样就只能通过以文件的方式来进行数据交互了,例如XML格式,在应用A中我们开发一个接口用来生成标准格式的XML,然后用优盘或者别的介质在某一时间把XML数据拷贝之后,然后接入到应用B上,应用B上在按照标准接口解析相应的文件把数据接收过来;

    综上3种模式如果我们都用传统的模式无疑工作量是巨大的,那么怎么做才能更高效更节省时间又不容易出错呢?答案是我们可以用一下Kettle-_-!

    使用kettle需要了解的知识?

     

    ž1 Kettle使用

    Kettle提供了资源库方式的方式来整合所有的工作,但是因为资源库移植不方便,所以我们选择没有资源库;

    1)创建一个新的transformation,点击 保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestTrans,kettle默认transformation文件保存后后缀名为ktr;

    2)创建一个新的job,点击 保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestJob,kettle默认job文件保存后后缀名为kjb;

    2 组件树介绍

     

     

     

    Main Tree菜单列出的是一个transformation中基本的属性,可以通过各个节点来查看。

     

    DB连接:显示当前transformation中的数据库连接,每一个transformation的数据库连接都需要单独配置。

     

    Steps:一个transformation中应用到的环节列表

     

    Hops:一个transformation中应用到的节点连接列表                            

     

    Core Objects菜单列出的是transformation中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加。

     

    Input:输入环节

    Output:输出环节

    Lookup:查询环节

    Transform:转化环节

    Joins:连接环节

    Scripting:脚本环节

     

     

     

     

     

     

     

          

    4.3 Transformation转换介绍

    ž每一个环节可以通过鼠标拖动来将环节添加到主窗口中。

    ž并可通过shift+鼠标拖动,实现环节之间的连接。

    ž转换常用环节介绍

    类别

    环节名称

    功能说明

    Input

    文本文件输入

    从本地文本文件输入数据

    表输入

    从数据库表中输入数据

    获取系统信息

    读取系统信息输入数据

    Output

    文本文件输出

    将处理结果输出到文本文件

    表输出

    将处理结果输出到数据库表

    插入/更新

    根据处理结果对数据库表机型插入更新,如果数据库中不存在相关记录则插入,否则为更新。会根据查询条件中字段进行判断

    更新

    根据处理结果对数据库进行更新,若需要更新的数据在数据库表中无记录,则会报错停止

    删除

    根据处理结果对数据库记录进行删除,若需要删除的数据在数据库表中无记录,则会报错停止

    Lookup

    数据库查询

    根据设定的查询条件,对目标表进行查询,返回需要的结果字段

    流查询

    将目标表读取到内存,通过查询条件对内存中数据集进行查询

    调用DB存储过程

    调用数据库存储过程

    Transform

    字段选择

    选择需要的字段,过滤掉不要的字段,也可做数据库字段对应

    过滤记录

    根据条件对记录进行分类

    排序记录

    将数据根据某以条件,进行排序

    空操作

    无操作

    增加常量

    增加需要的常量字段

    Scripting

    Modified Java Script Value

    扩展功能,编写JavaScript脚本,对数据进行相应处理

    Mapping

    映射(子转换)

    数据映射

    Job

    Sat Variables

    设置环境变量

    Get Variables

    获取环境变量

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    4.3 Job任务介绍

     

     

    Main Tree菜单列出的是一个Job中基本的属性,可以通过各个节点来查看。

     

    DB连接:显示当前Job中的数据库连接,每一个Job的数据库连接都需要单独配置。

     

    Job entries:一个Job中引用的环节列表

             

    Job entries菜单列出的是Job中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加。

     

    每一个环节可以通过鼠标拖动来将环节添加到主窗口中。

     

    并可通过shift+鼠标拖动,实现环节之间的连接。

          

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    ž常用环节介绍

    类别

    环节名称

    功能说明

    Job entries

    START

    开始

    DUMMY

    结束

    Transformation

    引用Transformation流程

    Job

    引用Job流程

    Shell

    调用Shell脚本

    SQL

    执行sql语句

    FTP

    通过FTP下载

    Table exists

    检查目标表是否存在,返回布尔值

    File exists

    检查文件是否存在,返回布尔值

    Javascript

    执行JavaScript脚本

    Create file

    创建文件

    Delete file

    删除文件

    Wait for file

    等待文件,文件出现后继续下一个环节

    File Compare

    文件比较,返回布尔值

    Wait for

    等待时间,设定一段时间,kettle流程处于等待状态

    Zip file

    压缩文件为ZIP包

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    怎么使用kettle?

    一:配置环境

     

    1、安装java JDK

    1)首先到官网上下载对应JDK包,JDK1.5或以上版本就行;

    2)安装JDK;

    3)配置环境变量,附配置方式:

    安装完成后,还要对它进行相关的配置才可以使用,先来设置一些环境变量,对于Java来说,最需要设置的环境变量是系统路径变量path。

    (1)要打开环境变量的设置窗口。右击“我的电脑”,在弹出的快捷菜单中选择“属性”选项,进入“系统属性”对话框,如图所示。选择“高级”标签,进入“高级”选项卡,再单击“环境变量”按钮,进入“环境变量”对话框,如图所示:

    (2)在“Administrator的用户变量”列表框中,选择变量PATH,待其所在行变高亮后,单击“编辑”按钮,如图所示。

    (3)在弹出的“编辑系统变量”对话框中,将JDK安装路径下的bin目录路径设置到Path变量中,如图所示。

    编辑完后,单击“确定”按钮,进行保存,环境变量Path的设置就正式完成。

    注意:设置Path变量的路径,必须是JDK安装目录中的bin目录,有时候在JDK安装目录的同一层会有JRE的安装目录,因此请谨慎选取相关路径,避免将路径设置成JRE目录下的bin目录。

    3、2 测试JDK配置是否成功

    设置好环境变量后,就可以对刚设置好的变量进行测试,并检测Java是否可以运行。

    (1)单击“开始”按钮,选择“运行”选项,在“运行”对话框中输入cmd命令。

    (2)之后单击“确定”按钮,打开命令行窗口。

    (3)在光标处输入:javac命令,按下Enter键执行,即可看到测试结果

    3、3 运行Kettle

    ž进入到Kettle目录,如果Kettle部署在windows环境下,双击运行spoon.bat或Kettle.exe文件,出现如下界面:

    这样配置环境这一块基本上就完成了。

    二、练习

     

    功能简述:数据库TestA中的UserA表到数据库TestB的UserB表;

    实现流程:建立一个转换和一个作业Job;

     

    进入到Kettle目录,如果Kettle部署在windows环境下,双击运行spoon.bat或Kettle.exe文件。

    不输入密码进入,可以看到主对象树和核心对象.

    新建一个转换后,看到转换下有DB连接,Steps,Hops,数据库分区schemas,子服务器,kettle集群schemas

     

     

    A:建立一个转换:打开Kettle.exe,选择没有资源库,进入主界面,新建一个转换,转换的后缀名为ktr,转换建立的步骤如下:

    步骤1建立DB连接:创建DB连接,选择新建DB连接,如下图,我们输入相应的数据库配置信息之后点击Test按钮测试是否配置正确!

    填入信息,最后要起连接名testA,先点击test测试连接,如果报错,可能是数据库信息填的不对。

    选择连接的数据库类型 Oracle/MySQL/

    Host Name:10.8.200.105/localhost

    Database Name:lifedev

    Port Number:1521

    User Name:...

    password:...

    点击test进行连接测试。

    建立好DB连接后,会出现子节点testA、testB

    步骤2:建立步骤和步骤关系,

    点击核心对象,我们从步骤树输入中选择【表输入】,如下图,这样拖拽一个表输入之后,我们双击表输入之后,我们自己可以随意写一个sql语句,这个语句表示可以在这个库中随意组合,只要sql语句没有错误即可,我这里只是最简单的把TestA中的所有数据查出来,语句为select * from LXX_KETTLE_TESTA 

     

     

     

    接下来我们创建另外一个步骤输出中的【插入/ 更新】,然后在【表输入】上同时按住shift键和鼠标左键滑向【插入/ 更新】,这样建立两个步骤之间的连接,【插入/ 更新】执行的逻辑是如果UserA表中的记录在UserB中不存在那么就插入,如果存在就更新,如下图,在插入更新中我们可以做一些关键条件和字段映射,这里我们是最简单的!点击保存,把我们建立的转换保存一下。

    建立好转换之后,我们可以直接运行这个转换,检查一下是否有错,如图,有错误都会在下面的控制台上输出。

    点击运行按钮可选择本地远程或远程执行或集群方式执行,我选择本地执行,之后提示文件已经改变,在运行转换前请先保存它,你想现在保存这个转换吗?可以选择保存下来。

     

    步骤三:如果我们需要让这个转换定时执行怎么办呢,那么我们需要建立一个作业job

    见下图,在简单表同步这个转换中,我们把在A步骤中建立的ktl配置上,注意路径的正确性;

    这样我们在【Start】步骤上面双击,如图:

    这样这个作业就制定好了,点击保存之后,我们就可以在图形化界面上点击开始执行了!

     

    实例2:全面进阶的一个稍微复杂的例子

    ž根据客户,帐户,交易表中的数据,生成对应的数据文件,将数据文件可以导入到对应表中,并且可以用job来调用整个流程。

    ž目标:

    ž1),提交对应的Kettle文件

    ž2),Kettle流程可以正确执行,不报错

    ž3),对应的数据文件生成并格式无误,对应表中有数据并格式无误

    ž说明:

    ž源表:数据库etltest中存在3张表:

    目标表:etltest中一张表

     

    Kettle具体解决方式,步骤比较繁琐,大家可以直接到下载中下载Demo数据库文件和ktr、kjb来实战测试,这样是最好的,下面的操作仅供参考,转换预览图如下:

    操作步骤:
    在EtltestTrans页面下,点击左侧的【Core Objects】,点击【Input】,选中【表
    输入】,拖动到主窗口释放鼠标。
    双击【表输入】图标
    数据库连接选择刚刚创建好的etltest数据库连接,在主窗口写入对应的查询
    语句
    Select * from trade ,如下图:

    点击确定完成。
    点击核心对象->查询,选中【数据库查询】,拖动到主窗口释放鼠标。
    按住shift键,用鼠标点中刚才创建的【表输入】,拖动到【数据库查询】上,
    则建立了两个环节之间的连接,如图:

    双击【数据库查询】

    步骤名称写入account 表查询,数据库连接选择刚刚创建好的etltest 数据库
    连接,查询的表写入account,查询所需的关键字中,表字段写入acctno,比较
    操作符写入“=”,字段1写入acctno。
    在查询表返回的值里面写入custno,确定完成,如下图:


    同上,再创建一个数据库查询,命名为cust表查询,查询的表写入cust,查
    询所需的关键字写入custno=custno,查询表返回的值写入custname,custid,
    custtype,如下图:


    点击核心对象->Flow下过滤记录,拖动到主窗口释放鼠标。
    点击核心对象->脚本,选中两个【Modified Java Script Value】,拖动到主窗
    口释放鼠标。分别双击打开,重命名为“对公类型修改”和“对私类型修改”。
    同时,分别创建【过滤记录】和【对公类型修改】,【对私类型修改】的连接。
    双击过滤记录打开。
    第一个<field>里面选择custtype,点击<value>,在Enter value 里面写入1,
    确定,如图:


    在发送true数据给步骤里,选择【对私类型修改】,在发送false数据给步骤
    里,选择【对公类型修改】,确定保存,如图:


    双击【对公类型修改】,在里面写入javascript 脚本语句
    var custtype_cn='对公客户交易'
    在字段中写入custtype_cn,类型选为string。确定。
    同理,在【对私类型修改】中,在里面写入javascript脚本语句
    var custtype_cn='对私客户交易'
    在字段中写入custtype_cn,类型选为string。确定。
    点击左侧的【Transform】,选中两个【增加常量】,拖动到主窗口释放鼠标。
    分别双击打开,重命名为“增加对公常量”和“增加对私常量”。
    分别建立【对公类型修改】和【对私类型修改】与【增加对公常量】和【增
    加对私常量】的连接,如图:


    双击【增加对公常量】,名称写入value,类型选择string,值写入“这是一
    笔对公客户发生的交易”,确定保存。
    同理,双击【增加对私常量】,名称写入value,类型选择string,值写入“这
    是一笔对私客户发生的交易”,确定保存。
    点击左侧的【Output】,选中【文本文件输出】,拖动到主窗口释放鼠标。
    建立【增加对公常量】,【增加对私常量】和【文本文件输出】的连接,如图:


    双击打开【文本文件输出】,文件名称写入D:\etltest\etltest.txt
    点击内容标签,根据情况进行修改,例如
    点击字段标签
    名称依次写入tradeid,acctno,amt,custno,custname,custid,custtype_cn,
    value,类型根据各个字段实际类型进行选择
    确定保存
    点击保存创建好的transformation。
    点击运行这个转换。
    点击launch,开始运行
    当所有状态都变已完成时,则转换完成,如图:

    转载:https://blog.csdn.net/qq_35731570/article/details/71123413

    展开全文
  • kettle资源库表详解

    2022-03-23 18:43:48
    kettle资源库表详解
  • kettle库表详解.xlsx

    2021-03-24 09:36:47
    ETL工具--kettle资源库表结构说明,有比较详尽的中文注释,方便二次开发使用 excel格式,示例如下: 表名 表注释 字段名 字段注释 字段类型 是否可为NULL r_database 数据库连接 NAME 数据库连接名称 varchar(255) ...
  • 你不知道的Kettle学习笔记1--Kettle详解

    万次阅读 多人点赞 2016-09-22 13:35:45
    一、Kettle * Kettle是一款国外开源(免费:受欢迎)的ETL工具, * 纯Java编写(Java开发很好的集成),可以在windows、Linux、Unix上运行(Linux服务器流行时代下,Kettle更加受欢迎), * 数据抽取高效稳定(更...

    一、Kettle
    * Kettle是一款国外开源(免费:受欢迎)的ETL工具,
    * 纯Java编写(Java开发很好的集成),可以在windows、Linux、Unix上运行(Linux服务器流行时代下,Kettle更加受欢迎),
    * 数据抽取高效稳定(更更加受欢迎)。
    Kettle中文名俗称“水壶”,开发目的是将各种数据放到一个水壶中,然后经过各种处理加工,以特定的格式流出。

    二、Kettle-ETL
    (一)ETL
    抽取(Extract):一般抽取过程需要连接到不同的数据资源,以便为随后的步骤(转换、加载、分析、报表展示等)提供数据。数据抽取部分看上去简单而琐碎,实际上是ETL解决方案的成功实施的一个主要障碍。

    转换(Transform):任何对数据的处理过程都是转换。这些处理过程通常包括(但不限于)下面一些操作:
    1、移动数据
    2、根据规则验证数据
    3、修改数据的内容或者数据结构
    4、集成多个数据源的数据
    5、根据处理后的数据计算派生值或者聚集值

    加载(Load):将数据加载到目标系统的所有操作

    (二)、ETL实现的主要转换

    这里写图片描述

    1、对空值的处理
    如果在转换过程中捕获到某些字段存在空值,在进行加载时需要将空值替换成某一数据或者直接进行加载,不做任何转换。

    2、对数据格式的规范化
    根据业务数据源中各个字段的数据类型,进行数据格式的规范和统一。
    例如,统一将数值类型转化成字符串类型。

    3、根据业务需求进行字段的拆分或者合并
    依据业务需求对字段可进行分解。
    例如,主叫号020-88888888,可进行区域码和电话号码分解。
    区域号:020
    电话号码: 88888888

    4、对缺失数据的替换
    根据业务需求对可实现无效数据、缺失数据进行替换

    5、根据业务规则对数据进行过滤

    6、 根据编码表进行数据唯一性的转换
    根据编码表制定的业务规范进行数据的转换,实现数据仓库系统内部数据的一致性。
    对无依赖性的非法数据,可替换或导出到错误数据文件中,保证主键唯一记录的加载。

    三、ETL在BI中的作用

    这里写图片描述

    四、ETL实现方式
    1、通过Java、Python等语言,自己手工编码,编写脚本,自己开发ETL软件。
    2、购买商业的ETL工具软件。
    3、使用开源免费的ETL软件,例如Kettle。
    自己研发ETL工具软件前期开发成本过高,而商用ETL的后期维护成本过高,总的来说,使用开源的ETL工具软件最划算。

    五、ETL软件

    这里写图片描述

    商用ETL工具软件
    Informatica、IBM DataStage、Microsoft SSIS 、Oracle ODI

    开源ETL工具软件
    Kettle 、Talend、CloverETL、Ketl、Octopus

    1、Kettle软件介绍
    Kettle是一款开源的ETL(Extract Transformation Load) 工具,用来完成数据的抽取,清洗、转换和加载等数据处理方面的工作。

    2、Kettle历史
    原作者: Matt oracle工程师-3年左右拿到开源license
    License: 4.3 以前 LGPL (改动需开源),4.3 以后改为Apache 2 (可以改商业) ,当前版本:Version 4.4 (2013年) 。
    2006年 Kettle 2.2, Kettle 2.3 (Kettle 开源,License 为 LGPL)
    2007年 Kettle 2.4, Kettle 2.5(被Pentaho 公司收购,更名为 PDI)
    2008年 Kettle 3.0 ,Kettle 3.1
    2009年 Kettle 3.2 (一个使用时间较长的稳定版本)
    2K010年 Kettle 4.0 ,Kettle 4.1
    2011年 Kettle 4.2
    2012年 Kettle 4.3 ,Kettle 4.4 (License 变更为 Apache 2,支持大数据)
    2013年 Kettle 5.0

    3、Kettle特点

    这里写图片描述

    4、Kettle在国内应用

    这里写图片描述

    5、Kettle子程序的功能和启动方式
    Spoon.bat:图形界面方式启动作业和转换设计器
    Pan.bat:命令行方式执行转换
    Kitchen.bat:启动WEB服务器,用于Kettlede远程运行或集群运行。
    Encr.bat:密码加密

    6、Kettle常用控件

    这里写图片描述

    7、Kettle与Informatica
    Kettle和informatica都提供了大量的转换步骤,脚本功能,都可以处理复制的ETL转换。
    通常情况下informatica比kettle更快。informatica有下推优化,缓存查询等提高性能的手段。但是如果你对kettle和数据库有足够的了解,做一些调整,你可以提高kettle的速度,在一些情况下可以达到甚至超过informatica的速度。

    kettle的优点
    (1)kettle的易用性比informatica好,需要培训要少很多。
    (2)kettle不需要像informatica那样大的前期投入。
    (3)kettle的插件架构支持快速定制开发。

    informatica的优点
    (1)informatica的错误报告功能比kettle更友好,更容易定位错误。kettle通常只把异常抛出,需要实施人员有更丰富的经验。
    (2)informatica比kettle有更好的监控工具和负载均衡等企业级应用功能,更适合大规模的ETL应用。

    展开全文
  • kettle资源库表详解.xls

    2019-07-12 18:25:12
    kettle资源库的表说明。
  • kettle变量详解

    2016-01-15 10:46:38
    kettle部署的时候使用,详细请查看上传的文件
  • Kettle (Spoon) 教程 中文详解 pdf,Kettle (Spoon) 教程 中文详解 pdf,Kettle (Spoon) 教程 中文详解 pdf,Kettle (Spoon) 教程 中文详解 pdf
  • kettle是一个优秀的ETL,它的数据库结构是什么样的呢?本文档以Oracle数据库连接为例,讲解每一个表的各个列名的含义,帮助你缕清kettle的架构模式,方便你的二次开发和自主研发ETL。
  • KettleKettle入门解析(一)

    千次阅读 多人点赞 2020-04-20 11:46:59
    一、Kettle概述 【1】什么是KettleKettle是一款国外开源的ETL工具,纯Java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定 【2】Kettle核心知识 1)Kettle工程存储方式 1、以XML形式存储...

    在这里插入图片描述

    想要看懂这本书,需要先把自己实力巩固上去,所以我们来学习一下Kettle吧QAQ👇👇👇

    (图片来源于网络,侵删)


    一、Kettle概述

    【1】什么是Kettle?

    Kettle是一款国外开源的ETL工具,纯Java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定

    【2】Kettle核心知识

    1)Kettle工程存储方式

    1、以XML形式存储
    2、以资源库方式存储(数据库资源库和文件资源库)

    2)Kettle的两种设计

    在这里插入图片描述

    3)Kettle的组成

    在这里插入图片描述

    4)Kettle特点

    在这里插入图片描述


    二、Kettle安装部署

    【1】Kettle安装地址

    1)官网地址

    https://community.hitachivantara.com/docs/DOC-1009855
    

    2)下载地址

    https://sourceforge.net/projects/pentaho/files/Data%20Integration/
    

    【2】Windows下安装使用

    1) 概述

    在实际企业开发中,都是在本地环境下进行Kettle的JobTransformation开发的,可以在本地运行,也可以连接远程机器运行

    2)安装

    • 1)安装JDK
    • 2)下载Kettle压缩包,因Kettle为绿色软件,解压缩到任意本地路径即可(路径不要有中文)
    • 3)双击Spoon.bat,启动图形化界面工具,就可以直接使用了(第一次启动可能有点慢,属于正常现象)

    三、Kettle入门案例

    案例一:把MySQL中stu1的数据按id同步到stu2,stu2有相同id则更新数据

    (1) 将MySQL驱动Jar包放到Kettle的lib目录下,然后重启Kettle

    在这里插入图片描述

    (2) 在mysql中创建两张表stu1、stu2

    create database kettle;
    
    use kettle;
    
    create table stu1(id int,name varchar(20),age int);
    
    create table stu2(id int,name varchar(20));
    

    (3) 往两张表中插入一些数据

    insert into stu1 values(1001,'zhangsan',20),(1002,'lisi',18), (1003,'wangwu',23);
    
    insert into stu2 values(1001,'wukong');
    

    原始数据如下👇

    stu1表stu2表

    最终效果如下👇

    stu1表stu2表

    (4) 实战流程如下

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    查看MySQL数据库,效果和我们的需求一致,bingo!!!

    stu1表stu2表


    案例二:使用Job作业方式调度转换操作,并使用SQL插入数据到stu2

    (1) 使用案例1的表,先清空数据

    truncate table stu1
    
    truncate table stu2
    

    (2) 往两张表中插入一些数据

    insert into stu1 values(1001,'zhangsan',20),(1002,'lisi',18), (1003,'wangwu',23);
    
    insert into stu2 values(1001,'wukong');
    

    (3) 实战流程如下

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    然后执行和之前一样保存,执行,效果如下👇

    在这里插入图片描述

    查看MySQL中的表数据👇

    在这里插入图片描述

    可以看到不仅stu1的数据更新到了stu2中,并且我们自定义的SQL插入操作的数据也存在,再次bingo!!!

    案例三:把HDFS中的数据插入到HBase中的表中

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    结果查看:如下图可以发现过滤出了 sal 大于 1000的👇

    在这里插入图片描述


    都看到这里了,点赞评论一下吧!!!

    在这里插入图片描述

    点击查看👇

    【Kettle】Kettle入门解析(二)

    展开全文
  • Kettle源码分析

    2018-09-30 09:30:43
    Ketlle工具的源码分析,源码结构梳理,包、类结构组成
  • kettle控件属性详解

    2017-03-14 14:49:10
    手工整理的job中各个控件的属性,整理比较辛苦,希望大家理解,此属性对应的kettle5.4的版本
  • ETL(kettle)创建工作任务job详解,利用kettle工具实现数据转换作业,实现数据同步、数据清洗等工作
  • kettle资源库详解

    2015-07-28 16:50:08
    kettle数据库资源库表的详细解释,包括各个表名,字段名等
  • Kettle集群部署详解

    2018-06-29 11:26:11
    Kettle集群是由一个主master服务器和多个从node服务器组成的,类似于master-slave结构,不同的是’master’处理具体任务,只负责任务的分发和收集运行结果。 Master carte结点收到请求后,把任务分成多个部分交给...
  • kettle资源库i详解

    2017-03-14 14:46:25
    手工整理的kettle资源库表中模型
  • kettle行转列详解

    热门讨论 2012-10-11 09:32:45
    kettle etl 行转列 ;讲解清楚,用列经过测试能通俗易懂讲解这个知识点
  • kettle使用教程(超详细)

    万次阅读 多人点赞 2019-11-01 16:39:43
    今天详细详细说一下kettle 的安装,安装的版本: jdk:jdk-8u152-windows--x64 kettle:KETTLE-5.4 一、环境部署 1、安装JDK,按默认值安装即可 2、设置环境变量,如图下图 具体步骤: 1.右击我的电脑-属性-...
  • 这是一份关于Kettle介绍十分详细的资料,对于深入学习Kettle有很好的帮助。
  • ETL工具KETTLE实例手册是个人在工作中,调试接口时常用的一些功能和步骤详解,希望可以对刚刚用这个工具的朋友有所帮助
  • Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。 Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。
  • Kettle Web版最新代码

    2018-10-04 07:00:17
    Kettle Web版最新代码;更新至2017.7月
  • Kettle 7.1 的中文使用文档,内容挺详细的, 非常适合新手入门。
  • ETL工具Kettle使用实例和讲解,有一步一步的操作实例,研究单表抽取数据和多表抽取数据
  • kettle架构图

    2016-02-26 17:37:59
    kettle数据整合平台是一款通用的数据处理软件,用来从各种数据源抽取数据、并对数据进行转换、清洗、加载到其他数据源。kettle数据整合平台除了支持各种常见的数据库如Oracle、DB2、MySQL 等,还支持各种平面文件,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 789
精华内容 315
关键字:

kettle详解