kettle有两种资源库:一种是文件资源库,可以指定磁盘的某个文件件;一种是数据库资源库,在”数据库信息“窗口中,“新建” 指定数据库主机名,数据库名,用户名和密码就可以新建一个资源库,“创建或更新”可以将kettle必须的表自动创建到数据库中。
登录可以用 admin/admin
首先感谢楼上两位大神的回答,再说一下问题的错误原因:1、是因为这部署kettle的这台服务器上没有MySQL的客户端,所以根本无法访问到数据库,太疏忽了。。。2、接下来换了一台装有MySQL客户端的服务器,进行部署。也是有问题,是由于我创建的资源库用户没有权限访问那台数据库(只开通了外网连接权限,未开通localhost权限)---赋予权限(外网)grant all on lisnew.* to ods_rep@"%" identified by 'ods_rep'---赋予权限(内网/本地)grant all privileges on . to ods_rep@localhost identified by 'ods_rep'【注】:ods_rep用户为资源库用户,命令含义可在百度查询一、准备工作源数据库ORACLE 目标数据库MongoDB,在源数据库添加删除、更新触发器
二、 *** 作步骤
添加表输入组件,连接ORACLE触发器记录表
添加JAVA代码组件,进行步骤跳转,根据输入的数据判断是删除或者更新,如果是删除,则跳转至MongoDB Delete步骤中,如果是更新的话,跳转至字段选择步骤中。JAVA代码中的详细信息如下:
import java.util.List
import org.pentaho.di.core.exception.KettleException
import org.pentaho.di.core.row.RowDataUtil
import org.pentaho.di.core.row.RowMeta
import org.pentaho.di.core.row.RowMetaInterface
import org.pentaho.di.core.row.ValueMeta
import org.pentaho.di.trans.Trans
import org.pentaho.di.trans.TransMeta
private Object[] previousRow//上一行
private RowSet t1 = null//业务表步骤
private RowSet t2 = null//删除步骤
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
{
Object[] r = getRow()//获取输入行
if ( first ) {
if ( getInputRowMeta() == null ) {
setOutputDone()//设置输出完成
return false
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)