赣州新闻网

首页 / 科技

百度李彦宏融到资金提成1%故事

2020-03-10 · 赣州新闻网 · 科技

1. 安装Jar到本地Maven仓库

将pdi-ce-7.1.0.0-12/data-integration/lib下的kettle-core-7.1.0.0-12.jar、kettle-engine-7.1.0.0-12.jar、metastore-7.1.0.0-12.jar安装的本地maven仓库中。

# 切换到pdi-ce-7.1.0.0-12中的lib目录
cd /Users/xxx/Softwares/pdi-ce-7.1.0.0-12/data-integration/lib


mvn install:install-file -Dfile=kettle-core-7.1.0.0-12.jar -DgroupId=org.pentaho -DartifactId=kettle-core -Dversion=7.1.0.0-12 -Dpackaging=jar

mvn install:install-file -Dfile=kettle-engine-7.1.0.0-12.jar -DgroupId=org.pentaho -DartifactId=kettle-engine -Dversion=7.1.0.0-12 -Dpackaging=jar

mvn install:install-file -Dfile=metastore-7.1.0.0-12.jar -DgroupId=org.pentaho -DartifactId=metastore -Dversion=7.1.0.0-12 -Dpackaging=jar

2. 引入依赖

<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>springboot-etl-kettle</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-etl-kettle</name>
<description>Demo project for Spring Boot</description>

<properties>
<java.version>1.8</java.version>
<kettle.version>7.1.0.0-12</kettle.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>

<!-- kettle begin -->
<dependency>
<groupId>org.pentaho</groupId>
<artifactId>kettle-core</artifactId>
<version>${kettle.version}</version>
</dependency>
<dependency>
<groupId>org.pentaho</groupId>
<artifactId>kettle-engine</artifactId>
<version>${kettle.version}</version>
</dependency>
<dependency>
<groupId>org.pentaho</groupId>
<artifactId>metastore</artifactId>
<version>${kettle.version}</version>
</dependency>

<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-vfs2</artifactId>
<version>2.3</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.12</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.0</version>
</dependency>
<!-- kettle end -->

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

3. Test

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootEtlKettleApplicationTests {

private String filename = \"/Users/mengday/Desktop/HelloWorld.ktr\";

@Test
public void testEtl() {
try {
KettleEnvironment.init();
TransMeta transMeta = new TransMeta(filename);
Trans trans = new Trans(transMeta);

// 设置变量(这些变量可以在.ktl中通过${variableName}来引用)
String beginTime = \"2019-04-02 00:00:00\";
String endTime = \"2019-04-06 23:59:59\";
trans.setVariable(\"beginTime\", beginTime);
trans.setVariable(\"endTime\", endTime);

trans.execute(null);
trans.waitUntilFinished();
} catch (KettleException e) {
e.printStackTrace();
}
}
}
Java操作kettle(ETL)

实际开发中我们将testEtl()方法中的代码封装到定时任务中,在定时任务中设置定时执行时间,将.ktl文件名或者其它变量值作为参数传递到Job中来执行。

设置故事资金ACT2019RAC引入瑞金时间