java调用kettle4.2数据库型资料库中的转换

标签: java kettle4 数据库 | 发表时间:2012-07-25 16:00 | 作者:舵手
出处:http://www.blogjava.net/
import org.pentaho.di.core.KettleEnvironment;
import org.pentaho.di.core.database.DatabaseMeta;
import org.pentaho.di.core.exception.KettleException;
import org.pentaho.di.repository.Repository;
import org.pentaho.di.repository.RepositoryDirectoryInterface;
import org.pentaho.di.repository.kdr.KettleDatabaseRepository;
import org.pentaho.di.repository.kdr.KettleDatabaseRepositoryMeta;
import org.pentaho.di.trans.Trans;
import org.pentaho.di.trans.TransMeta;

/**
 * <p>Title: java调用kettle4.2数据库型资料库中的转换</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright () 2012</p>
 * @author 舵手
 * @version
 */

public class ExecRepositoryTrans {

    private static String transName = "Trans";

    public static void main(String[] args) {

        try {
            KettleEnvironment.init();
            
            KettleDatabaseRepository repository = new KettleDatabaseRepository();
            
            DatabaseMeta databaseMeta = new DatabaseMeta("repository", "MSSQL","Native","192.169.0.146", "repository", "1433", "sa", "sa");
            
            KettleDatabaseRepositoryMeta kettleDatabaseMeta = new KettleDatabaseRepositoryMeta("repository", "ERP", "Transformation description",databaseMeta );
            
            repository.init(kettleDatabaseMeta);
            
            repository.connect("admin","admin");
            
            RepositoryDirectoryInterface directory = repository.loadRepositoryDirectoryTree();

            TransMeta transformationMeta = ((Repository) repository).loadTransformation(transName, directory, null, true, null ) ;

            Trans trans = new Trans( transformationMeta );
            //trans.setParameterValue( parameterName, parameterValue);
            trans.execute(null);
            trans.waitUntilFinished();
            if ( trans.getErrors() > 0 ) {                    
                System.out.println("Error running transformation.");
            }else{
                System.out.println("Transformation run successfully.");
            }
        } catch (KettleException e) {
            e.printStackTrace();
        }
    }

}


舵手 2012-07-25 16:00 发表评论

相关 [java kettle4 数据库] 推荐:

java调用kettle4.2数据库型资料库中的转换

- - BlogJava-首页技术区
 *

Title: java调用kettle4.2数据库型资料库中的转换

.  * @author 舵手. 舵手 2012-07-25 16:00 发表评论.

Java程序连接数据库查询再导出Excel中

- - Java - 编程语言 - ITeye博客
     * 到处Excel文件的Action.         // 调用导出方法.      * @param col 所要导出对象集合.         FileOutputStream out = new FileOutputStream("d://"+"导出excel数据"+System.currentTimeMillis() + ".xls");.

怎样实现Java远程访问Domino数据库

- - 数据库 - ITeye博客
Java远程访问Domino数据库推荐采用CORBA实现,但配置非常关键,笔者在工作中也遇到了这个问题,在查阅资料的过程中发现,很多文章明显存在一些误区或者说没有写清楚的地方,现将笔者的实践经验总结出来,和大家分享. Domino服务器版本是5.0.9.   1.修改Domino服务器安全性配置,允许你的用户运行Java/CORBA.

java调用kettle api 操作日志写入到数据库表

- - 开源软件 - ITeye博客
//将step日志数据库配置名加入到变量集中. //StepLogTable使用的数据库连接名(上面配置的变量名). //设置Step日志的表名. //设置TransMeta的StepLogTable. 已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

用JAVA如何实现每天1亿条记录的数据存储,数据库方面怎么设计?

- - 数据库 - ITeye博客
一天秒数:60*60*24=86,400秒. 每天写入数据量:100,000,000条. 平均每秒写入数据量:100,000,000/86,400=1157.5条. 峰值每秒估算写入数:1157.5*10=11575条. 因此建议从以下几个层面处理. 1、数据库服务器磁盘采用高速SSD磁盘. 2、数据库采用2个节点的集群方式部署,每个集群节点3台服务器,1主2备,主数据库为写数据库,备数据库为读数据,采用读写分离,单集群节点内主备库数据实时同步,集群节点主库数据实时同步.

数据库sharding

- - 数据库 - ITeye博客
当团队决定自行实现sharding的时候,DAO层可能是嵌入sharding逻辑的首选位置,因为在这个层面上,每一个DAO的方法都明确地知道需要访问的数据表以及查询参数,借助这些信息可以直接定位到目标shard上,而不必像框架那样需要对SQL进行解析然后再依据配置的规则进行路由. 另一个优势是不会受ORM框架的制约.

数据库索引

- - CSDN博客推荐文章
索引是由用户创建的、能够被修改和删除的、实际存储于数据库中的物理存在;创建索引的目的是使用户能够从整体内容直接查找到某个特定部分的内容. 一般来说,索引能够提高查询,但是会增加额外的空间消耗,并且降低删除、插入和修改速度. 1.聚集索引:表数据按照索引的顺序来存储的. 2.非聚集索引:表数据存储顺序与索引顺序无关.

数据库事务

- - 数据库 - ITeye博客
事务传播发生在类似以下情形:. 假设methodB的配置是:. 如果methodA在事务里,那么methodB也在这个事务中运行. 如果methodA不在事务里,那么methodB重新建立一个事务运行. 如果methodA在事务里,那么methodB也在这个事务中运行. 如果methodA不在是事务里,那么methodB在非事务中运行.

数据库优化

- - 数据库 - ITeye博客
程序运行效率,优化应用程序,在SP编写过程中应该注意以下几点: . a) SQL的使用规范: .   i.尽量避免大事务操作,慎用holdlock子句,提高系统并发能力.   ii.尽量避免反复访问同一张或几张表,尤其是数据量较大的表,可以考虑先根据条件提取数据到临时表中,然后再做连接.   iii.尽量避免使用游标,因为游标的效率较差,如果游标操作的数据超过1万行,那么就应该改写;如果使用了游标,就要尽量避免在游标循环中再进行表连接的操作.