• Stars
    star
    7,254
  • Rank 5,078 (Top 0.2 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created over 10 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Pentaho Data Integration ( ETL ) a.k.a Kettle

Pentaho Data Integration

Pentaho Data Integration ( ETL ) a.k.a Kettle

Project Structure

  • assemblies: Project distribution archive is produced under this module
  • core: Core implementation
  • dbdialog: Database dialog
  • ui: User interface
  • engine: PDI engine
  • engine-ext: PDI engine extensions
  • plugins: PDI core plugins
  • integration: Integration tests

How to build

Pentaho Data Integration uses the Maven framework.

Pre-requisites for building the project:

  • Maven, version 3+
  • Java JDK 11
  • This settings.xml in your /.m2 directory

Building it

This is a Maven project, and to build it use the following command:

$ mvn clean install

Optionally you can specify -Drelease to trigger obfuscation and/or uglification (as needed)

Optionally you can specify -Dmaven.test.skip=true to skip the tests (even though you shouldn't as you know)

The build result will be a Pentaho package located in target.

Packaging / Distributing it

Packages can be built by using the following command:

$ mvn clean package

The packaged results will be in the target/ sub-folders of assemblies/*.

For example, a distribution of the Desktop Client (CE) can then be found in: assemblies/client/target/pdi-ce-*-SNAPSHOT.zip.

Running the tests

Unit tests

This will run all unit tests in the project (and sub-modules). To run integration tests as well, see Integration Tests below.

$ mvn test

If you want to remote debug a single Java unit test (default port is 5005):

$ cd core
$ mvn test -Dtest=<<YourTest>> -Dmaven.surefire.debug

Integration tests

In addition to the unit tests, there are integration tests that test cross-module operation. This will run the integration tests.

$ mvn verify -DrunITs

To run a single integration test:

$ mvn verify -DrunITs -Dit.test=<<YourIT>>

To run a single integration test in debug mode (for remote debugging in an IDE) on the default port of 5005:

$ mvn verify -DrunITs -Dit.test=<<YourIT>> -Dmaven.failsafe.debug

To skip test

$ mvn clean install -DskipTests

To get log as text file

$ mvn clean install test >log.txt

IntelliJ

  • Don't use IntelliJ's built-in maven. Make it use the same one you use from the commandline.
    • Project Preferences -> Build, Execution, Deployment -> Build Tools -> Maven ==> Maven home directory

Contributing

  1. Submit a pull request, referencing the relevant Jira case
  2. Attach a Git patch file to the relevant Jira case

Use of the Pentaho checkstyle format (via mvn checkstyle:check and reviewing the report) and developing working Unit Tests helps to ensure that pull requests for bugs and improvements are processed quickly.

When writing unit tests, you have at your disposal a couple of ClassRules that can be used to maintain a healthy test environment. Use RestorePDIEnvironment and RestorePDIEngineEnvironment for core and engine tests respectively.

pex.:

public class MyTest {
  @ClassRule public static RestorePDIEnvironment env = new RestorePDIEnvironment();
  #setUp()...
  @Test public void testSomething() { 
    assertTrue( myMethod() ); 
  }
}

Asking for help

Please go to https://community.hitachivantara.com/community/products-and-solutions/pentaho/ to ask questions and get help.

More Repositories

1

mondrian

Mondrian is an Online Analytical Processing (OLAP) server that enables business users to analyze large quantities of data in real-time.
Java
1,110
star
2

pentaho-platform

Pentaho BA Server Core
Java
466
star
3

pentaho-reporting

Java class library for generating reports.
Java
266
star
4

big-data-plugin

Kettle plugin that provides support for interacting within many "big data" projects including Hadoop, Hive, HBase, Cassandra, MongoDB, and others.
Java
218
star
5

pdi-sdk-plugins

PDI SDK plugins
Java
106
star
6

pentaho-metadata

Java
66
star
7

pentaho-hadoop-shims

Hadoop Configurations
Java
49
star
8

pentaho-metadata-editor

Java
47
star
9

marketplace

Providing Pentaho, Partners, and Community Developers a marketplace for plugins within the BI Server product
Java
45
star
10

modeler

Pentaho Modeler
Java
39
star
11

maven-parent-poms

Pentaho OSS Parent Poms
37
star
12

marketplace-metadata

This project hosts the metadata related to plugins in Pentaho's marketplace, both BA Server and PDI
34
star
13

data-access

Pentaho Data Access Wizard
Java
31
star
14

kettle-storm

Java
22
star
15

pentaho-mongodb-plugin

Java
21
star
16

metastore

Flexible Metadata, Data and Configuration information store
Java
20
star
17

pentaho-data-mining

Pentaho DM (Weka) Plugins
Java
19
star
18

pentaho-aggdesigner

Java
18
star
19

pentaho-metaverse

Java
16
star
20

pentaho-platform-plugin-common-ui

JavaScript
13
star
21

pentaho-coding-standards

IDE specific code-style formatters, master CheckStyle template, and helpful developer Wiki
XSLT
13
star
22

pentaho-osgi-bundles

Repository of Pentaho-specific OSGI Bundles
Java
11
star
23

mql-editor

Java
10
star
24

pentaho-cloud-scripts

Collection of scripts for running Pentaho suite on various cloud providers.
Python
10
star
25

pentaho-platform-plugin-reporting

Java
9
star
26

pentaho-angular-seed

Seed Project for an AngularJS plugin into the Pentaho User Console (PUC)
9
star
27

pentaho-cwm

Java
8
star
28

pentaho-engineering-samples

Samples provided by Pentaho Engineering which make use of public capabilities within the Pentaho Suite
Java
8
star
29

pdi-osgi-bridge

Java
8
star
30

pentaho-commons-xul

Java
8
star
31

pdi-agile-bi-plugin

Agile BI plugin for PDI
8
star
32

hive-0.7.0

Pentaho Hive connector for CDH3
Java
8
star
33

pentaho-karaf-assembly

Customized version of a standard Apache Karaf distribution
JavaScript
8
star
34

pdi-teradata-tpt-plugin

Java
7
star
35

pentaho-jenkins-shared-library

Jenkins shared library for the Pentaho stack builds
Groovy
7
star
36

pentaho-vertica-bulkloader

Java
7
star
37

pentaho-platform-plugin-jpivot

JavaScript
7
star
38

pdi-dataservice-server-plugin

Java
6
star
39

pentaho-mongo-utils

A set of tools to help with mongo connections
Java
6
star
40

pentaho-s3-vfs

kettle
5
star
41

pentaho-simple-jndi

Pentaho Fork of old Simple JNDI Project
Java
5
star
42

pentaho-application-launcher

Java
5
star
43

pentaho-cassandra-plugin

Java
5
star
44

pentaho-commons-database

Java
4
star
45

pdi-platform-plugin

PDI platform plugin
Java
4
star
46

pentaho-data-profiling

4
star
47

pentaho-versionchecker

Pentaho Version Checker
Java
4
star
48

pdi-dataservice-plugin

Java
4
star
49

pentaho-commons-gwt-modules

Java
4
star
50

pentaho-mondrianschemaworkbench-plugins

Java
3
star
51

mondrian-tck

Mondrian Test Compatibility Kit project
Java
3
star
52

pentaho-connections

Java
3
star
53

pdi-spark-plugin

3
star
54

pentaho-reportwizard-core

Java
3
star
55

pdi-platform-utils-plugin

Kettle steps to interact with BA Server functionalities
Java
3
star
56

pdi-vfs

Kettle-specific implementation of Apache VFS
3
star
57

pdi-weka-scoring-plugin

Java
3
star
58

pentaho-hdfs-vfs

Java
3
star
59

maven-project-archetypes

Java
3
star
60

pentaho-chartbeans

Java
2
star
61

pentaho-data-refinery

Java
2
star
62

pdi-palo-core

Java
2
star
63

pentaho-commons-json

Java
2
star
64

pdi-weka-arff-output-plugin

Java
1
star
65

pentaho-actionsequence-dom

Java
1
star
66

apache-vfs-browser

Browser for Apache VFS
Java
1
star
67

pentaho-twelve-days-visualizations

1
star
68

pentaho-registry

Java
1
star