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  |