Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pentaho/pentaho-kettle
Pentaho Data Integration ( ETL ) a.k.a Kettle
https://github.com/pentaho/pentaho-kettle
Last synced: 2 days ago
JSON representation
Pentaho Data Integration ( ETL ) a.k.a Kettle
- Host: GitHub
- URL: https://github.com/pentaho/pentaho-kettle
- Owner: pentaho
- License: other
- Created: 2013-10-08T18:27:11.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2024-10-29T09:03:05.000Z (about 2 months ago)
- Last Synced: 2024-10-29T10:56:50.841Z (about 1 month ago)
- Language: Java
- Size: 643 MB
- Stars: 7,695
- Watchers: 458
- Forks: 3,456
- Open Issues: 55
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
- awesome-integration - Pentaho Data Integration (⭐7.7k) - A user-friendly platform that enables users to ingest, blend, cleanse, and prepare diverse data from any source with visual tools, eliminating the need for coding and complexity. (Projects / ETL)
- trackawesomelist - Pentaho Data Integration (⭐7.6k) (⭐7.6k) - A user-friendly platform that enables users to ingest, blend, cleanse, and prepare diverse data from any source with visual tools, eliminating the need for coding and complexity. (Recently Updated / [Sep 04, 2024](/content/2024/09/04/README.md))
README
# 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:](plugins/README.md)**
PDI core plugins
* **integration:**
Integration testsHow to build
--------------Pentaho Data Integration uses the Maven framework.
#### Pre-requisites for building the project:
* Maven, version 3+
* Java JDK 11
* This [settings.xml](https://raw.githubusercontent.com/pentaho/maven-parent-poms/master/maven-support-files/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=<> -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=<>
```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=<> -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](https://jira.pentaho.com/secure/Dashboard.jspa)
2. Attach a Git patch file to the relevant [Jira case](https://jira.pentaho.com/secure/Dashboard.jspa)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](core/src/test/java/org/pentaho/di/junit/rules/RestorePDIEnvironment.java)
and [RestorePDIEngineEnvironment](engine/src/test/java/org/pentaho/di/junit/rules/RestorePDIEngineEnvironment.java)
for core and engine tests respectively.pex.:
```java
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.