Hop vs Kettle - A Quick Comparison
Concepts
| Terminology | Kettle | Hop | 
|---|---|---|
| Parallel scalable data pipeline | Transformation | Pipeline | 
| An operation in a parallel pipeline | Step | Transform | 
| Sequential series of actions | Job | Workflow | 
| An action in a workflow | Job Entry | Action | 
| Shared metadata container | Metastore | Hop Metadata | 
| The graphical user interface | Spoon | Hop Gui | 
| Script to run data pipelines | Pan | Hop Run | 
| Script to run workflows | Kitchen | Hop Run | 
| Server for remote execution | Carte | Hop Server | 
| Script for configuration | - | Hop Config | 
Configuration
| Configuration | Kettle | Hop | 
|---|---|---|
| System variables | ${KETTLE_HOME}/.kettle/kettle.properties | ${HOP_CONFIG_FOLDER}/hop-config.json or ./config/hop-config.json | 
| GUI preferences (fonts, colors, preferences…) | ${KETTLE_HOME}/.kettle/kettle.properties | ${HOP_CONFIG_FOLDER}/hop-config.json or ./config/hop-config.json | 
| Language choice | ${KETTLE_HOME}/.kettle/.languageChoice | ${HOP_CONFIG_FOLDER}/hop-config.json or ./config/hop-config.json | 
| Shared objects | ${KETTLE_HOME}/.kettle/shared.xml | All stored in Hop shared metadata | 
| GUI usage information | ${KETTLE_HOME}/.kettle/kettle.properties | ${HOP_AUDIT_FOLDER}/<project>/ | 
| Shared metadata | ${PENTAHO_METASTORE_FOLDER} or ${HOME}/.pentaho/metastore | ${HOP_METADATA_FOLDER} or ${HOP_CONFIG_FOLDER}/metadata | 
| Environment/Project configurations | ${KETTLE_HOME}/.kettle/environment/metastore | ${HOP_CONFIG_FOLDER}/hop-config.json or ./config/hop-config.json | 
Engines
| Engine | Kettle | Hop | 
|---|---|---|
| Unit Testing | Plugin | Yes | 
| Apache Spark Support | No (PDI EE only) | Yes (Beam) | 
| Apache Flink Support | No | Yes (Beam) | 
| Google Cloud DataFlow Support | No | Yes (Beam) | 
Features
| Feature | Kettle | Hop | 
|---|---|---|
| Projects and Lifecycle Configuration | No | Yes | 
| Search Information in projects and configurations | No | Yes | 
| Configuration management through UI and command line | No | Yes | 
| Standardized shared metadata | No | Yes | 
| Pluggable runtime engines | No | Yes | 
| Advanced GUI features: memory, native zooom, … | No | Yes | 
| Metadata Injection | Yes | Yes (most transforms) | 
| Mapping (sub-transformation/pipeline | Yes | Yes(simplified) | 
| Web Interface | WebSpoon | HopWeb | 
| APL 2.0 license compliance | LGPL doubts regarding pentaho-metastore library | Yes | 
| Pluggable metadata objects | No | Yes | 
| GUI plugin architecture | XUL based (XML) | Java annotations |