ETL工具kettl应用说明

合集下载

kettle使用手册

kettle使用手册

kettle使用手册Kettle使用手册一、Kettle简介1.1 Kettle概述Kettle(也被称为Pentaho Data Integration)是一款开源的ETL(Extract, Transform, Load)工具,它能够从各种数据源中提取数据,并进行各种转换和加工,最后将数据加载到指定的目的地中。

Kettle具有强大的数据处理功能和友好的图形化界面,使得数据集成和转换变得简单而高效。

1.2 功能特点- 数据抽取:从多种数据源中提取数据,包括关系型数据库、文件、Web服务等。

- 数据转换:支持多种数据转换操作,如字段映射、类型转换、数据清洗等。

- 数据加载:将转换后的数据加载到不同的目的地,如数据库表、文件、Web服务等。

- 调度管理:支持定时调度和监控,可自动执行数据集成任务。

二、安装与配置2.1 系统要求在安装Kettle之前,请确保满足以下系统要求: - 操作系统:Windows、Linux、Unix等。

- Java版本:JDK 1.8及以上。

- 内存:建议至少4GB的可用内存。

2.2 安装Kettle最新版本的Kettle安装包,并按照安装向导进行安装。

根据系统要求和个人需求进行相应的配置选项,完成安装过程。

2.3 配置Kettle在安装完成后,需要进行一些配置以确保Kettle正常运行。

具体配置步骤如下:- 打开Kettle安装目录下的kettle.properties文件。

- 根据实际需要修改配置项,如数据库连接、日志路径、内存分配等。

- 保存修改并重启Kettle。

三、Kettle基础操作3.1 数据抽取3.1.1 创建数据源连接打开Kettle,左上角的“新建连接”按钮,在弹出的窗口中选择待抽取的数据源类型(如MySQL、Oracle等),填写相关参数并测试连接。

3.1.2 设计数据抽取作业- 打开Kettle中的“转换”视图。

- 从左侧的工具栏中选择适当的输入组件(如“表输入”或“文件输入”),将其拖拽到设计区域中。

etl工具kettle用户手册及kettle.x使用步骤带案例超详细版

etl工具kettle用户手册及kettle.x使用步骤带案例超详细版

E T L工具K e t t l e用户手册之Spoon 2.5.0用户手册Spoon 2.5.0用户手册 (1)1、Spoon介绍 (14)1、1 什么是Spoon (14)1、2 安装 (14)1、3 运行Spoon (14)1、4 资源库 (14)1、5 资源库自动登录 (15)1、6 定义 (15)1、6、1 转换 (15)1、6、2 任务 (16)1、7 工具栏 (17)1、8 选项 (17)1、8、1 General标签 (18)1、8、2 Look Feel标签 (19)1、9 搜索元数据 (19)1、10设置环境变量 (20)2、创建一个转换或任务(Creating a Transformation or Job) (21)3、数据库连接(Database Connections) (21)3、1 描述 (21)3、2 设置窗口 (22)3、3 选项 (22)3、4 数据库用法 (22)4、SQL编辑器(SQL Editor) (23)4、1 描述 (23)4、2 屏幕截图 (23)4、3 局限性 (24)5、数据库浏览器(Database Explorer) (24)5、1 屏幕截图 (24)5、2 描述 (24)6、节点连接(Hops) (25)6、1 描述 (25)6、1、1 转换连接 (25)6、2 屏幕截图 (25)6、3 创建一个连接 (26)6、4 拆分一个连接 (26)6、5 转换连接颜色 (26)7、变量(Variables) (27)7、1 变量使用 (27)7、2 变量范围 (27)7、2、1 环境变量 (27)7、2、2 Kettle变量 (27)7、2、3 内部变量 (27)8、转换设置(Transformation Settings) (28)8、1 描述 (28)8、2 屏幕截图 (29)8、3 选项 (32)8、4 其它 (33)9、转换步骤(Transformation steps) (33)9、1 描述 (33)9、2 运行步骤的多个副本 (33)9、3 分发或者复制 (35)9、4 常用错误处理 (35)9、5 Apache虚拟文件系统(VFS)支持 (37)9、6 转换步骤类型 (39)9、6、1 文本文件输入(Text Input) (39)9、6、1、1 屏幕截图 (39)9、6、1、2 图标 (41)9、6、1、3 常用描述 (42)9、6、1、4 选项 (42)9、6、1、5 格式化 (47)9、6、1、6 其它 (48)9、6、2 表输入(Table Input) (49)9、6、2、1 屏幕截图 (49)9、6、2、2 图标 (49)9、6、2、3 常用描述 (49)9、6、2、4 选项 (50)9、6、2、5 示例 (50)9、6、2、6 其它 (51)9、6、3 获取系统信息(Get System Info) (51)9、6、3、1 屏幕截图 (51)9、6、3、2 图标 (52)9、6、3、3 常用描述 (52)9、6、3、4 选项 (53)9、6、3、5 用法 (53)9、6、4 生成行(Generate Rows) (54)9、6、4、2 图标 (54)9、6、4、3 常用描述 (55)9、6、4、4 选项 (55)9、6、5 文件反序列化(De-serialize from file)(原来名称为Cube Input) (55)9、6、5、1 屏幕截图 (55)9、6、5、2 图标 (55)9、6、5、3 常用描述 (55)9、6、6 XBase输入(XBase input) (56)9、6、6、1 屏幕截图 (56)9、6、6、2 图标 (56)9、6、6、3 常用描述 (56)9、6、6、4 选项 (56)9、6、7 Excel输入(Excel Input) (57)9、6、7、1 屏幕截图 (57)9、6、7、2 图标 (59)9、6、7、3 常用描述 (59)9、6、7、4 选项 (59)9、6、8 XML输入(XML input) (60)9、6、8、1 屏幕截图 (60)9、6、8、2 图标 (61)9、6、8、3 常用描述 (61)9、6、8、4 选项 (62)9、6、9 获取文件名(Get File Names) (63)9、6、9、1 屏幕截图 (63)9、6、9、2 图标 (63)9、6、9、3 常用描述 (63)9、6、10 文本文件输出(Text File Output) (64)9、6、10、1 屏幕截图 (64)9、6、10、2 图标 (65)9、6、10、3 常用描述 (65)9、6、11 表输出(Table output) (67)9、6、11、1 屏幕截图 (67)9、6、11、2 图标 (67)9、6、11、3 常用描述 (67)9、6、11、4 选项 (68)9、6、11、5 其它 (68)9、6、12 插入/更新(Insert/Update) (69)9、6、12、1 屏幕截图 (69)9、6、12、2 图标 (69)9、6、12、3 常用描述 (69)9、6、12、4 选项 (70)9、6、12、5 其它 (70)9、6、13 更新(Update) (71)9、6、13、2 图标 (71)9、6、13、3 常用描述 (71)9、6、14 删除(Delete) (72)9、6、14、1 屏幕截图 (72)9、6、14、2 图标 (72)9、6、14、3 常用描述 (72)9、6、15 序列化到文件(Serialize to file)(以前是Cube Output) (73)9、6、15、1 屏幕截图 (73)9、6、15、2 图标 (73)9、6、15、3 常用描述 (73)9、6、16 XML输出(XML output) (74)9、6、16、1 屏幕截图 (74)9、6、16、2 图标 (75)9、6、16、3 常用描述 (75)9、6、16、4 选项 (75)9、6、17 Excel输出(Excel Output) (76)9、6、17、1 屏幕截图 (76)9、6、17、2 图标 (78)9、6、17、3 常用描述 (78)9、6、17、4 选项 (78)9、6、18 Access输出(Microsoft Access Output) (79)9、6、18、1 屏幕截图 (79)9、6、18、2 图标 (79)9、6、18、3 常用描述 (79)9、6、18、4 选项 (79)9、6、19 数据库查询(Database lookup) (80)9、6、19、1 屏幕截图 (80)9、6、19、2 图标 (80)9、6、19、3 常用描述 (80)9、6、19、4 选项 (81)9、6、20 流查询(Stream lookup) (81)9、6、20、1 屏幕截图 (81)9、6、20、2 图标 (81)9、6、20、3 常用描述 (82)9、6、20、4 选项 (82)9、6、20、5 其它 (82)9、6、21 调用数据库存储过程(Call DB Procedure) (83)9、6、21、1 屏幕截图 (83)9、6、21、2 图标 (83)9、6、21、3 常用描述 (83)9、6、21、4 选项 (83)9、6、21、5 其它 (84)9、6、22 HTTP客户端(HTTP Cient) (84)9、6、22、2 图标 (84)9、6、22、3 常用描述 (84)9、6、22、4 选项 (85)9、6、23 字段选择(Select values) (85)9、6、23、1 屏幕截图 (85)9、6、23、2 图标 (87)9、6、23、3 常用描述 (87)9、6、23、4 选项 (87)9、6、24 过滤行(Filter rows) (88)9、6、24、1 屏幕截图 (88)9、6、24、2 图标 (88)9、6、24、3 常用描述 (88)9、6、24、4 选项 (88)9、6、25 行排序(Sort rows) (89)9、6、25、1 屏幕截图 (89)9、6、25、2 图标 (89)9、6、25、3 常用描述 (89)9、6、25、4 选项 (89)9、6、25、5 其它 (90)9、6、26 添加序列(Add sequence) (90)9、6、26、1 屏幕截图 (90)9、6、26、2 图标 (90)9、6、26、3 常用描述 (90)9、6、26、4 选项 (91)9、6、27 空操作-什么都不做(Dummy-do nothing) (91)9、6、27、1 屏幕截图 (91)9、6、27、2 图标 (91)9、6、27、3 常用描述 (91)9、6、27、4 选项 (92)9、6、28 行转列(Row Normaliser) (93)9、6、28、1 屏幕截图 (93)9、6、28、2 图标 (93)9、6、28、3 常用描述 (93)9、6、28、4 选项 (94)9、6、28、5 其它 (94)9、6、29 拆分字段(Split Fields) (95)9、6、29、1 屏幕截图 (95)9、6、29、2 图标 (95)9、6、29、3 常用描述 (95)9、6、29、4 选项 (95)9、6、30 去除重复记录(Unique rows) (96)9、6、30、1 屏幕截图 (96)9、6、30、2 图标 (96)9、6、30、4 选项 (97)9、6、30、5 其它 (97)9、6、31 分组(Group By) (98)9、6、31、1 屏幕截图 (98)9、6、31、2 图标 (98)9、6、31、3 常用描述 (98)9、6、31、4 选项 (99)9、6、32 设置为空值(Null if) (99)9、6、32、1 屏幕截图 (99)9、6、32、2 图标 (99)9、6、32、3 常用描述 (100)9、6、33 计算器(Calculator) (100)9、6、33、1 屏幕截图 (100)9、6、33、2 图标 (100)9、6、33、3 常用描述 (101)9、6、33、4 功能列表 (101)9、6、34增加XML(XML Add) (102)9、6、34、1 屏幕截图 (102)9、6、34、2 图标 (102)9、6、34、3 常用描述 (102)9、6、34、4 选项 (103)9、6、35增加常量(Add constants) (103)9、6、35、1 屏幕截图 (103)9、6、35、2 图标 (103)9、6、35、3 常用描述和使用 (104)9、6、36行转列(Row Denormaliser) (104)9、6、36、1 屏幕截图 (104)9、6、36、2 图标 (104)9、6、36、3 常用描述 (105)9、6、36、4 选项 (105)9、6、37行扁平化(Flattener) (105)9、6、37、1 屏幕截图 (105)9、6、37、2 图标 (105)9、6、37、3 常用描述 (105)9、6、37、4 选项 (106)9、6、37、5 示例 (106)9、6、38值映射(Value Mapper) (107)9、6、38、1 屏幕截图 (107)9、6、38、2 图标 (107)9、6、38、3 常用描述 (107)9、6、39被冻结的步骤(Blocking step) (108)9、6、39、1 屏幕截图 (108)9、6、39、2 图标 (108)9、6、40记录关联(笛卡尔输出)(Join Rows-Cartesian Product) (109)9、6、40、1 屏幕截图 (109)9、6、40、2 图标 (109)9、6、40、3 常用描述 (109)9、6、40、4 选项 (110)9、6、41数据库连接(Database Join) (110)9、6、41、1 屏幕截图 (110)9、6、41、2 图标 (111)9、6、41、3 常用描述 (111)9、6、41、4 选项 (111)9、6、42合并记录(Merge rows) (112)9、6、42、1 屏幕截图 (112)9、6、42、2 图标 (112)9、6、42、3 常用描述 (112)9、6、43 存储合并(Stored Merge) (113)9、6、43、1 屏幕截图 (113)9、6、43、2 图标 (113)9、6、43、3 常用描述 (113)9、6、44 合并连接(Merge Join) (114)9、6、44、1 屏幕截图 (114)9、6、44、2 图标 (114)9、6、44、3 常用描述和使用 (114)9、6、44、4 选项 (114)9、6、45 Java Script值(Java Script Value) (115)9、6、45、1 屏幕截图 (115)9、6、45、2 图标 (115)9、6、45、3 常用描述 (115)9、6、45、4 选项 (115)9、6、45、5 其它 (116)9、6、45、6 值函数 (116)9、6、45、7 JavaScript示例 (120)9、6、45、7、1 回忆先前的行 (120)9、6、45、7、2 设置地址名称到大写 (120)9、6、45、7、3 从日期字段提取信息 (120)9、6、46改进的Java Script值(Modified Java Script Value) (121)9、6、46、1 屏幕截图 (121)9、6、46、2 图标 (121)9、6、46、3 常用描述 (121)9、6、46、4 Java Script函数 (121)9、6、46、5 Java Script (122)9、6、46、6 字段 (122)9、6、46、7 其它 (122)9、6、47执行SQL语句(Execute SQL script) (123)9、6、47、2 图标 (123)9、6、47、3 常用描述 (123)9、6、48 维度更新/查询(Dimension lookup/update) (126)9、6、48、1 屏幕截图 (126)9、6、48、2 图标 (126)9、6、49 联合更新/查询(Combination lookup/update) (127)9、6、49、1 屏幕截图 (127)9、6、49、2 图标 (127)9、6、49、3 常用描述 (127)9、6、50 映射(Mapping) (128)9、6、50、1 屏幕截图 (128)9、6、50、2 图标 (128)9、6、50、3 常用描述和使用 (128)9、6、51 从结果获取记录(Get rows from result) (129)9、6、51、1 屏幕截图 (129)9、6、51、2 图标 (129)9、6、51、3 常用描述 (129)9、6、52 复制记录到结果(Copy rows to result) (129)9、6、52、1 屏幕截图 (129)9、6、52、2 图标 (130)9、6、52、3 常用描述 (130)9、6、53 设置变量(Set Variable) (130)9、6、53、1 屏幕截图 (130)9、6、53、2 图标 (130)9、6、53、3 常用描述 (131)9、6、53、4 变量使用 (131)9、6、54 获取变量(Get Variable) (131)9、6、54、1 屏幕截图 (131)9、6、54、2 图标 (132)9、6、54、3 常用描述 (132)9、6、55 从以前的结果获取文件(Get files from result) (132)9、6、55、1 屏幕截图 (132)9、6、55、2 图标 (132)9、6、55、3 常用描述 (132)9、6、56 复制文件名到结果(Set files in result) (133)9、6、56、1 屏幕截图 (133)9、6、56、2 图标 (133)9、6、56、3 常用描述 (133)9、6、57 记录注射器(Injector) (134)9、6、57、1 屏幕截图 (134)9、6、57、2 图标 (134)9、6、57、3 常用描述 (134)9、6、58 套接字读入器(Socket Reader) (135)9、6、58、2 图标 (135)9、6、58、3 常用描述和使用 (135)9、6、59 套接字输写器(Socket Writer) (135)9、6、59、1 屏幕截图 (135)9、6、59、2 图标 (136)9、6、59、3 常用描述和使用 (136)9、6、60聚合行(Aggregate Rows) (136)9、6、60、1 屏幕截图 (136)9、6、60、2 图标 (136)9、6、60、3 常用描述 (136)9、6、60、4 选项 (137)9、6、61流XML输入(Streaming XML Input) (137)9、6、61、1 屏幕截图 (137)9、6、61、2 图标 (138)9、6、61、3 常用描述 (139)9、6、61、4 选项 (139)9、6、61、5 完整的示例 (140)9、6、62中止(Abort) (142)9、6、62、1 屏幕截图 (142)9、6、62、2 图标 (142)9、6、62、3 常用描述 (143)9、6、62、4 选项 (143)9、6、63Oracle批量装载(Oracle bulk loader) (144)9、6、63、1 屏幕截图 (144)9、6、63、2 图标 (144)9、6、63、3 常用描述 (145)9、6、63、4 选项 (145)10、任务设置(Job Settings) (145)10、1 描述 (145)10、2 屏幕截图 (146)10、3 选项 (146)10、4 其它 (146)11、任务条目(Job Entries) (147)11、1 描述 (147)11、2 任务条目类型 (147)11、2、1特殊的任务条目 (147)11、2、1、1 屏幕截图 (147)11、2、1、2 图标 (147)11、2、1、3 常用描述 (148)11、2、1、3、1 启动 (148)11、2、1、3、2 Dummy (148)11、2、1、3、3 OK (148)11、2、1、3、4 ERROR (148)11、2、2、1 屏幕截图 (149)11、2、2、2 图标 (149)11、2、2、3 常用描述 (149)11、2、2、4 选项 (149)11、2、3 任务 (151)11、2、3、1 屏幕截图 (151)11、2、3、2 图标 (151)11、2、3、3 常用描述 (151)11、2、3、4 选项 (151)11、2、4 Shell (152)11、2、4、1 屏幕截图 (152)11、2、4、2 图标 (153)11、2、4、3 常用描述 (153)11、2、4、4 选项 (153)11、2、5 Mail (154)11、2、5、1 屏幕截图 (154)11、2、5、2 图标 (154)11、2、5、3 常用描述 (155)11、2、5、4 选项 (155)11、2、6 SQL (156)11、2、6、1 屏幕截图 (156)11、2、6、2 图标 (156)11、2、6、3 常用描述 (156)11、2、6、4 选项 (156)11、2、7 FTP (157)11、2、7、1 屏幕截图 (157)11、2、7、2 图标 (157)11、2、7、3 常用描述 (157)11、2、7、4 选项 (157)11、2、8 Table Exists (158)11、2、8、1 屏幕截图 (158)11、2、8、2 图标 (159)11、2、8、3 常用描述 (159)11、2、8、4 选项 (159)11、2、9 File Exists (159)11、2、9、1 屏幕截图 (159)11、2、9、2 图标 (159)11、2、9、3 常用描述 (159)11、2、9、4 选项 (160)11、2、10 Evaluation(javascript) (160)11、2、10、1 屏幕截图 (160)11、2、10、2 图标 (160)11、2、10、3 常用描述 (160)11、2、11 SFTP (161)11、2、11、1 屏幕截图 (161)11、2、11、2 图标 (161)11、2、11、3 常用描述 (162)11、2、11、4 选项 (162)11、2、12 HTTP (163)11、2、12、1 屏幕截图 (163)11、2、12、2 图标 (163)11、2、12、3 常用描述 (163)11、2、12、4 选项 (163)11、2、13 Create a file (164)11、2、13、1 屏幕截图 (164)11、2、13、2 图标 (165)11、2、13、3 常用描述 (165)11、2、13、4 选项 (165)11、2、13、5 其它 (165)11、2、14 Delete a file (165)11、2、14、1 屏幕截图 (165)11、2、14、2 图标 (165)11、2、14、3 常用描述 (166)11、2、14、4 选项 (166)11、2、14、5 其它 (166)11、2、15 Wait a file (166)11、2、15、1 屏幕截图 (166)11、2、15、2 图标 (166)11、2、15、3 常用描述 (167)11、2、15、4 选项 (167)11、2、15、5 其它 (167)11、2、16 File compare (167)11、2、16、1 屏幕截图 (167)11、2、16、2 图标 (168)11、2、16、3 常用描述 (168)11、2、16、4 选项 (168)11、2、16、5 其它 (168)11、2、17 Put files with secureFTP (169)11、2、17、1 屏幕截图 (169)11、2、17、2 图标 (169)11、2、17、3 常用描述 (169)11、2、17、4 选项 (169)11、2、18 Ping a host (170)11、2、18、1 屏幕截图 (170)11、2、18、2 图标 (170)11、2、18、3 常用描述 (170)11、2、19 Wait for (171)11、2、19、1 屏幕截图 (171)11、2、19、2 图标 (171)11、2、19、3 常用描述 (171)11、2、19、4 选项 (171)11、2、20 Display Msgbox info (172)11、2、20、1 屏幕截图 (172)11、2、20、2 图标 (172)11、2、20、3 常用描述 (172)11、2、20、4 选项 (172)11、2、21 Abort job (173)11、2、21、1 屏幕截图 (173)11、2、21、2 图标 (173)11、2、21、3 常用描述 (173)11、2、21、4 选项 (173)11、2、22 XSL transformation (174)11、2、22、1 屏幕截图 (174)11、2、22、2 图标 (174)11、2、22、3 常用描述 (174)11、2、22、4 选项 (174)11、2、23 Zip files (175)11、2、23、1 屏幕截图 (175)11、2、23、2 图标 (175)11、2、23、3 常用描述 (175)11、2、23、4 选项 (175)12、图形界面(Graphical View) (176)12、1 描述 (176)12、2 添加步骤或者任务条目 (176)12、2、1 拖放创建步骤 (176)12、2、2 从步骤类型树创建步骤 (177)12、2、3 在你想要的位置创建步骤 (177)12、3 隐藏步骤 (177)12、4 转换步骤选项(右键上下文菜单) (177)12、4、1 编辑步骤 (177)12、4、2 编辑步骤描述 (177)12、4、3 数据迁移 (177)12、4、4 复制 (177)12、4、5 复制步骤 (178)12、4、6 删除步骤 (178)12、4、7 显示输入字段 (178)12、4、8 显示输出字段 (178)12、5 任务条目选项(右键上下文菜单) (178)12、5、1 打开转换/任务 (178)12、5、3 编辑任务入口描述 (178)12、5、4 复制任务入口 (178)12、5、5 复制选择的任务入口到剪贴板 (178)12、5、6 排列/分布 (179)12、5、7 拆开节点 (179)12、5、8 删除所有任务入口的副本 (179)12、6 添加节点连接 (179)12、7 运行转换 (179)12、8 屏幕截图 (179)12、9 执行选项 (180)12、9、1 在哪里执行 (180)12、9、2 预览 (180)12、9、3 使用安全模式 (180)12、9、4 日志级别 (180)12、9、5 重放日期 (180)12、9、6 参数 (180)12、9、7 变量 (180)12、10 设置远程或者从属服务器 (181)12、10、1 概述 (181)12、10、2 屏幕截图 (181)13、日志(Logging) (181)13、1 日志描述 (181)13、2 屏幕截图 (182)13、3 日志网格 (182)13、3、1 转换日志网格 (182)13、3、2 任务日志网格 (183)13、4 按钮 (183)13、4、1 转换按钮 (183)13、4、1、1 开始转换 (183)13、4、1、2 预览 (183)13、4、1、3 显示错误行 (183)13、4、1、4 清除日志 (184)13、4、1、5 日志设置 (184)13、4、1、6 仅仅显示活动的步骤 (184)13、4、2 任务按钮 (184)13、4、2、1 启动任务 (184)13、4、2、2 停止任务 (185)13、4、2、3 刷新日志 (185)13、4、2、4 清除日志 (185)13、4、2、5 日志设置 (185)13、4、2、6 自动刷新 (186)14、网格(Grids) (186)14、1 描述 (186)14、2 功能 (186)14、3 导航 (186)15、资源库浏览器(Repository Explorer) (187)15、1 描述 (187)15、2 屏幕截图 (187)15、3 右键单击功能 (187)15、4 备份/资源库 (188)16、共享对象(Share objects) (188)1、Spoon介绍1、1 什么是SpoonKettle是”Kettle E.T.T.L. Envirnonment”只取首字母的缩写。

ETL利器KETTLE实战应用解析之KETTLE应用场景和实战DEMO

ETL利器KETTLE实战应用解析之KETTLE应用场景和实战DEMO

1、应用场景这里简单概括一下几种具体的应用场景,按网络环境划分主要包括:∙表视图模式:这种情况我们经常遇到,就是在同一网络环境下,我们对各种数据源的表数据进行抽取、过滤、清洗等,例如历史数据同步、异构系统数据交互、数据对称发布或备份等都归属于这个模式;传统的实现方式一般都要进行研发(一小部分例如两个相同表结构的表之间的数据同步,如果sqlserver数据库可以通过发布/订阅实现),涉及到一些复杂的一些业务逻辑如果我们研发出来还容易出各种bug;∙∙前置机模式:这是一种典型的数据交换应用场景,数据交换的双方A和B网络不通,但是A和B都可以和前置机C连接,一般的情况是双方约定好前置机的数据结构,这个结构跟A和B的数据结构基本上是不一致的,这样我们就需要把应用上的数据按照数据标准推送到前置机上,这个研发工作量还是比较大的;∙∙文件模式: 数据交互的双方A和B是完全的物理隔离,这样就只能通过以文件的方式来进行数据交互了,例如XML格式,在应用A中我们开发一个接口用来生成标准格式的XML,然后用优盘或者别的介质在某一时间把XML数据拷贝之后,然后接入到应用B上,应用B 上在按照标准接口解析相应的文件把数据接收过来;∙综上3种模式如果我们都用传统的模式无疑工作量是巨大的,那么怎么做才能更高效更节省时间又不容易出错呢?答案是我们可以用一下Kettle-_-!2、DEMO实战2、1 实例1:数据库TestA中的UserA表到数据库TestB的UserB表1)为方便演示,我这边把Sql脚本贴出来,大家直接复制在sqlserver中运行即可,sql脚本如下:简单表之间交换2)Kettle实现方式功能简述:数据库TestA中的UserA表到数据库TestB的UserB表;实现流程:建立一个转换和一个作业Job;A:建立一个转换:打开Kettle.exe,选择没有资源库,进入主界面,新建一个转换,转换的后缀名为ktr,转换建立的步骤如下:步骤1:创建DB连接,选择新建DB连接,如下图,我们输入相应的Sqlserver配置信息之后点击Test按钮测试是否配置正确!我们需要建立两个DB连接,分别为TestA和TestB;步骤2:建立步骤和步骤关系,点击核心对象,我们从步骤树中选择【表输入】,如下图,这样拖拽一个表输入之后,我们双击表输入之后,我们自己可以随意写一个sql语句,这个语句表示可以在这个库中随意组合,只要sql语句没有错误即可,我这里只是最简单的把TestA中的所有数据查出来,语句为select * from usersA。

kettle使用方法

kettle使用方法

kettle使用方法一、什么是kettle?Kettle是一款功能强大的开源ETL (Extract, Transform, Load) 工具,用于处理各种数据的抽取、转换和加载。

它提供了可视化的界面,使用户能够轻松地创建和管理数据流程。

二、kettle的安装和配置1.下载kettle安装包,并解压到指定目录。

2.进入kettle目录,在终端中运行spoon.sh (Linux/Mac) 或spoon.bat(Windows) 启动kettle。

3.在弹出的窗口中,点击”File”菜单,选择”Preferences”打开配置页面。

4.在配置页面中,设置kettle的选项,如数据连接、插件路径等。

三、kettle中的数据流程1.创建一个新的数据流程:点击工具栏上的”新建”按钮,在弹出的对话框中选择”Transformation”创建一个新的转换,或选择”Job”创建一个作业。

2.在数据流程中,可以拖拽各种组件来构建转换或作业,如数据输入、数据输出、转换、聚合等。

3.连接组件:使用鼠标拖拽连线工具,连接各个组件,定义数据的流向。

4.配置组件:双击组件,如数据输入组件,可以配置数据源的连接信息、查询语句等。

5.定义转换规则:在转换组件中,根据需要配置字段映射、条件过滤、转换函数等。

6.运行数据流程:点击工具栏上的”运行”按钮,运行数据流程并查看结果。

四、kettle的常用组件和功能1.数据输入:用于读取数据源的组件,支持多种数据源,如数据库、文件、Web服务等。

2.数据输出:用于将数据写入目标的组件,支持多种输出格式,如数据库表、文件、Web服务等。

3.转换组件:用于对数据进行转换的组件,如字段映射、类型转换、条件过滤、聚合等。

4.调度和监控:kettle提供了作业调度和监控的功能,可以定时执行作业、生成报表等。

5.插件扩展:kettle支持插件扩展,用户可以根据需要开发自己的插件,用于处理特定的数据源或转换规则。

Kettle配置使用说明

Kettle配置使用说明

Kettle配置使用说明Kettle配置使用说明1.文件结构1.1 kettle4.0.1该文件夹存放的是kettle4.0.1的桌面应用程序,/kettle4.0.1/Spoon.bat是运行软件的一个批处理文件,双击运行。

1.2 workspace该文件夹存放的是以各个警种总队全拼命名的分别存放.ktr文件和.job文件的文件夹。

Start.job是一个启动总纲。

1.3 script该文件夹是存放的数据库建库脚本,目前是oracle10g版本1.4 model存放的是powerDesign的cdm概念模型文件用于根据需要生成pdm和script。

2.文件路径配置本系统使用的都是系统所在路径的相对路径,不管处于什么目录下都请将kettle4.0.1和workspace的文件夹放在同一目录之下。

当然你可以随意改变文件夹的名称。

3.运行环境配置先运行一次/kettle4.0.1/Spoon.bat,Linux就不说了,如果你用的是windows系统,那么你可以在/${userhome}/.kettle下找到一个.kettle的文件夹主要说下:Response.xml-记录资源库信息(自己去勾)Kettle.property-这是好东西,可以让你在软件中任何可以使用到环境变量的地方使用到里面的配置信息(键-值对配置),类似全局变量。

当然是有利有弊,配置点什么数据库连接和一些常用的东西之外别把那里当仓库,想下全局变量定义的多了会给系统带来什么风险。

A_fileInput=file:///E:/Test_Server/srcFile/A_fileOutput=file:///E:/Test_Server/errFile/这2个属性是配置读取的Excel文件和输出错误的Excel文件用到的路径配置。

由于文件名命名的差异和存放位置的不同需要使用者自行配置。

有在系统内修改文件路径的风险,当然这是没有办法避免的,只能在项目初期和用户有这方面的约定俗成。

ETL利器Kettle实战应用解析系列一【Kettle使用介绍】

ETL利器Kettle实战应用解析系列一【Kettle使用介绍】

ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少,这里我介绍一个我在工作中使用了3年左右的ETL工具Kettle,本着好东西不独享的想法,跟大家分享碰撞交流一下!在使用中我感觉这个工具真的很强大,支持图形化的GUI 设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面有着比较稳定的表现,其中最主要的我们通过熟练的应用它,减少了非常多的研发工作量,提高了我们的工作效率,不过对于我这个.net研发者来说唯一的遗憾就是这个工具是Java编写的。

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

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

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

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

2、下载和部署žKettle可以在/网站下载žž下载kettle压缩包,因kettle为绿色软件,解压缩到任意本地路径即可3、Kettle环境配置(有Java环境的直接忽略此章节)3、1 安装java JDK1)首先到官网上下载对应JDK包,JDK1.5或以上版本就行;2)安装JDK;3)配置环境变量,附配置方式:安装完成后,还要对它进行相关的配置才可以使用,先来设置一些环境变量,对于Java来说,最需要设置的环境变量是系统路径变量path。

KETTLE使用说明及带输入参数的JAVA调用

KETTLE使用说明及带输入参数的JAVA调用

ETL工具——kettle使用说明1简介ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),Kettle是一款国外开源的etl工具,纯java编写,数据抽取高效稳定。

2运行环境:OS:Window、Linux、Unix均可Jdk1.4以上3开始使用:Kettle可以在/网站下载。

下载kettle压缩包,因kettle为绿色软件,解压缩到任意本地路径即可。

(本文着重介绍kettle3.2.0稳定版)Spoon是一个图形用户界面,在不同平台上运行Spoon需要不同的脚本:Spoon.bat:在windows平台运行Spoon(或直接点击Kettle.exe)。

Spoon.sh:在Linux、Apple OSX、Solaris平台运行Spoon。

登陆一般选择没有资源库:Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

4转换(Transformation)新建一个转换kettle默认transformation文件保存后后缀名为ktr新建数据库连接(此链接也可在用到的节点处配置)填写数据源配置内容点击Test测试连接成功:核心对象切换到核心对象,菜单列出的是Transformation中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加。

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

常用节点介绍(红色节点后面逐一演示)类别环节名称功能说明输入文本文件输入从本地文本文件输入数据表输入从数据库表中输入数据获取系统信息读取系统信息输入数据输出文本文件输出将处理结果输出到文本文件表输出将处理结果输出到数据库表插入/更新根据处理结果对数据库表机型插入更新,如果数据库中不存在相关记录则插入,否则为更新。

会根据查询条件中字段进行判断更新根据处理结果对数据库进行更新,若需要更新的数据在数据库表中无记录,则会报错停止删除根据处理结果对数据库记录进行删除,若需要删除的数据在数据库表中无记录,则会报错停止查询数据库查询根据设定的查询条件,对目标表进行查询,返回需要的结果字段流查询将目标表读取到内存,通过查询条件对内存中数据集进行查询调用DB存储过程调用数据库存储过程转换字段选择选择需要的字段,过滤掉不要的字段,也可做数据库字段对应过滤记录根据条件对记录进行分类排序记录将数据根据某以条件,进行排序空操作无操作增加常量增加需要的常量字段脚本Modified Java扩展功能,编写JavaScript脚本,对数据进行相应处理Script Value映射映射(子转换)数据映射作业Sat Variables设置环境变量Get Variables获取环境变量表输入双击拖动到工作面板上的表输入结点,选择(或者新建)所需要的数据库连接,点击获取SQL查询语句或自行编辑SQL。

kettle 例子

kettle 例子

kettle 例子Kettle(也称为Pentaho Data Integration)是一款开源的ETL (Extract, Transform, Load)工具,用于数据集成和数据转换。

它提供了一套直观且功能强大的图形化界面,使用户能够轻松地进行数据抽取、转换和加载操作。

下面是关于Kettle的十个例子,以展示其在数据集成和转换中的灵活应用。

1. 数据抽取:Kettle可以从各种不同的数据源中抽取数据,包括关系型数据库、文件(如CSV、Excel等)、Web服务和其他应用程序。

例如,可以使用Kettle从MySQL数据库中抽取销售数据。

2. 数据清洗:Kettle提供了丰富的数据清洗功能,可以处理数据中的重复值、缺失值、异常值等。

例如,可以使用Kettle清洗电子商务网站的用户数据,去除重复的用户记录并填补缺失的信息。

3. 数据转换:Kettle可以对抽取的数据进行各种转换操作,如数据格式转换、字段拆分合并、数据计算等。

例如,可以使用Kettle 将订单金额从美元转换为欧元,并计算订单总价。

4. 数据集成:Kettle可以将多个数据源的数据集成到一起,创建一个统一的数据视图。

例如,可以使用Kettle将来自不同地区的销售数据整合到一个数据仓库中,以便进行全局销售分析。

5. 数据加载:Kettle可以将转换后的数据加载到目标数据库或文件中。

例如,可以使用Kettle将清洗和转换后的数据加载到Oracle数据库中,以供进一步分析和报告。

6. 数据分析:Kettle可以与其他数据分析工具(如Pentaho BI)集成,实现更复杂的数据分析和报告功能。

例如,可以使用Kettle 将销售数据加载到Pentaho BI中,创建交互式的销售分析仪表板。

7. 定时任务:Kettle可以配置定时任务,自动执行数据集成和转换操作。

例如,可以使用Kettle每天凌晨自动抽取和清洗前一天的销售数据。

8. 并行处理:Kettle支持并行处理,可以同时处理多个数据源和转换操作,提高数据处理效率。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Kettle工具在实际中的应用说明一:资源库的设置Kettle提供了两种资源库的选择方式:数据库存放、本地文件存放。

数据库该方式是通过数据库连接直接在数据库里面创建kettle表,表里面记录着你所做的任何保存过的记录以及转换和任务。

此方法是远程存放的方式,具有可多人共享一个资源库的优势,但是也存在资源库不稳定的缺点。

以下就数据库资源库具体怎么实现做一下介绍:第一:在tools选项下面有在资源库选项里面有连接资源库选项,点击之后会出现如下界面:刚开始的时候是没用任何连接的,需要根据自己的需要选择创建。

笔:修改资源库连接加:添加新的资源库叉:删除选中资源库点那个加号图标就可以进入到新建选项页面:在中间的显示栏中:第一行代表着写入到数据库的资源库、第二行代表着保存到本地的资源库。

点击第一行进入如下界面:点击新建按钮将会新建数据库连接,如果已经有你需要的数据库连接也可以选择你需要的。

上面就是新建数据库页面,根据你的需要选择具体的数据库连接方式,填写好完成之后点击一下测试按钮,就可以知道数据库连接是否成功。

到这里,资源库的连接已经做了一半了。

接下来介绍另一半要做的事情。

回到这个页面,填写唯一的ID、名称,然后点击创建或更新按钮,之后会出现一些SQL语句,执行这些语句,如果成功的话就创建成功了,如果失败则要检查一下数据库。

最后点击确定按钮就成功了。

这个时候就可以连接资源库了。

选择你创建的资源库,admin用户的默认密码是admin ,点击OK就行了。

本地接下来简单介绍一下本地资源库,其实是很简单的。

选择第二行。

将会看到如下页面:这个就是本地的页面,比数据库简单多了,选择一下存放路径,给它一个ID号和名称,点击OK就可以了。

资源库建好之后就会进入到主页面了:这个就是主页面了,表面上是空空如也的。

关于资源库的设置就就讲到这里了,关于更多的介绍请参照官方说明文档!二:实现增量更新的方法Kettle工具并没有提供增量更新的选项,这个是要根据你的策略来实现的。

基本的策略是根据时间字段来做增量更新。

接下来我们就如何根据时间字段做增量更新。

要实现增量更新的前提必须是原表必须要有一个时间字段,然后目标表根据这个时间字段来做查询和更新。

(具体思想请参照开源ETL工具之增量更新设计技巧文档)如图:我将一一解释一下各个选项的具体作用。

第一个表输入:这个是要获取目标表要做增量更新的时间字段的最大值,这个值将会传递给下一个表输入。

此查询必须要保证只能传送一个值。

第二个表输入:这个就是对原表的查询,要注意SQL语句里面的where子句。

Where子句里面的判断字段就是做增量更新的时间字段,值就是前面一个表输入传递过来的。

此时判断的值要用?来代替,这两个选项要这样设置。

表输出:这里就是要进行更新的目标表了,也就是第一个表输入的表。

里面具体的一些选项请参照kettle工具说明手册。

以上就是增量更新的实现方法。

三:JOB定时的实现方法我们在实际应用当中往往要实现定时的功能,kettle提供了定时的功能,这个只能在任务里面实现定时的功能。

见如下图:在JOB里面的start选项里面提供了定时机制,可以根据你的需求来选择你需要的定时类型这里要注意一下,要定时的时候一定要把重复的按钮给勾选上。

这里是通过kettle提供的机制来进行定时的,另一种定时的机制是依靠写脚本语句来定时调用kettle脚本。

(这种我们在后面会在脚本调用介绍到)四:kettle变量的设置与获取变量在kettle里面使用的比较频繁,这里我就做一下简单的介绍,具体的变量设置请根据实际情况来设置。

我这里的案例是获取系统时间,然后分别设置四个变量,这四个变量分别代表着“年”、“月”、“日”、“时”。

如下图:变量的相关选项在转换里面中的作业里面。

我获取的是系统信息是:系统日期(关于这个选项请参看kettle手册)为了达到我之前的需求,我在这里运用了kettle另一个功能。

中的javascript脚本选项。

这个步骤是讲系统时间认为的分割为四个字段。

这四个字段将会作为变量的值传递到下一个步骤。

(关于这个选项请参看kettle手册)接下来就是到设置变量这个环节了。

后可以用变量名调用变量),第三是变量的活动类型(一般选择是作为全局变量)第四列是给变量设置默认值。

以上就是变量设置的相关介绍,变量在使用之前必须先执行这个变量设置的转换,这样在后面才能实现对变量的调用。

关于变量的获取,这个在选项中只要有这个标志的都是可以用变量的,变量的获取可以使用CTRL+ALT+SPACE快捷键来选择你所需要的变量名。

五:通过shell脚本调用kettle文件在部署有kettle工具的机器上可以通过写脚本文件来调用kettle文件,这样就能实现不打开kettle工具而后台实现kettle文件的运行。

在kettle工具的文件下有这样两个文件一下就是我在linux系统下写的一个脚本调用的案例:#!/bin/sh. /etc/profilesh /sybase/data-integration/kitchen.sh -rep=111 -user=admin -pass=admin -job=EXCL -dir="/EXCL/" -level=basic>/sybase/pdi/EXCLlog.txt~就关于几个参数做一下介绍。

sh /sybase/data-integration/kitchen.sh ——调用kettle文件下的kitchen.sh文件-rep=111 ——资源库ID-user=admin ——资源库登陆用户-pass=admin ——登陆密码-job=EXCL ——调用JOB的名称-dir="/EXCL/" ——JOB的存放路径-level=basic>/sybase/pdi/EXCLlog.txt ——kettle日志写入到文件中相关的一些参数的详细说明如下:Options:-rep = Repository name-user = Repository username-pass = Repository password-job = The name of the job to launch-dir = The directory (dont forget the leading /)-file = The filename (Job XML) to launch-level = The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing)-logfile = The logging file to write to-listdir = List the directories in the repository-listjobs = List the jobs in the specified directory-listrep = List the available repositories-norep = Do not log into the repository-version = show the version, revision and build date-param = Set a named parameter <NAME>=<VALUE>. For example -param:FOO=bar -listparam = List information concerning the defined parameters in the specified job.-export = Exports all linked resources of the specified job. The argument is the name of a ZIP file.-maxloglines = The maximum number of log lines that are kept internally by Kettle. Set to 0 to keep all rows (default)-maxlogtimeout = The maximum age (in minutes) of a log line while being kept internally by Kettle. Set to 0 to keep all rows indefinitely (default)在linux系统中可以使用crontab命令来做定时,下面就简单介绍一下这个命令。

crontab命令的功能是在一定的时间间隔调度一些命令的执行。

在/etc目录下有一个crontab 文件,这里存放有系统运行的一些调度程序。

每个用户可以建立自己的调度crontab。

crontab命令有三种形式的命令行结构:crontab [-u user] [file]crontab [-u user] [-e|-l|-r]crontab -l -u [-e|-l|-r] 第一个命令行中,file是命令文件的名字。

如果在命令行中指定了这个文件,那么执行crontab命令,则将这个文件拷贝到crontabs目录下;如果在命令行中没有制定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将他们也存放在crontab 目录下。

命令行中-r选项的作用是从/usr/spool/cron/crontabs目录下删除用户定义的文件crontab;命令行中-l选项的作用是显示用户crontab文件的内容。

使用命令crontab -u user -e命令编辑用户user的cron(c)作业。

用户通过编辑文件来增加或修改任何作业请求。

执行命令crontab -u user -r即可删除当前用户的所有的cron作业。

作业与它们预定的时间储存在文件/usr/spool/cron/crontabs/username里。

username使用户名,在相应的文件中存放着该用户所要运行的命令。

命令执行的结果,无论是标准输出还是错误输出,都将以邮件形式发给用户。

文件里的每一个请求必须包含以spaces和tabs分割的六个域。

前五个字段可以取整数值,指定何时开始工作,第六个域是字符串,称为命令字段,其中包括了crontab调度执行的命令。

第一道第五个字段的整数取值范围及意义是:0~59 表示分1~23 表示小时1~31 表示日1~12 表示月份0~6 表示星期(其中0表示星期日)/usr/lib/cron/cron.allow表示谁能使用crontab命令。

相关文档
最新文档