kettle-manager数据库配置全攻略:Oracle与MySQL资源库无缝对接实战
kettle-manager是专门为kettle这款优秀的ETL工具开发的web端管理工具,能够帮助用户轻松实现Oracle与MySQL资源库的无缝对接与高效管理。
准备工作:环境与资源库初始化
在进行数据库配置前,需要先完成环境变量的设置和资源库的初始化工作。首先,设置KETTLE_HOME环境变量,例如:KETTLE_HOME=D:\NIS\data-integration5.4。然后,创建或使用已有用户作为KM管理平台的数据库用户,并修改数据库配置。
数据库脚本执行
项目提供了针对MySQL和Oracle的数据库脚本,位于doc/sql/mysql/和doc/sql/oracle/目录下。如果使用项目提供的资源库建表语句kettle.sql,则无需额外执行新增字段的语句,因为kettle.sql已经包含了所需的表结构。
对于MySQL,需要在原始kettle资源库的数据库中执行以下语句(若使用kettle.sql则可跳过):
ALTER TABLE `r_job` ADD COLUMN `RUN_STATUS` varchar(100) NULL DEFAULT 'Stopped' COMMENT '运行状态' AFTER `SHARED_FILE`;
ALTER TABLE `r_job` ADD COLUMN `LAST_UPDATE` varchar(14) NULL COMMENT '最后更新时间' AFTER `RUN_STATUS`;
ALTER TABLE `r_job` ADD COLUMN `AUTO_RESTART_NUM` varchar(10) NULL DEFAULT '0' COMMENT '自动重启次数' AFTER `LAST_UPDATE`;
ALTER TABLE `r_job` ADD COLUMN `REPOSITORY_CODE` varchar(200) NULL DEFAULT 'KETTLE_DEFAULT' COMMENT '资源库代码' AFTER `AUTO_RESTART_NUM`;
ALTER TABLE `r_job` ADD COLUMN `PROJECT_CODE` varchar(200) NULL DEFAULT 'KM_LOCALHOST_82' COMMENT '运行在' AFTER `REPOSITORY_CODE`;
对于Oracle,相应的语句为:
alter table R_JOB add RUN_STATUS VARCHAR2(100) default 'Stopped';
comment on column R_JOB.RUN_STATUS is '运行状态';
alter table R_JOB add LAST_UPDATE VARCHAR2(14) default to_char(sysdate,'yyyymmddhh24miss');
comment on column R_JOB.LAST_UPDATE is '最后更新时间';
alter table R_JOB add AUTO_RESTART_NUM VARCHAR2(10) default '0';
comment on column R_JOB.AUTO_RESTART_NUM is '自动重启次数';
alter table R_JOB add REPOSITORY_CODE VARCHAR2(100) default 'KETTLE_DEFAULT';
alter table R_JOB add PROJECT_CODE VARCHAR2(500) default 'KM_LOCALHOST_82';
comment on column R_JOB.REPOSITORY_CODE is '资源库代码';
comment on column R_JOB.PROJECT_CODE is '运行在';
此外,还需要在kettle资源库中新增作业参数设置表和作业日志表,具体脚本可参考doc/sql/mysql/myNote.sql和doc/sql/oracle/myNote.sql。
MySQL资源库配置步骤
数据库连接参数配置
MySQL资源库的连接参数配置是实现对接的关键步骤。需要确保数据库连接信息的准确性,包括数据库地址、端口、用户名、密码等。
执行SQL脚本
将KM.sql导入到MySQL数据库中,该脚本包含了kettle-manager所需的表结构和初始数据。导入完成后,系统会自动创建相关的表和视图,如job_params表用于存储作业参数设置,v_job视图用于展示作业信息等。
验证配置
配置完成后,可以通过查看数据库中的表结构和数据,以及尝试在kettle-manager中进行作业的创建、编辑和运行等操作,来验证MySQL资源库的配置是否成功。
Oracle资源库配置步骤
数据库连接参数配置
Oracle资源库的连接参数配置与MySQL类似,但需要注意Oracle特有的一些参数,如SID或服务名等。确保配置的参数与Oracle数据库的实际设置相匹配。
执行SQL脚本
使用plsql等工具将KM.sql导入到Oracle数据库中。导入过程中,需要注意Oracle的语法和数据类型与MySQL的差异,确保脚本能够正确执行。
特殊处理
Oracle数据库在日期格式化、字段类型等方面与MySQL有所不同,kettle-manager在代码中对Oracle进行了特殊处理。例如,在com/eova/template/common/util/TemplateUtil.java中,对Oracle Date进行了格式化处理:
// Oracle Date格式化
if (xx.isOracle()) {
// 处理逻辑
}
此外,在com/jfinal/plugin/activerecord/DbPro.java中,针对Oracle的主键生成和数据插入也进行了特殊处理,以确保在Oracle环境下的正常运行。
验证配置
同样,通过查看数据库表结构和数据,以及在kettle-manager中进行相关操作,来验证Oracle资源库的配置是否成功。
常见问题解决
连接失败问题
如果出现数据库连接失败的情况,首先检查数据库连接参数是否正确,包括地址、端口、用户名、密码等。其次,检查数据库服务是否正常运行,网络是否通畅。在src/main/java/com/oss/OSSConfig.java中,系统会记录连接kettle资源库失败的日志,可通过查看日志信息来定位问题:
//初始化资源库
//得到本应用操作的资源库代码
log.error("连接kettle资源库失败", e);
数据同步问题
在进行数据同步时,如果出现数据不一致或同步失败的情况,可检查作业参数设置是否正确,作业日志表job_log中的日志信息,以及相关的SQL脚本是否正确执行。
性能问题
对于大数据量的ETL作业,可能会出现性能问题。可以通过优化数据库索引、调整作业参数、增加服务器资源等方式来提高性能。在doc/sql/mysql/kettle.sql和doc/sql/oracle/kettle.sql中,已经创建了一些必要的索引,如IDX_JOB_PARAMS_CREATE_DATE等,可根据实际情况进行调整和优化。
总结
通过本文的介绍,我们详细了解了kettle-manager数据库配置的全流程,包括MySQL和Oracle资源库的初始化、连接参数配置、SQL脚本执行以及常见问题解决等。掌握这些知识,能够帮助用户轻松实现kettle-manager与Oracle和MySQL资源库的无缝对接,提高ETL作业的管理效率。
无论是新手还是有经验的用户,都可以按照本文提供的步骤进行操作,快速完成数据库配置,享受kettle-manager带来的便捷与高效。希望本文对您有所帮助,祝您在ETL工作中取得更好的成果!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考





