一、Apache Hop是什么?
1、Apache Hop,简称Hop,全称为Hop Orchestration Platform,即Hop 工作编排平台,是一个数据编排和数据工程平台,旨在促进数据和元数据编排的所有方面。Hop让你专注于你想要解决的问题,而不会被技术所阻碍。简单任务应该容易完成,复杂任务需要可能实现。
2、Hop允许数据专业人员使用元数据来描述数据应该如何被处理,从而进行可视化工作。可视化设计使数据开发者能够专注于他们想要做什么,而不是如何完成这项任务。这种对当前任务的关注使得Hop开发者比编写代码时更加高效。
二、Apache Hop起源与背景
1、Hop 最初(2019年底)是作为 Kettle(Pentaho Data Integration,PDI)的一个分支而启动的。Hop 是一个相对较新的项目,于 2020 年成为 Apache 软件基金会的顶级项目。它由 Kettle 的原始创建者 Tyler Mitchell 领导,旨在解决 PDI 中的一些限制,并提供更现代化的架构。
2、Kettle (PDI): Kettle 最初由 Pentaho 开发,是一个功能齐全的数据集成工具。Pentaho 后来被 Hitachi Vantara 收购,尽管如此,PDI 仍然是一个活跃的开源项目,拥有庞大的用户社区和丰富的插件生态系统。(不熟悉kettle的小伙伴可以查看kettle系列文章)
3、Hop和Kettle/PDI是独立的项目,各自有自己的路线图和优先级。鉴于这些不同的路线图、架构愿景和开发轨迹,Hop和Kettle/PDI是不兼容的。由于Hop与Kettle/PDI有着共同的历史,Hop社区提供了一种方法,尽可能无缝地将现有的PDI/Kettle项目导入Hop。
三、HOP VS KETTLE
1、核心概念
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 |
2、配置
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 |
3、引擎
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) |
4、特性
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, … 高级 GUI 功能:内存、原生缩放…… |
No |
Yes |
Metadata Injection(元数据注入) |
Yes |
Yes (most transforms) |
Mapping (sub-transformation/pipeline(映射(子转换/管道) |
Yes |
Yes(simplified) |
Web Interface |
WebSpoon |
HopWeb |
APL 2.0 license compliance(APL 2.0 许可合规性) |
LGPL doubts regarding pentaho-metastore library |
Yes |
Pluggable metadata objects(可插拔的元数据对象) |
No |
Yes |
GUI plugin architecture(GUI 插件架构) |
XUL based (XML) |
Java annotations |