kettle8.0源码编译

2018-09-19  本文已影响0人  paopaodaxia

kettle作为一款开源etl工具,在数据仓库领域的应用还算是比较广泛的,做过数仓的朋友应该都知道,在做etl开发的时候,对于参数变量的引用是时常出现的场景,对于一些公共的变量,kettle的做法是启动的时候默认读取用户目录下一个kettle.properties文件,这种做法维护起来不是特别方便,如果服务器有多台每次新增变量,每台服务器都需要维护,为了解决这个问题,可以通过修改kettle源码从数据库读取达到目的。

源码编译步骤(本文采用idea工具编译)

Map<Object, Object> kettleProperties = EnvUtil.readProperties( Const.KETTLE_PROPERTIES );
insertDefaultValues( kettleProperties );
applyKettleProperties( kettleProperties );

我们添加一个方法,调用一次就OK了:

private static void getMysqlParam() {
    Properties pro = new Properties();
    String key = "";
    String value = "";
    try {
      Class.forName("com.mysql.jdbc.Driver");
      Connection conn = DriverManager.getConnection(
              "jdbc:mysql://xx.xx.xx.xx/xx?useUnicode=true&characterEncoding=utf8",
              "xxxx", "xxxxxx");
      Statement stat = conn.createStatement();
      ResultSet rst = stat.executeQuery("select t.key,t.value from table t ");
      while (rst.next()) {
        key = rst.getString(1);
        value = rst.getString(2);
        //System.out.println(key + "---->" + value);
        pro.put(key, value);
      }
      insertDefaultValues(pro);
      applyKettleProperties(pro);
    } catch (ClassNotFoundException e) {
      e.printStackTrace();
    } catch (SQLException e) {
      e.printStackTrace();
    }

  }

mvn clean install --settings C:\Users\xn043275.m2\settings.xml -Dmaven.test.skip=true

生成的目标文件路径在pentaho-kettle-8.0.0.0-R\assemblies\pdi-ce\target

分享就到这里,谢谢大家!

上一篇 下一篇

猜你喜欢

热点阅读