数据大师(原kettle-manager)

原创
2023/06/06 22:36
阅读数 1.5K

平台简介

基于kettle的数据流转平台,依托kettle的灵活性及丰富的组件生态,能灵活的实现各类复杂需求,本平台可以单纯作为一个kettle的调度平台,也可以作为一个灵活的数据流转平台,二者将是最完美的组合。

平台创建的作业最终都是生成kettle作业,有特殊需求可以在kettle中直接进行修改以满足特殊需求,灵活才是长期存活的基础。

其他非常规作业可以直接在kettle中设计后在本平台内进行统一调度管理。

本平台足够灵活,所谓有容乃大如是也,自身虽然已经足够强大,但仍具备不可比拟的包容性,任何外部优秀的东西都可以集成进来,因此本平台也是很完美的所有后台任务的统一管理平台。

kettle作为非常优秀的开源ETL工具得到了非常广泛的使用,一般的使用都是使用客户端操作管理,但问题是当投入生产环境使用时,动辄几百上千个job需要管理,这时在使用客户端管理已经很难完成了。我所知道的解决方案有用命令行的调用的,操作极其麻烦,难以维护,总之还是很难用啦,还有就是开发web端管理工具,kettle自带了一个web端管理工具,界面极其简陋不说,还很难用,基本无法投入生产环境使用,其他没留意到还有没有较好对众多job进行管理的工具。

基于以上情况和我多年的kettle定制开发与使用经验。我设计并开发了数据大师,在kettle的基础上,将常用的场景迁移到web端,使运维人员甚至普通客户都能实现常见需求,我的目标是web端能实现70%的需求,剩余一些特殊少见的需求则由数据人员在kettle中直接实现,然后统一在本平台调度管理。

本平台的具体优势请参考“平台特性”章节。

平台界面

作业管理

平台特性

  1. 【新】支持在一个调度中同时调度多个资源库的任务,也支持一个资源库的任务在多个调度节点上执行,同时支持在一个管理系统中同时管理多个调度节点。
  2. 新增支持设置作业启动时执行,支持cron定时,使定时设置更加灵活。
  3. 平台内支持创建:数据流转作业(暂时取消,设计有点复杂不太实用,目前有数据同步任务)、KM作业、javascript作业、shell作业、sql作业。
  4. 本平台能自动检测作业运行异常信息,便于平台运行状况跟踪,当作业量很大时,很难逐个作业查看运行情况。
  5. 本平台提供基础的运行日志,作为作业运行情况的回溯依据,便于事后问题排查。
  6. 平台提供设计好的数据流转日志功能,更接近业务层,用户可以根据需要使用。
  7. 平台提供转换管理,当前转换管理只提供查看、删除、查看转换图功能,将来根据需要提供导入功能。
  8. 数据库管理是管理kettle中配置的数据库信息,若是完全深入采用数据世界平台,那么这里的数据库都将采用jndi的形式关联使用数据世界中的数据载体管理,一处配置全平台通用,若是直接在kettle中配置的数据库,此处可以进行密码解密。

一些说明

  1. 本平台2015年投入使用,我们公司已经在多地部署使用,开源以来,外部也有大量用户,所有基础的作业调度功能已经稳定,新添加的功能基本属于锦上添花,有些小bug也难免,欢迎反馈,让我们一起让他变得更好。
  2. 本系统是基于数据库资源库设计的,暂时不考虑支持文件资源库,当前支持oracle和mysql。
  3. 关于kettle版本的问题,当前版本开发使用的是8.3版,之前版本采用5.4开发,目前建议使用8.3版

关键信息

  1. 项目文档地址
  2. 部署文档
  3. 项目源码
    1. https://gitee.com/majinju/kettle-manager.git 之前的kettle-manager仓库,针对数据大师项目的web项目。
    2. https://gitee.com/majinju/myutils-kettle.git 我的工具集kettle相关子项目
    3. 有些依赖没有上传到maven仓库,建议直接采用项目中doc/lib中的依赖包。
    4. 数据库脚本请从部署包中获取。
  4. 问题反馈邮箱:jinjuma@yeah.net。
  5. 项目交流qq群:320302530(已满勿加),交流2群:142104962(已满勿加),交流3群:142105082。

常见问题

作业添加

  1. 本平台是直接读取你数据库资源的v_job视图,这个视图包装了一下r_job表,你可以通过修改视图达到隐藏一些作业的目的。
  2. R_job是kettle资源库的系统表,只要你连接这个资源库设计的作业,都会记录在这个表中,所以你只需按照平常的习惯,连接与本平台配置的相同的资源库设计作业即可,因为读取的是同一张表,所以不需要额外的操作,直接就可以在本平台中看到你的作业并进行调度。
  3. 有外部作业需要添加到本平台,你只需直接使用kettle的Spoon工具,连接同一个资源库进行导入操作,这个数据人员都很熟悉。
  4. 我觉得没必要在页面支持作业导入功能,不知是否有这样的需求,这个暂时不开发。

查看转换

  1. 关于这个问题,我一直很困惑,为毛要直接查询运行转换,作业和转换可谓各司其职,我认为要运行转换就需要在其上包装一个作业,不管是否有其他流程依赖的需求。
  2. 当前新版本已经提供转换查看功能,支持直接在调度中将转换包装为作业进行运行。

注意事项

  1. 不要使用系统自带的记事本编辑配置文件,否则会导致系统无法正常读取你修改的配置文件,可以使用editpuls或notepad++。当出现奇葩问题时要想起这个提示。
  2. 相关文件最好不要存放在有空格或中文的目录下,避免不必要的麻烦。

后续计划

  1. 任务管理在设置定时时可能需要人为分散定时,考虑生成时间-运行任务数的分析图辅助进行分散定时。
  2. 权限管理,不同用户看到自己的作业,管理员看所有作业。
  3. 分布式、集群支持,考虑增加容灾机制。
  4. 根据日志加入一些统计功能
展开阅读全文
加载中
点击加入讨论🔥(3) 发布并加入讨论🔥
打赏
3 评论
0 收藏
0
分享
返回顶部
顶部