DPDI(Dispatch PDI)kettle调度管理平台
--介入前后的对比剖析
引言
在数据处理领域,Kettle(Pentaho Data Integration)作为一款广受欢迎的开源ETL工具,以其强大的数据处理能力和灵活性赢得了众多用户的青睐。然而,Kettle在任务调度和监控方面的功能相对薄弱,这在一定程度上限制了其在复杂数据处理场景中的应用。为了克服这一局限,Dispatch PDI(以下简称DPDI)应运而生,为Kettle用户带来了全新的任务调度和管理体验
DPDI简介
DPDI定义
DPDI(全称Dispatch PDI)是一款基于Kettle的强大在线任务调度平台,凭借其高效与灵活性,专为调度和监控Kettle客户端生成的ETL任务而设计,是您的智能ETL任务调度专家
DPDI特性
- **一键部署:**支持Windows,Mac和Linux环境,一键完成部署,轻松实现智能化操作。
- **优雅界面:**配备美观易用的UI,提供便捷的可视化操作体验。
- **灵活部署:**支持属地化部署,精准满足您的特定业务需求。
- **自主研发:**由三倍镜成员团队共同研发,确保平台的创新性和专业性。
- **定制化开发:**提供个性化定制服务,灵活适应市场变化。
- **分布式多版本支持:**无缝整合多服务器与多种Kettle版本,确保任务执行的兼容性与一致性。
DPDI功能清单

kettle在没有DPDI前后对比
没有DPDI之前:如何配置定时任务?
Windows配置定时任务
**第一步:**先写bat文件

**第二步:**设置任务计划程序

**Linux配置定时任务:**主要通过crond设置

没有DPDI之前:Kettle任务的调度管理困境

手动操作繁琐
在没有DPDI之前,Kettle的任务调度主要依赖于命令行工具,如Linux的Crontab或Windows的计划任务。用户需要手动编写脚本,配置任务的执行时间和顺序。这种方式不仅操作复杂,而且容易出错,尤其是在任务数量较多或任务依赖关系复杂时,管理难度显著增加。
任务监控困难
缺乏统一的监控界面,用户无法实时查看任务的执行状态。一旦任务失败,需要手动查看日志文件来排查问题,这不仅耗时耗力,还可能导致问题发现和解决的延迟。
性能受限
缺乏动态资源分配机制,导致任务优先级与资源需求无法精准匹配,进而引发资源闲置或任务执行延迟等问题。此外,传统的Cron调度方式存在明显局限性,异步调用时间难以有效错峰,任务触发精度不足,进一步影响整体调度效率和资源配置的灵活性。
安全性不足
Kettle客户端的文件库内容在系统崩溃时容易丢失,缺乏数据备份和恢复机制。同时,没有统一的权限管理功能,无法对用户进行细粒度的权限控制,存在数据泄露和误操作的风险。
用户体验不佳
Kettle本身的操作界面较为复杂,缺乏可视化和交互性,用户操作体验较差。此外,部署过程繁琐,需要手动配置环境变量、安装依赖,对技术要求较高。
有了DPDI之后:功能与体验的全面提升

集中化任务管理
DPDI提供统一的任务管理界面,用户可以通过图形化界面直观地定义、监控和调整任务。任务的执行状态、日志和依赖关系一目了然,极大地提升了任务管理的效率和便捷性。
灵活的调度策略
支持多种调度方式,包括基于时间的Cron调度、基于事件的触发调度(任务间隔)等。用户可以根据业务需求灵活设置任务的执行时间和触发条件,满足复杂场景下的调度需求。
性能优化与提升
DPDI能够根据配置主机的空闲程度动态分配资源,确保任务高效执行。自研调度机制并修复了Cron调度方式的重复调用问题,确保任务触发精准到秒,提升了调度的稳定性和可靠性以及可扩展性。
增强的数据安全性
提供数据备份和恢复功能,确保数据的安全性和可靠性。基于RBAC(角色基权限控制)模式,DPDI支持对用户、角色和权限的细粒度管理,确保每个用户只能访问和操作自己权限范围内的任务和数据。
优化的用户体验
支持Windows、Mac和Linux环境,用户可以通过简单的启动脚本快速完成部署,无需复杂的配置。配备美观易用的UI,提供便捷的可视化操作体验,降低了使用门槛,提升了用户的操作体验。
DPDI如何解决实际问题
快速部署任务
通过DPDI的图形化界面,用户可以快速导入资源文件(.xml)或通过文件路径配置方式获取Kettle生成的ETL任务,并设置任务的调度策略(如Cron表达式,间隔执行等)。例如,在DPDI实操演练001讲中,用户可以轻松上传kettle作业和转换文件、文件夹等,并配置任务的运行环境和参数。
通过仓库管理快速导入或配置路径获取kettle任务
DPDI仓库管理支持文件资源库和数据库资源库两种类型。对于数据库资源库,用户仅需配置数据库连接信息即可快速接入。文件资源库则提供两种便捷方式:用户可以直接导入Kettle导出的XML资源库文件,也可以通过配置资源库路径直接获取Kettle任务。

资源库配置完成后,用户可在仓库明细页对修改后的Kettle任务进行单个上传更新,也可通过文件夹批量上传的方式来管理kettle任务,真正实现任务的高效管理。

通过任务配置界面快速配置kettle任务调度策略
DPDI提供直观的图形化任务配置界面,支持本地文件和资源库两种任务类型调度。调度方式灵活多样,包括手动触发、任务间隔设置以及Cron表达式三种模式。其中,Cron表达式采用自研调度机制,用户可以通过图形化界面便捷选择定时策略,或直接输入表达式快速设定定时时间。每一步设置均配备实时结果显示,并提供近5次运行时间的详细记录,帮助用户精准确认任务定时设置的正确性,确保调度操作高效、精准,全面提升任务管理体验。

实时监控任务
DPDI提供实时监控功能,用户可以随时查看任务的执行状态、日志和性能指标。一旦任务失败,系统会自动发送预警通知(如邮件,企业微信或钉钉),帮助用户快速定位和解决问题。
任务监控界面

任务日志界面

灵活调整任务
用户可以根据业务需求随时调整任务的执行时间和优先级,确保任务调度的灵活性和适应性。例如,在DPDI实操演练中,用户可以轻松修改任务的Cron表达式或参数,以适应新的业务需求。
任务调整界面

资源管理与优化
DPDI支持多服务器多kettle版本运行任务。同时,DPDI会根据任务的负载情况自动调整资源分配,确保任务的高效执行。
设备管理界面

权限管理与安全
通过DPDI的系统管理菜单,管理员可以为不同用户分配不同的权限,确保数据的安全性和操作的规范性。例如,在DPDI实操演练中,管理员可以为ETL开发人员(ETL开发人员不需看到正式环境密码)和运维人员(运维人员不能编辑任务配置等)设置不同的权限,确保任务的安全执行。
权限管理界面

详细功能模块解析
首页
DPDI首页主要是显示任务监控信息,当一个任务(kettle作业或转换)启动后,这个任务就处于被DPDI监控状态下。首页主要展示了任务运行统计指标和任务运行趋势,任务运行统计包含四个指标:总执行任务数、执行中任务数(执行中和待执行任务)、成功任务数、失败任务数。每个指标可点击跳转到日志明细,方便用户快速查看任务运行情况。任务运行趋势可对近一周、近一月、所有任务执行趋势及占比分析,让使用者很清晰的监控任务运行情况。
首页界面

资源管理
资源管理主要是对任务的运行环境进行配置和管理,对kettle客户端开发好的任务(作业和转化)进行管理以及对任务需要的数据库连接进行配置和管理,包括设备管理 、JNDI管理 、仓库管理 、变量管理 、版本管理五个功能模块。
设备管理
设备管理可对任务远程运行环境进行新增和编辑,可省去使用者对任务运行环境的部署。用户只需要新增配置服务器信息(可以是N台ETL机器),DPDI会自动部署任务运行环境到指定路径,大大省去了使用者部署成本。
设备管理界面

JNDI管理
JNDI管理可配置kettle任务需要的JNDI连接信息(注:JDBC连接方式只需在kettle任务配置即可,DPDI会自动获取JDBC连接信息 ),具体配置项包含数据库名称(这里需要和kettle配置的JNDI名称一致)、数据库描述、数据库驱动、数据库URL(连接需要的更多设置用&符拼接)、数据库用户名、数据库密码(注:选择类型可在下拉菜单中选择常用数据库类型配置模板),配置信息保存在jdbc.properties文件中。
JNDI管理界面

仓库管理
仓库管理专注于对Kettle客户端开发任务(含转换与作业)的高效管控。其具备强大资源库导入功能,涵盖数据资源库及文件资源库。文件资源库导入方式灵活,既可通过导入Kettle客户端导出的资源库 xml 文件实现,也可直接配置资源库路径获取Kettle任务。同时,仓库管理支持对导入的历史版本进行实时监控与便捷查看,方便用户追溯任务演变历程。在仓库明细页面,用户可灵活创建目录及单个任务文件,还能以文件夹形式批量导入任务。此外,DPDI仓库管理提供任务简单预览功能,助力用户快速掌握任务概况,提升工作效能。
仓库管理界面

仓库明细界面

变量管理
使用kettle变量可实现ETL的复用、D,Q,P环境不同使用变量方便发布、有的条件需要外部传入、实现增量ETL、灵活性强等用处,这里的环境变量设置保存在kettle.properties文件中,路径为:${KETTLE_HOME}\kettle.properties,主要存放PDI的通用参数。
变量管理界面

版本管理
版本管理可对PDI官网发布的版本进行添加和管理,可新增和修改版本中对应的JAR(对lib目录下的JAR进行新增和删除)。该功能主要是帮助用户对多版本运行需求的管理,DPDI已管理和维护了12个版本,用户部署后可直接选择使用。
版本管理界面

任务管理
任务管理作为DPDI的核心功能模块,同时也是kettle调度管理系统存在的主要短板所在。其关键价值在于对kettle开发的任务开展调度配置管理,并支持对任务运行日志进行查看与监控,整体架构涵盖任务配置以及运行历史这两大核心功能模块。
任务配置
任务配置为Kettle开发任务的调度管理提供了全方位的解决方案。在功能设置上,全面覆盖任务基础信息的精细化设定,包括准确填写任务名称、合理配置日志级别以及明确选择任务类型等关键要素,确保任务从创建伊始便拥有完整且规范的基本信息架构。
运行方式选择上,提供灵活多样的模式以适配不同业务场景需求 。用户可根据实际情况选择自动或手动运行方式 。自动运行模式下,既可通过熟练手工输入精确的Cron 表达式 ,也可便捷地点击设置,借助直观的页面配置工具完成设定,充分满足不同用户操作习惯与任务调度精细化要求。值得一提的是,自动运行模式还支持任务间隔调度方式,只有当任务运行有结果后才根据间隔设置执行任务。
在运行环境选择方面,为用户打造了灵活且强大的配置体系。支持选择运行主机,涵盖本地和远程两种环境。若选择远程运行,可进一步挑选适配的运行版本;而本地运行时则默认使用Kettle版本,同时需注意最小内存必选值应大于 512M,以保障任务运行的稳定性和流畅性,最大内存设置也应合理规划,确保资源充分利用。
此外,DPDI 任务配置功能全新升级,特别增加了任务类型为 "本地文件运行" 的选项。这一创新设计主要旨在方便用户无需构建资源库,即可快速执行任务。用户仅需简单操作,即可直接通过本地文件运行任务,极大地简化了任务执行前的准备工作,有效提升工作效率,尤其适用于对任务执行效率有较高要求的场景,让用户能够迅速响应业务需求,实现任务的即时运行与管理。
DPDI 的任务调度机制由三倍镜团队自主研发,拥有完整的源代码知识产权。这不仅保障了平台的创新性与专业性,还为调度其他 ETL 工具提供了可能,为未来的功能拓展奠定了坚实基础。
任务配置界面
DPDI的任务配置极为简便,仅需选定已配置的资源库,找到相应任务路径,即可快速完成调度任务配置。

运行历史
运行历史,是对kettle任务运行的情况进行日志记录,详尽的日志管理能帮助追踪任务状态和历史,可通过任务名称和任务状态以及运行时间进行筛选查看,方便用户快速定位、诊断问题。
运行历史界面

预警管理
DPDI 预警管理是针对Kettle任务运行错误的预警通知设置,设有预警配置与预警记录两个模块。DPDI支持邮箱、钉钉和企业微信三种常见预警方式,当任务执行失败时,可迅速通过上述渠道向用户发送通知,助力用户迅速察觉异常,保障任务执行的连续性与稳定性。此外,用户能借助日志文件精准定位报错成因,为高效的任务监控与问题溯源提供有力支撑。
预警配置
DPDI 预警配置支持邮箱、钉钉、企业微信三种方式,配置方法有详细指引,完成后可一键测试验证。
预警配置界面

预警记录
DPDI 预警记录任务失败预警通知发送历史,助力快速溯源问题。
预警记录界面

系统管理
系统管理负责用户功能权限和DPDI系统存储配置,涵盖用户管理、权限管理、菜单管理和系统配置四个模块。
用户管理
用户管理可便捷分配角色和权限,保障系统安全
用户管理界面

权限管理
权限管理可灵活配置功能菜单权限
权限管理界面

菜单管理
菜单管理通过点击"同步"按钮,快速查看所有菜单及功能模块信息
菜单管理界面

系统配置
DPDI系统配置支持快速切换应用数据库存储,变更后系统自动检测并更新,实现智能化操作。默认启动存储在h2数据库,用户登录后可在系统配置中修改。如需部署时直接存储到mysql,提前准备db.properties文件并置于DPDI启动脚本starup.*同目录即可。
系统配置界面

db.properties文件路径

请在DPDI的db.properties 文件中填写以下内容:
驱动类型:指定为 MySQL 数据库驱动,连接信息:输入 MySQL 数据库的详细连接信息,包括数据库服务器地址、端口号、用户名及密码。
示例格式如下:
driverClassName = com.mysql.jdbc.Driver
url=jdbc:mysql://[数据库地址]:[端口]/[数据库名称]
username=[用户名]
password=[密码]

关于
提供系统简介、版本及版权信息,助您快速掌握系统基本情况。版权信息随版本更新而调整,便于您全面了解系统详情。
关于界面

智能问答
三倍镜公众号智能问答,助力用户高效解答平台操作、功能疑问等常见问题。我们不断优化升级,定期更新知识库,确保提供最新、最准确的信息,让服务更智能便捷。