# kettle-manager **Repository Path**: amtech/kettle-manager ## Basic Information - **Project Name**: kettle-manager - **Description**: 专门为kettle这款优秀的ETL工具开发的web端管理工具。 - **Primary Language**: JavaScript - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 191 - **Created**: 2024-01-23 - **Last Updated**: 2024-01-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 平台简介 基于kettle的数据流转平台,依托kettle的灵活性及丰富的组件生态,能灵活的实现各类复杂需求,本平台可以单纯作为一个kettle的调度平台,也可以作为一个灵活的数据流转平台,二者将是最完美的组合。 平台创建的作业最终都是生成kettle作业,有特殊需求可以在kettle中直接进行修改以满足特殊需求,灵活才是长期存活的基础。 其他非常规作业可以直接在kettle中设计后在本平台内进行统一调度管理。 本平台足够灵活,所谓有容乃大如是也,自身虽然已经足够强大,但仍具备不可比拟的包容性,任何外部优秀的东西都可以集成进来,因此本平台也是很完美的所有后台任务的统一管理平台。 kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,一般的使用都是使用客户端操作管理,但问题是当投入生产环境使用时,动辄几百上千个job需要管理,这时在使用客户端管理已经很难完成了。我所知道的解决方案有用命令行的调用的,操作极其麻烦,难以维护,总之还是很难用啦,还有就是开发web端管理工具,kettle自带了一个web端管理工具,界面极其简陋不说,还很难用,基本无法投入生产环境使用,其他没留意到还有没有较好对众多job进行管理的工具。 基于以上情况和我多年的kettle定制开发与使用经验。我设计并开发了数据大师,在kettle的基础上,将常用的场景迁移到web端,使运维人员甚至普通客户都能实现常见需求,我的目标是web端能实现70%的需求,剩余一些特殊少见的需求则由数据人员在kettle中直接实现,然后统一在本平台调度管理。 本平台的具体优势请参考“平台特性”章节。 # 平台界面 ![作业管理](https://trimdata.cn:2000/sjsj-ht/default?sjdx.dxdm=SYS_QX_QTQX&sys.cllx=download&yobj.id=2CBD8CA826F34DB880B27B25EDE721C8) # 平台特性 1. 【新】支持在一个调度中同时调度多个资源库的任务,也支持一个资源库的任务在多个调度节点上执行,同时支持在一个管理系统中同时管理多个调度节点。 1. 新增支持设置作业启动时执行,支持cron定时,使定时设置更加灵活。 1. 平台内支持创建:数据流转作业(暂时取消,设计有点复杂不太实用,目前有数据同步任务)、KM作业、javascript作业、shell作业、sql作业。 1. 本平台能自动检测作业运行异常信息,便于平台运行状况跟踪,当作业量很大时,很难逐个作业查看运行情况。 1. 本平台提供基础的运行日志,作为作业运行情况的回溯依据,便于事后问题排查。 1. 平台提供设计好的数据流转日志功能,更接近业务层,用户可以根据需要使用。 1. 平台提供转换管理,当前转换管理只提供查看、删除、查看转换图功能,将来根据需要提供导入功能。 1. 数据库管理是管理kettle中配置的数据库信息,若是完全深入采用数据世界平台,那么这里的数据库都将采用jndi的形式关联使用数据世界中的数据载体管理,一处配置全平台通用,若是直接在kettle中配置的数据库,此处可以进行密码解密。 # 一些说明 1. 本平台2015年投入使用,我们公司已经在多地部署使用,开源以来,外部也有大量用户,所有基础的作业调度功能已经稳定,新添加的功能基本属于锦上添花,有些小bug也难免,欢迎反馈,让我们一起让他变得更好。 2. 本系统是基于数据库资源库设计的,暂时不考虑支持文件资源库,当前支持oracle和mysql。 3. 关于kettle版本的问题,当前版本开发使用的是8.3版,之前版本采用5.4开发,目前建议使用8.3版 # 关键信息 1. [项目文档地址](https://trimdata.cn:2000/sjsj2/#/singleHome/sjdx?sjdx.dxdm=SYS_SJGL_GRBJ&sys.cllx=ckwd&yobj.ckwd=33FC64D3885C46BEA2BAACF74BBCBD82&) 1. 项目源码 1. https://gitee.com/majinju/kettle-manager.git 之前的kettle-manager仓库,针对数据大师项目的web项目。 1. https://gitee.com/majinju/myutils-kettle.git 我的工具集kettle相关子项目 1. 问题反馈邮箱:jinjuma@yeah.net。 1. 项目交流qq群:320302530(已满勿加),交流2群:142104962(已满勿加),交流3群:142105082。 # 常见问题 ## 作业添加 1. 本平台是直接读取你数据库资源的v_job视图,这个视图包装了一下r_job表,你可以通过修改视图达到隐藏一些作业的目的。 2. R_job是kettle资源库的系统表,只要你连接这个资源库设计的作业,都会记录在这个表中,所以你只需按照平常的习惯,连接与本平台配置的相同的资源库设计作业即可,因为读取的是同一张表,所以不需要额外的操作,直接就可以在本平台中看到你的作业并进行调度。 3. 有外部作业需要添加到本平台,你只需直接使用kettle的Spoon工具,连接同一个资源库进行导入操作,这个数据人员都很熟悉。 4. 我觉得没必要在页面支持作业导入功能,不知是否有这样的需求,这个暂时不开发。 ## 查看转换 1. 关于这个问题,我一直很困惑,为毛要直接查询运行转换,作业和转换可谓各司其职,我认为要运行转换就需要在其上包装一个作业,不管是否有其他流程依赖的需求。 2. 当前新版本已经提供转换查看功能,支持直接在调度中将转换包装为作业进行运行。 # 注意事项 1. 不要使用系统自带的记事本编辑配置文件,否则会导致系统无法正常读取你修改的配置文件,可以使用editpuls或notepad++。当出现奇葩问题时要想起这个提示。 1. 相关文件最好不要存放在有空格或中文的目录下,避免不必要的麻烦。 # 后续计划 1. 任务管理在设置定时时可能需要人为分散定时,考虑生成时间-运行任务数的分析图辅助进行分散定时。 8. 权限管理,不同用户看到自己的作业,管理员看所有作业。 9. 分布式、集群支持,考虑增加容灾机制。 10. 根据日志加入一些统计功能