ETL之kettle进行二次开发简单demo
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
demo,利用kettle的api,将一个数据源中的信息导入到另外一个数据源中:[java]view plain copy
1.package .saidi.job;
2.
3.import mons.io.FileUtils;
4.import org.pentaho.di.core.KettleEnvironment;
5.import org.pentaho.di.core.database.DatabaseMeta;
6.import org.pentaho.di.core.exception.KettleDatabaseException;
7.import org.pentaho.di.core.exception.KettleXMLException;
8.import org.pentaho.di.core.plugins.PluginRegistry;
9.import org.pentaho.di.core.plugins.StepPluginType;
10.import org.pentaho.di.trans.TransHopMeta;
11.import org.pentaho.di.trans.TransMeta;
12.import org.pentaho.di.trans.step.StepMeta;
13.import org.pentaho.di.trans.steps.insertupdate.InsertUpdateMeta;
14.import org.pentaho.di.trans.steps.tableinput.TableInputMeta;
15.
16.import java.io.File;
17.
18./**
19. * Created by 戴桥冰 on 2017/1/16.
20. */
21.public class TransDemo {
22.
23.public static TransDemo transDemo;
24.
25./**
26. * 两个库中的表名
27. */
28.public static String bjdt_tablename = "test1";
29.public static String kettle_tablename = "test2";
30.
31./**
32. * 数据库连接信息,适用于DatabaseMeta其中一个构造器
DatabaseMeta(String xml)
33. */
34.public static final String[] databasesXML = {
35.
36."" +
37."
38."
39."
40."
41."
42."
43."
44."
45."
46."",
47."" +
48."
49."
50."
51."
52."
53."
54."
55."
56."
57.""
58.
59. };
60.
61.public static void main(String[] args) {
62.try {
63. KettleEnvironment.init();
64. transDemo = new TransDemo();
65. TransMeta transMeta = transDemo.generateMyOwnTrans();
66. String transXml = transMeta.getXML();
67. String transName = "etl/update_insert_Trans.ktr";
68. File file = new File(transName);
69. FileUtils.writeStringToFile(file, transXml, "UTF-8");
70. System.out.println(databasesXML.length+"\n"+databasesXML[0]+"\n"
+databasesXML[1]);
71. } catch (Exception e) {
72. e.printStackTrace();
73.return;
74. }
75. }
76.
77./**
78. * 生成一个转化,把一个数据库中的数据转移到另一个数据库中,只有两个步骤,第一个是
表输入,第二个是表插入与更新操作
79. * @return
80. * @throws KettleXMLException
81. */