ETL利器Kettle实战应用解析系列一【Kettle使用介绍】
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
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是一款功能强大的开源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用法讲解
2.Kettle组件介绍与使用
2.1
Kettle的使用
Kettle提供了资源库的方式来整合所有的工作,; 1)创建一个新的transformation,点击 保存到本地路径,例如保存到 D:/etltest下,保存文件名为Trans,kettle默认transformation文件保存后 后缀名为ktr; 2)创建一个新的job,点击 保存到本地路径,例如保存到D:/etltest下, 保存文件名为Job,kettle默认job文件保存后后缀名为kjb;
核心对象菜单列出的是transformation中 可以调用的环节列表,可以通过鼠标拖 动的方式对环节进行添加: Input:输入环节 Output:输出环节 Lookup:查询环节 Transform:转化环节 Joins:连接环节 Scripting:脚本环节
2.2 Job 的主对象树和核心对象分别如下图:
3.kettle使用举例
3.1 建立转换
选中列表中的的“表输入”、“表输出”、“插入/更新”,拖拽到 右侧工作区。鼠标选中节点键盘按shift键,拖拽即可连线。下图是一 个转换,有两个动作,一是直接从数据源表同步数据到目标表,一是 检查源表的插入和更新,同步到目标表。
黑色线为生效,灰色线为失效,节点和连接可双击进行编辑
双击表输入可预览数据是否正确。
双击编辑表输出如下:
Hale Waihona Puke 要获取的字段设置如下所示:
点击输入字段映射进行字段选择。
选择要用的字段后点确定,注意字段的约束条件。
编辑好后点击上面的执行即可。
执行完成后可观看下方的日志
双击编辑“插入/更新”动作。
然后点击确定
执行前,在源库里加条新纪录。确定作业执行正常后可以保存作业。
KETTLE组件介绍及使用
KETTLE组件介绍及使用
KETTLE(Knowledge Extraction Toolkit)是一款用于ETL(Extract, Transform, Load)过程的开源数据集成工具。
它是由Pentaho开发的,主
要用于处理和转换各种数据源,将数据从一个地方提取出来,经过转换处
理后加载到另一个地方。
转换是指将数据从一个格式转换为另一个格式的过程。
在KETTLE中,转换通过连接和组合一系列转换步骤来完成。
每个步骤可以执行各种操作,如读取文件、提取数据库中的数据、过滤和清洗数据等。
用户可以通过拖
放步骤并设置相应的参数来构建转换。
作业是一系列转换的组合,可以按特定的顺序或条件运行。
作业可以
包含多个转换,并且可以在一个转换完成后触发另一个转换的运行。
作业
还可以设置并行运行多个转换,提高ETL过程的效率。
使用KETTLE的主要步骤包括:
2.启动KETTLE:安装完成后,可以通过双击KETTLE的可执行文件来
启动它。
一旦启动,就可以看到KETTLE的主界面。
总的来说,KETTLE是一款功能强大、易于使用的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使用详解
kettle使用详解Kettle, an open-source ETL (Extract, Transform, Load) tool, has emerged as a powerful solution for data integration tasks. It offers a graphical user interface that simplifies the complex processes involved in data integration, making it accessible even tonon-technical users.Kettle的使用非常详尽且灵活,它作为一个开源的ETL(提取、转换、加载)工具,在数据集成任务中展现出了强大的实力。
它提供了一个图形用户界面,简化了数据集成中涉及的复杂流程,使得非技术人员也能轻松上手。
One of the key features of Kettle is its ability to handle a wide range of data sources and targets. Whether you're working with relational databases, NoSQL databases, flat files, or even APIs, Kettle has the necessary components to extract data efficiently. Kettle的一个关键特性在于它能够处理多种数据源和目标。
无论是关系型数据库、NoSQL数据库、平面文件,还是API接口,Kettle都拥有必要的组件来高效提取数据。
The transformation step in Kettle is particularly impressive. It allows users to apply various operations on the extracted data, such as filtering, sorting, joining, and more. These transformations can be chained together to create complex data processing pipelines. Kettle中的转换步骤尤为出色。
kettle的用法
kettle的用法Kettle 是一款开源的 ETL(Extract, Transform, Load)工具,用于数据的提取、转换和加载。
它提供了一个图形化界面,使用户能够通过拖拽和连接组件来构建数据处理流程。
下面是一些 Kettle 的基本用法:1. 安装和启动 Kettle:首先,你需要下载并安装 Kettle。
然后,启动 Kettle 并打开 Spoon 应用程序。
2. 创建转换(Transformation):在 Spoon 中,点击“File”菜单,选择“New”,然后选择“Transformation”来创建一个新的转换。
3. 添加源和目标:在转换设计界面中,你可以通过拖拽源(Source)和目标(Target)组件来定义数据的来源和去处。
例如,你可以添加一个 CSV 文件读取源来读取 CSV 数据,然后添加一个数据库写入目标来将数据写入数据库。
4. 配置源和目标:双击源或目标组件,可以配置它们的属性。
你需要提供适当的连接信息、文件路径或数据库表名等。
5. 添加转换步骤:在源和目标之间,你可以添加各种转换步骤来对数据进行处理。
例如,你可以使用过滤(Filter)、排序(Sort)、字段转换(Field Transformer)等组件来修改数据。
6. 连接组件:通过连接(Connector)将源、转换步骤和目标组件连接起来,以定义数据的流动路径。
7. 运行转换:在完成转换设计后,你可以点击运行(Run)按钮来执行转换。
Kettle 将执行转换步骤,并将结果输出到目标。
8. 创建作业(Job):除了转换,你还可以创建作业来执行一系列相关的转换。
作业可以按照顺序执行多个转换,并可以设置执行时间和条件。
9. 保存和部署:在完成转换或作业的设计后,记得保存你的工作。
你可以将转换或作业保存为 KTR 或 JAR 文件,以便在其他环境中部署和运行。
这只是 Kettle 的一些基本用法,它还提供了更多高级功能和扩展选项,例如数据清洗、数据集成、数据仓库等。
KETTLE使用说明(中文版)
7.0 Flow : 空操作(什么也不做)
这个操作说明都不做,它的主要作用是,在你想做测试的时候,充当一个占位符。
7.1 Flow : 过滤记录
这个步骤根据条件和比较符来过滤记录。 发送true数据给步骤: 指定条件返回true的数据将发送到此步骤 发送false数据给步骤: 指定条件返回false 的数据将发送到此步骤。 True 和false 步骤必须指定。
1.2 安装kettle 要运行Kettle ,必须按安装java 环境1.4或以上版本,kettle下载可以到: 取得最新版本。(pdi-ce-4.0.1-stable.zip) 1.3 运行spoon 下面是不同平台上运行spoon 所支持的脚本 : spoon.bat windows 平台运行Spoon. Spoon.sh linux 平台运行Spoon. 1.4 资源库 一个Kettle 资源库可以包含那些转换信息,这意味着为了从数据资源中加载一个转 换,你必须连接相应的资源库。
连接名称 : 选择数据库序列存在的 连接名称 序列名称: 数据库序列的名称 使用计数器来计算序列: 如果想使用kettle生成的 序列,使用此项。
计数器名称(可选):如果一个转换中多个步
骤生成同样的值名称,这个选项允许你指定计数 器的名称,避免按照先后顺序通过多个步骤。 起始值: 序列的起始值 增量 : 序列的增量 最大值 : 序列的最大值,如果超过,将重新开始
1.6.2 任务 1. Job Entry : 一个 一个Job Entry 是一个任务的一部分,它执行某些内容。 是一个任务的一部分,它执行某些内容。 2. Hop: 一个 一个Hop 代表两个步骤之间的一个或者多个数据流。一个 代表两个步骤之间的一个或者多个数据流。一个Hop总是代 总是代 表着两个Job Entry 之间的连接,并且能够被原始的 之间的连接,并且能够被原始的Job Entry设置,无 设置, 表着两个 设置 条件的执行下一个JobEntry,直到执行成功或者失败。 直到执行成功或者失败。 条件的执行下一个 直到执行成功或者失败
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+鼠标拖动,实现环节之间的连接。
常用节点介绍(红色节点后面逐一演示)表输入双击拖动到工作面板上的表输入结点,选择(或者新建)所需要的数据库连接,点击获取SQL查询语句或自行编辑SQL。
若需根据前一步获取数据进行查询,可用“?”号代替,变量顺序与前一节点相同字段选择界面如下:选择和修改:指定需要流到输出流中的字段的精确顺序和名称删除:指定从输出流中删除的字段(以后输出流将不会获取到此数据) 元数据:修改元数据字段的名称、类型、长度和精度✓插入/更新如下图,表示当原表的id=new_test.id时,比较createdate和account,若不同就进行更新,如果没有此id就插入该数据运行Transformation:一个简单的Transformation如下:这里可以不用配置直接启动执行结果中可以查到执行步骤以及输出日志新建一个Job核心对象菜单列出的是Job中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加。
Kettle使用+说明
2014/10/06
设置和坑[1]
• 需要配置pentaho-big-data-plugin 目录中的plugin.properties文件
▫ 把active.hadoop.configuration = 的值改成 hadp20
• mysql貌似连不上,需要把mysql-connector-java-***-bin.jar 放到lib目录中
Transformation举例二:支持hive表操作
• 支持Hive的表操作,结合使用hadoop file output 可以支持从关系型 数据库向hive表中导入数据
Transformation举例三:数据同步
Hyperbase 外表
改表的列的 顺序和类型
• 支持数据更新和同步
▫ 两张表的列的顺序和数据格式必须一模一样 ▫ 注意hyperbase id 为字典序,但RDB id则不一定
combined with transactions: This status table holds for all jobs/transformations all tables that need to be in a consistent state. For all tables the last processed keys (source/target) and the status is saved. Some tables might need compound keys depending on the ER-design. It is also possible to combine this approach with the own Kettle transformation log tables and the Dates and Dependencies functionality. There is an extended example in the Pentaho Data Integration for Database Developers (PDI2000C) course in module ETL patterns (Patterns: Batching, Transaction V - Status Table) • Snapshot-Based CDC • When no suitable time stamps or IDs are available or when some records might have been updated, you need the snapshot-based approach. Store a copy of the loaded data (in a table or even a file) and compare record by record. It is possible to create a SQL statement that queries the delta or use a transformation. Kettle supports this very comfortable by the Merge rows (diff) step. There is an extended example in the Pentaho Data Integration for Database Developers (PDI2000C) course in module ETL patterns (Pattern: Change Data Capture) • Trigger-Based CDC • Kettle does not create triggers in a database system and some (or most?) people don't like the trigger-based CDC approach because it introduces a further layer of complexity into another system. Over time it is hard to maintain and keep in sync with the overall architecture. But at the end, it depends on the use case and might be needed in some projects. There are two main options: • Create a trigger and write the changed data to a separate table • This table has a time stamp or sequenced ID that can be used to select the changed data rows. • Create a trigger and call Kettle directly via the Kettle API • This scenario might be needed in real-time CDC needs, so a Kettle transformation might be called directly from the trigger. Some databases support Java calls from a trigger (e.g. PL/Java for PostgreSQL or Oracle, see References below). • If you are using Hibernate to communicate with the database, you can use Hibernate event listeners as triggers (package summary). That way it would work with every database when you use standard SQL queries or HQL queries in the triggers. • Database Log-Based CDC • Some databases allow own CDC logs that can be analyzed. • Real-time CDC • So in case you need Real-time CDC, some of the above solutions will solve this need. Depending on the timing (how real-time or near-time) your needs are, you may choose the best suitable option. The trigger based call of Kettle is the most real-time solution. It is also possible to combine all of the above solutions with a continuously executed transformation (e.g. every 15 minutes) that collects the changed data.
kettle使用说明(简版)
Kettl e使用说明简版1、文档说明本文档主要介绍我们实际应用中使用Kettle工具来开发ETL过程的相关说明,内部文档,仅供参考.2、ETL流程图3、关键操作介绍3.1创建资源库[对象位置]:登陆界面[实现功能]:配置存储相关转换、任务及相关附属信息的数据库[操作说明]:1)进入登陆界面:2)点击新建按钮,进入配置界面,填写相关信息3)填写完毕,可测试是否成功,成功后,进入如下界面,点创建或更新4)创建完毕可用资源库用户登录Kettle,默认用户名,密码:admin/admin[备注]:我们一般建立一个独立的数据库用户,专门存储Kettle相关信息,资源库就连接在这个数据库用户上3.2创建转换[对象位置]:文件〉〉新建〉〉转换[实现功能]:将库A的表A1中的数据经过一定转换,插入到库B的表B1[操作说明]:1)新建一个转换2)将“核心对象〉〉输入〉〉表输入”拖到转换设置面板3)双击“表输入”,进入脚本编辑界面:本界面可以设置数据库连接,点“新建”可以创建一个新的数据库连接,点“编辑”更改数据库连接,然后编辑好相关提取语句:4)将“核心对象〉〉输出〉〉表输出”拖到转换设置面板5)双击“表输出”,进入脚本编辑界面:本界面需要选择数据转入目标表的数据库连接,以及目标表的表名称,如果数据量比较大的话,可以设置每次提交的数据量6)将表输入和表输出连接:按住shift,鼠标从“表输入”拖到“表输出”,如图:7)该转换编辑成功,可以保存并执行测试[保存]:[执行]:8)执行成功后便可以编辑其它转换,过程类似[备注]:1)编写的SQL语句的字段别名要与数据转入的目标表的字段名称一致;2)语句最后不能有标点;3)若SQL中有参数的话,需要将“替换SQL语句中的变量”选中;4)转换前可以执行一些脚本比如:将“脚本〉〉执行SQL脚本”拖入,并连接即可,双击可编辑SQL(需要有分号,若更新库则需要提交)3.3创建任务[对象位置]:文件〉〉新建〉〉任务[实现功能]:将多个操作串行合并,形成一个整体任务,其中的操作可以是转换、任务、脚本等等[使用说明]:1)新建一个任务2)拖入几个任务对象,可以是转换、任务、脚本等,并连接,如图:3)双击相关对象进行编辑,需要选择已经建立好的转换(任务名称)名称4)所有中间步骤的对象都已设定好以后,保存任务,执行测试任务[备注]:任务中各对象执行,以前一对象成功执行为前提,若任务里,包含多个子任务,如果各任务之间相互独立,可以在子任务中拖入“success”对象,否则当母任务中某一对象执行失败,则任务停止。
开源ETL工具之Kettle介绍
开源ETL⼯具之Kettle介绍What起源Kettle是⼀个Java编写的ETL⼯具,主作者是Matt Casters,2003年就开始了这个项⽬,最新稳定版为7.1。
2005年12⽉,Kettle从2.1版本开始进⼊了开源领域,⼀直到4.1版本遵守LGPL协议,从4.2版本开始遵守Apache Licence 2.0协议。
Kettle在2006年初加⼊了开源的BI公司Pentaho, 正式命名为:Pentaho Data Integeration,简称“PDI”。
⾃2017年9⽉20⽇起,Pentaho已经被合并于⽇⽴集团下的新公司: Hitachi Vantara。
总之,Kettle可以简化数据仓库的创建,更新和维护,使⽤Kettle可以构建⼀套开源的ETL解决⽅案。
架构Kettle是⼀个组件化的集成系统,包括如下⼏个主要部分:1.Spoon:图形化界⾯⼯具(GUI⽅式),Spoon允许你通过图形界⾯来设计Job和Transformation,可以保存为⽂件或者保存在数据库中。
也可以直接在Spoon图形化界⾯中运⾏Job和Transformation,2.Pan:Transformation执⾏器(命令⾏⽅式),Pan⽤于在终端执⾏Transformation,没有图形界⾯。
3.Kitchen:Job执⾏器(命令⾏⽅式),Kitchen⽤于在终端执⾏Job,没有图形界⾯。
4.Carte:嵌⼊式Web服务,⽤于远程执⾏Job或Transformation,Kettle通过Carte建⽴集群。
5.Encr:Kettle⽤于字符串加密的命令⾏⼯具,如:对在Job或Transformation中定义的数据库连接参数进⾏加密。
基本概念1.Transformation:定义对数据操作的容器,数据操作就是数据从输⼊到输出的⼀个过程,可以理解为⽐Job粒度更⼩⼀级的容器,我们将任务分解成Job,然后需要将Job分解成⼀个或多个Transformation,每个Transformation只完成⼀部分⼯作。
2024版kettle使用教程(超详细)
分布式计算原理
阐述Kettle分布式计算的原理, 如何利用集群资源进行并行处理 和任务调度。
01 02 03 04
集群配置与部署
详细讲解Kettle集群的配置步骤, 包括环境准备、节点配置、网络 设置等。
集群监控与管理
介绍Kettle提供的集群监控和管 理工具,方便用户实时了解集群 状态和作业执行情况。
03
实战演练
以一个具体的实时数据处理任务为例, 介绍如何使用Kettle设计实时数据处理 流程。
案例四:Kettle在数据挖掘中应用
数据挖掘概念介绍
01
数据挖掘是指从大量数据中提取出有用的信息和知识的
过程,包括分类、聚类、关联规则挖掘等任务。
Kettle在数据挖掘中的应用
02
Kettle提供了丰富的数据处理和转换功能,可以方便地
Chapter
案例一:ETL过程自动化实现
ETL概念介绍
ETL即Extract, Transform, Load,是数据仓 库技术中重要环节,包括数据抽取、清洗、转 换和加载等步骤。
Kettle实现ETL过程
通过Kettle的图形化界面,可以方便地设计ETL流程, 实现数据的自动化抽取、转换和加载。
作业项配置
对作业项进行详细配置,包括数据源、目标库、 字段映射等。
作业项管理
支持作业项的复制、粘贴、删除等操作,方便快速构建作业。
定时任务设置与执行
定时任务设置
支持基于Cron表达式的定时任务设置,实现 周期性自动执行。
立即执行
支持手动触发作业执行,满足即时数据处理 需求。
执行日志查看
kettle 分层解析
kettle 分层解析摘要:一、Kettle介绍1.Kettle的定义2.Kettle的作用二、Kettle的组件1.Kettle主界面2.Kettle元数据3.Kettle作业设计器4.Kettle转换设计器5.Kettle数据源6.Kettle数据目标三、Kettle的安装与配置1.安装环境2.安装步骤3.配置Kettle四、Kettle的使用1.导入和导出数据2.数据转换3.作业调度五、Kettle的案例分析1.案例一2.案例二3.案例三正文:一、Kettle介绍Kettle是一款开源的ETL工具,主要用于数据抽取、转换和加载。
它具有强大的功能和灵活的配置选项,可以帮助用户轻松地处理各种数据问题。
Kettle不仅可以用于数据集成,还可以用于数据清洗、数据转换、数据汇总等任务,是数据处理领域的重要工具之一。
二、Kettle的组件1.Kettle主界面:Kettle的主界面提供了各种工具栏、菜单和选项卡,方便用户进行各种操作。
2.Kettle元数据:Kettle元数据用于描述数据源和目标的数据结构,帮助用户更好地理解数据。
3.Kettle作业设计器:Kettle作业设计器用于创建和管理数据处理作业,包括各种转换和任务。
4.Kettle转换设计器:Kettle转换设计器用于创建和管理数据转换步骤,包括各种操作和函数。
5.Kettle数据源:Kettle支持多种数据源,如数据库、文件、Web服务等,方便用户连接和提取数据。
6.Kettle数据目标:Kettle支持多种数据目标,如数据库、文件、Web服务等,方便用户将处理后的数据加载到目标系统中。
三、Kettle的安装与配置1.安装环境:Kettle支持各种操作系统,如Windows、Linux和Mac OS 等。
用户需要确保安装环境满足Kettle的系统要求。
2.安装步骤:用户可以下载Kettle的安装包,然后按照安装向导的提示完成安装过程。
3.配置Kettle:安装完成后,用户需要配置Kettle,包括设置数据源和目标、激活插件等。
ETL技术报告-kettle简介以及使用Kettle建立一个简单的数据仓库
2021/7/26
4
Kettle的下载与安装
可以去Kettle的官网上去下载 / 我下载的是pdi-ce-4.1.0-stable.zip
2021/7/26
16
2021/7/26
17
表连接
点击左侧的“核心对象”,点击“连接”, 选中”Merge Join“,拖动到主窗口释放 鼠标。然后,点击表输入,按住shift键,再 拖动鼠标到Merge Join,这时就实现了在 两个组件之间的连线。
2021/7/26
18
表连接
双击“Merge Join ”,进行如下图的设置
2021/7/26
22
执行transformation
这样,我们的transformation就创建完成 了,这时,我们可以点击运行,测试创建的 transformation是否成功。
点击 按钮,就会执行ETL过程,这时我 们可以查看数据仓库的表,如果有数据,并 符合我们的要求,那么说明我们的 transformation成功了。
kettle不需要安装,直接解压,运行 spoon.bat即能看到kettle的欢迎界面。需 要注意的是,计算机上必须装有JDK,否则 kettle无法运行。
2021/7/26
5
简单的示例
说明:通过下面这个示例简单介绍了kettle
的一种种脚本:transformation 。
假设:在销售水果的时候需要统计水果的一 些信息。其中水果的产地之类的信息存在一 个数据库中。价格和销售情况的信息存放在 另一个数据库中。这些信息可以使用不同的 数据库,存放在不同的计算机上。由于计算 机硬软件的限制,我的实验只能在一台计算 机上使用同一种数据库来完成。
KETTLE使用说明
KETTLE使用说明在本使用说明中,我们将详细介绍如何使用KETTLE完成一些常见的数据处理任务。
第一步:安装和启动KETTLE在Windows中,双击运行Spoon.bat文件来启动KETTLE。
在Linux 和Mac OS中,打开终端,进入KETTLE目录,输入"./spoon.sh"命令来启动KETTLE。
第二步:创建一个新的数据流程启动KETTLE后,您将看到一个图形化界面。
在左上角的工具栏中,有一个新建按钮,点击它来创建一个新的数据流程。
在创建数据流程时,您需要为其指定一个名称。
完成后,点击确定按钮。
第三步:添加数据源在左侧的工具箱中,您可以找到各种组件,如输入步骤、输出步骤、转换步骤等。
为了演示,我们先添加一个输入步骤。
在工具箱中,找到输入步骤,并将其拖放到主界面中。
然后,双击该步骤,在弹出的对话框中配置数据源。
在配置对话框中,您需要指定数据源的类型,如文本文件、Excel文件、数据库等。
根据不同的类型,您可能需要提供相应的连接信息。
完成配置后,点击确定按钮。
在数据流程中,您可以使用转换步骤对数据进行处理。
为了演示,我们使用一个简单的转换步骤来删除重复的数据。
在工具箱中,找到去重复步骤,并将其拖放到已添加的输入步骤的下方。
然后,双击该步骤,在弹出的对话框中配置参数。
在配置对话框中,您需要指定要去重的字段。
您可以选择多个字段以进行复合去重。
完成配置后,点击确定按钮。
第五步:添加输出在数据流程中,您也需要指定一个输出步骤来保存处理后的数据。
在工具箱中,找到输出步骤,并将其拖放到已添加的去重复步骤的下方。
然后,双击该步骤,在弹出的对话框中配置输出格式和目标文件。
在配置对话框中,您需要指定输出的格式,如文本文件、Excel文件、数据库等。
根据不同的格式,您可能需要提供相应的连接信息。
完成配置后,点击确定按钮。
第六步:保存和运行数据流程完成对数据流程的配置后,点击工具栏中的保存按钮来保存数据流程。
ETL及kettle介绍知识讲解
E T L及k e t t l e介绍目录1. ETL知识 (3)1.1. ETL定义 (3)1.1.1. 定义 (3)1.1.2. 前提 (3)1.1.3. 原则 (3)1.2. 模式及比较 (4)1.3. ETL过程 (7)1.3.1. 总流程 (7)1.3.2. 数据抽取流程 (8)1.3.3. 数据清洗流程 (8)1.3.4. 数据转换流程 (10)1.3.5. 数据加载流程 (11)1.4. 问题分析 (12)1.4.1. 字符集问题 (12)1.4.2. 缓慢变化维处理 (13)1.4.3. 增量、实时同步的处理 (13)1.4.4. 断点续传 (14)1.5. ETL工具 (14)2. Kettle简介及使用 (15)2.1. 什么Kettle? (15)2.2. 下载及安装Kettle (15)2.3. Kettle简单例子 (17)2.3.1. 启动Kettle (17)2.3.2. 创建transformation过程 (18)2.3.3. 创建job过程 (38)2.3.4. 命令行运行ktr和kjb (42)1.ETL知识1.1.ETL定义1.1.1.定义●定义:数据的抽取(Extract)、转换(Transform)、装载(Load)的过程。
●目标:数据优化。
以最小代价(包括对日常操作的影响和对技能的要求) 将针对日常业务操作的数据转化为针对数据仓库而存储的决策支持型数据。
1.1.2.前提●确定ETL范围通过对目标表信息的收集,确定ETL的范围●选择ETL工具考虑资金运行的平台、对源和目标的支持程度、可编程的灵活性、对源数据变化的监测、数据处理时间的控制、管理和调度功能、对异常情况的处理●确定解决方案抽取分析、变化数据的捕获、目标表的刷新策略、数据的转换及数据验证1.1.3.原则●应尽量利用数据中转区对运营数据进行预处理。
保证数据的安全性、集成与加载的高效性。
●ETL的过程应是主动“拉取”,而不是从内部“推送”,其可控性将大为增强。
Kettle命令行使用说明
Kettle命令行使用说明Kettle命令行使用说明1.KETTLE简介说到ETL开源项目,Kettle当属翘首,项目名称很有意思,水壶。
按项目负责人Matt 的说法:把各种数据放到一个壶里,然后呢,以一种你希望的格式流出。
呵呵,外国人都很有联想力。
看了提供的文档,然后对发布程序的简单试用后,可以很清楚得看到Kettle的四大块:1)Chef——工作(job)设计工具(GUI方式)2)Kitchen——工作(job)执行器(命令行方式)3)Spoon——转换(transform)设计工具(GUI方式)4)Span——转换(trasform)执行器(命令行方式)1.1.Chef——工作(job)设计器这是一个GUI工具,操作方式主要通过拖拖拉拉,勿庸多言,一看就会。
何谓工作?多个作业项,按特定的工作流串联起来,开成一项工作。
正如:我的工作是软件开发。
我的作业项是:设计、编码、测试!先设计,如果成功,则编码,否则继续设计,编码完成则开始设计,周而复始,作业完成。
1.1.1.Chef中的作业项包括:1)转换:指定更细的转换任务,通过Spoon生成。
通过Field来输入参数;2)SQL:sql语句执行;3)FTP:下载ftp文件;4)邮件:发送邮件;5)检查表是否存在;6)检查文件是否存在;7)执行shell脚本:如dos命令。
8)批处理:(注意:windows批处理不能有输出到控制台)。
9)Job包:作为嵌套作业使用。
10)JavaScript执行:这个比较有意思,我看了一下源码,如果你有自已的Script引擎,可以很方便的替换成自定义Script,来扩充其功能;11)SFTP:安全的Ftp协议传输;12)HTTP方式的上/下传。
1.1.2.工作流如上文所述,工作流是作业项的连接方式。
分为三种:无条件,成功,失败,为了方便工作流使用,KETTLE提供了几个辅助结点单元(也可将其作为简单的作业项):Start单元:任务必须由此开始。
ETL利器KETTLE实战应用解析之KETTLE后台进程执行配置方式
1、简介Kettle的Kitchen和Span前面两篇文章中主要讲述了Kettle的 Spoon的转换和作业的GUI设计方式以及运行,也给出了Demo实战,那么实际上我们的应用模式可能会要求在服务器上以后台进程的方式运行这个ETL任务,就像我们传统上一般都是用Windows服务的方式来处理数据一样,那么用Kettle 我们怎么去实现呢?这就需要我们了解一下Kettle的Kitchen和Span。
Kitchen——工作(job)执行器(命令行方式)Span——转换(trasform)执行器(命令行方式)这里我们重点讲一下 Kitchen.bat作业执行器,这个是经常要用到的。
它是一个作业执行引擎,用来执行作业。
这是一个命令行执行工具,它的参数说明如下:-rep : Repository name 任务包所在存储名-user : Repository username 执行人-pass : Repository password 执行人密码-job : The name of the job to launch 任务包名称-dir : The directory (don''t forget the leading / or \)-file : The filename (Job XML) to launch-level : The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing) 指定日志级别-log : The logging file to write to 指定日志文件-listdir : List the directories in the repository 列出指定存储中的目录结构。
-listjobs : List the jobs in the specified directory 列出指定目录下的所有任务-listrep : List the defined repositories 列出所有的存储-norep : Don''t log into the repository 不写日志2、命令行调度任务配置方式还是拿我在前面文章中提到的第一个例子来去讲一下具体的配置方式,主要的思路就行首先定位到kettle中Kitchen.bat的根目录,然后执行kitchen命令;步骤1:首先我们建立一个bat文件,然后点击编辑进入之后,如下所示,这是定位到Kitchen.bat 的目录;E:cd E:\ETL\pdi-open-3.1.0-826步骤2:执行kitchen命令,如下:kitchen /file:E:\ETL\脚本文件\MyTest.kjb /level:Basic>>D:\MyTest.log这里注意配正确路径,然后后面是一个基本的日志模式,后面也需要配置日志的输出路径;3、后台进程配置运行方式前面我们已经把bat文件建立起来了,这时候我们可以以bat方式运行我们的ETL任务了,不过它的问题是服务器桌面上永远有个黑CMD屏幕,而且不能关,怎么让Bat在屏幕上消失而后台还能运行呢?具体方法有很多种这里介绍两种:方法一bat里有隐藏窗口的命令,很简单,只需要在代码头部加一段代码就可以了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 JDK
1)首先到官网上下载对应JDK包,JDK1.5或以上版本就行;
2)安装JDK;
3)配置环境变量,附配置方式:
安装完成后,还要对它进行相关的配置才可以使用,先来设置一些环境变量,对于Java来说,最需要设置的环境变量是系统路径变量path。
(1)要打开环境变量的设置窗口。
右击“我的电脑”,在弹出的快捷菜单中选择“属性”选项,进入“系统属性”对话框,如图所示。
选择“高级”标签,进入“高级”选项卡,再单击“环境变量”按钮,进入“环境变量”对话框,如图所示:
(2)在“A dministrator的用户变量”列表框中,选择变量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 文件,出现如下界面:
这样配置环境这一块基本上就完成了。
4、Kettle使用及组件介绍
ž4.1 Kettle使用
Kettle提供了资源库方式的方式来整合所有的工作,但是因为资源库移植不方便,所以我们选择没有资源库;
1)创建一个新的transformation,点击保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestTrans,kettle默认transformation文件保存后后缀名为ktr;
2)创建一个新的job,点击保存到本地路径,例如保存到D:/etltest下,保存文件名为EtltestJob,kettle默认job文件保存后后缀名为kjb;
4.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 文本文件输出将处理结果输出到文本文件
表输出将处理结果输出到数据库表
插入/更新
根据处理结果对数据库表机型插入更新,如果数据库中不存
在相关记录则插入,否则为更新。
会根据查询条件中字段进
行判断
更新
根据处理结果对数据库进行更新,若需要更新的数据在数据
库表中无记录,则会报错停止
删除根据处理结果对数据库记录进行删除,若需要删除的数据在
4.3 Job任务介绍
ž常用环节介绍Main Tree菜单列出的是一个Job中基本的属性,可以通过各个节点来查看。
DB连接:显示当前Job中的数据库连接,每一个Job 的数据库连接都需要单独配置。
Job entries:一个Job中引用的环节列表
Job entries菜单列出的是Job中可以调用的环节列表,可以通过鼠标拖动的方式对环节进行添加。
每一个环节可以通过鼠标拖动来将环节添加到主窗口中。
并可通过shift+鼠标拖动,实现环节之间的连接。
类别环节名称功能说明
Job entries START 开始
DUMMY 结束
Transformation 引用Transformation流程Job 引用Job流程。