JAvaプログラム生成kettle変換ktrファイル

7167 ワード

説明:C:UsersAdministratoresapiの下ESAPI.propertiesとvalidation.properties
 
package rh;

import java.io.File;

public class TransDemo {
    public static TransDemo transDemo;
    
    /**
     *        
     */
    public static String bjdt_tablename = "ANSWER";
    public static String kettle_tablename = "ANSWER";
     
   /**
    *        ,   DatabaseMeta        DatabaseMeta(String xml)
    */
    public static final String[] databasesXML = {
           "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
             "<connection>" +
               "<name>bjdt</name>" +
               "<server>127.0.0.1</server>" +
               "<type>Oracle</type>" +
               "<access>Native</access>" + 
               "<database>orcl</database>" +
               "<port>1521</port>" +
               "<username>queryneea</username>" +
               "<password>queryneea</password>" +
             "</connection>",
             "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
             "<connection>" +
               "<name>kettle</name>" +
               "<server>127.0.0.1</server>" +
               "<type>Oracle</type>" +
               "<access>Native</access>" + 
               "<database>orcl</database>" +
               "<port>1521</port>" +
               "<username>kscenter20151207</username>" +
               "<password>kscenter</password>" +
             "</connection>"
       };   
   /**
    * @param args
    */
   public static void main(String[] args) {
       try {
           KettleEnvironment.init();
           transDemo = new TransDemo();
           TransMeta transMeta = transDemo.generateMyOwnTrans();
           String transXml = transMeta.getXML();
           //System.out.println("transXml:"+transXml);
           String transName = "F:\\ETL\\kettle\\  \\  \\    \\copy-one-table.ktr";
           File file = new File(transName);
           FileUtils.writeStringToFile(file, transXml, "UTF-8");
            
           //System.out.println(databasesXML.length+"
"+databasesXML[0]+"
"+databasesXML[1]); } catch (Exception e) { e.printStackTrace(); return; } } /** * , , , , * @return * @throws KettleXMLException */ public TransMeta generateMyOwnTrans() throws KettleXMLException{ System.out.println("************start to generate my own transformation***********"); TransMeta transMeta = new TransMeta(); // transMeta.setName("insert_update"); // for (int i=0;i<databasesXML.length;i++){ DatabaseMeta databaseMeta = new DatabaseMeta(databasesXML[i]); transMeta.addDatabase(databaseMeta); } //registry Id PluginRegistry registry = PluginRegistry.getInstance(); //****************************************************************** // (TableInputMeta) TableInputMeta tableInput = new TableInputMeta(); String tableInputPluginId = registry.getPluginId(StepPluginType.class, tableInput); // DatabaseMeta DatabaseMeta database_bjdt = transMeta.findDatabase("bjdt"); tableInput.setDatabaseMeta(database_bjdt); String select_sql = "SELECT ID, NAME, CODE FROM "+bjdt_tablename; tableInput.setSQL(select_sql); // TableInputMeta StepMeta tableInputMetaStep = new StepMeta(tableInputPluginId,"table input",tableInput); // spoon tableInputMetaStep.setDraw(true); tableInputMetaStep.setLocation(100, 100); transMeta.addStep(tableInputMetaStep); //****************************************************************** //****************************************************************** // InsertUpdateMeta insertUpdateMeta = new InsertUpdateMeta(); String insertUpdateMetaPluginId = registry.getPluginId(StepPluginType.class,insertUpdateMeta); // DatabaseMeta database_kettle = transMeta.findDatabase("kettle"); insertUpdateMeta.setDatabaseMeta(database_kettle); // insertUpdateMeta.setTableName(kettle_tablename); // insertUpdateMeta.setKeyLookup(new String[]{"ID"}); insertUpdateMeta.setKeyStream(new String[]{"ID"}); insertUpdateMeta.setKeyStream2(new String[]{""});// insertUpdateMeta.setKeyCondition(new String[]{"="}); // String[] updatelookup = {"ID","NAME","CODE"} ; String [] updateStream = {"ID","NAME","CODE"}; Boolean[] updateOrNot = {false,true,true,true,true,true,true}; insertUpdateMeta.setUpdateLookup(updatelookup); insertUpdateMeta.setUpdateStream(updateStream); insertUpdateMeta.setUpdate(updateOrNot); String[] lookup = insertUpdateMeta.getUpdateLookup(); //System.out.println("******:"+lookup[1]); //System.out.println("insertUpdateMetaXMl:"+insertUpdateMeta.getXML()); // StepMeta insertUpdateStep = new StepMeta(insertUpdateMetaPluginId,"insert_update",insertUpdateMeta); insertUpdateStep.setDraw(true); insertUpdateStep.setLocation(250,100); transMeta.addStep(insertUpdateStep); //****************************************************************** //****************************************************************** // hop transMeta.addTransHop(new TransHopMeta(tableInputMetaStep, insertUpdateStep)); System.out.println("***********the end************"); return transMeta; } }