Apache Hop从入门到精通 第二课 Apache Hop 核心概念/术语

embedded/2025/1/15 15:04:55/

1、apache hop核心概念思维导图

虽然apache hopkettle的一个分支,但是它的概念和kettle还是有一些区别的,下图是我根据官方文档梳理的appache hop的核心概念思维导图。

2、Tools(工具)

1)Hop Conf

 Hop Conf 是一个命令行工具,用于管理您 Hop 配置的各个方面:项目、环境、云配置等。

具体的文件为hop-conf.sh或者hop-conf.bat,可以通过./hop-conf.sh -help 命令查看具体的参数,这里先不做介绍。

2)Hop Encrypt

Hop Encrypt 是一个命令行工具,用于对明文密码进行混淆或加密,以便在 XML、密码或元数据文件中使用。请确保也将密码加密前缀复制,以指示密码的混淆性质。这样,Hop 就能够区分常规的明文密码和混淆后的密码。

具体的文件为hop-encrypt.sh或者hop-encrypt.bat,可以通过./hop-encrypt.sh -help 命令查看具体的参数,这里先不做介绍。

3) Hop Gui

 Hop Gui 是一个可视化 IDE,Hop 数据开发者可以在其中创建、测试、运行和管理工作流和管道的生命周期。除了开发和生命周期管理功能外,Hop Gui 还包含用于管理项目和环境的工具和视角,用于搜索和管理元数据的工具和视角,用于管理和版本控制各种文件的工具和视角,以及用于在 Neo4j 图形中探索日志的工具和视角。

4)Hop Run

 Hop Run 是一个命令行工具,用于运行工作流和管道,并提供选项以(列出或)指定项目、环境、属性和运行配置。

 具体的文件为hop-run.sh或者hop-run.bat,可以通过./hop-run.sh -help 命令查看具体的参数,这里先不做介绍。 5)Hop Search

 Hop Search 是一个命令行工具,用于搜索特定项目或环境中的所有元数据。

具体的文件为hop-search.sh或者hop-search.bat,可以通过./hop-search.sh -help 命令查看具体的参数,这里先不做介绍。

 6)Hop Server

 Hop Server 是一个用于管理和运行工作流和管道的 Web 服务接口。其本质就是一个jetty web 容器。

 2、Item types(条目类型)

1)Action

一个动作(Action)是工作流中执行的一个操作。默认情况下,动作按顺序执行,但也可以配置为并行执行。动作返回一个真(true)或假(false)的退出代码,该代码可以在工作流的执行中使用(或忽略)。

2)Hop(连线/跳)

在 Hop 中,Hops 将工作流中的动作(Actions)或管道中的转换(Transforms)连接起来。

在工作流中,Hops 根据前一个动作的退出状态进行操作;

在管道中,Hops 在转换之间传递数据。

3)Pipeline

 管道是实际的数据处理者。管道中的操作读取、修改、丰富、清理和写入数据。管道的编排是通过其他管道和/或工作流来完成的。

从下图可以看到Pipeline包含一些列的TRANSFORM(转换),这些转换是并行执行的。途中的连线即Hop。

 4)Transform

 一个转换(Transform)是管道中执行的一个工作单元。典型的转换操作包括从文件、数据库中读取数据,执行查找或连接操作,丰富、清理数据等。管道中的所有转换都是并行执行的。转换处理数据,并通过 Hops 将处理后的数据批次传递给后续操作进行处理。

5)Workflow

工作流(Workflow)是一系列默认按顺序执行的操作(可选择并行执行)。工作流通常不直接操作数据,而是执行编排任务。工作流中的典型任务包括检索和归档数据、发送电子邮件、错误处理等。

 3、Projects and Environments(项目和环境)

1)Project (项目)

Hop 项目是一种概念性的配置、变量、元数据对象以及工作流和管道的分组。项目可以从父项目继承元数据。一个项目包含一个或多个环境,实际的配置在这些环境中定义。

例如:“销售”项目包含一个“客户”数据库连接和多个工作流和管道。运行时配置、数据库连接属性等在“开发”(dev)、“用户接受测试”(uat)和“生产”(prd)环境中定义。

 2)Environment(环境)

Hop 环境是项目的实例,包含项目的实际运行时配置和其他元数据对象。和我们开发springboot应用是类似的,开发时一些参数配置在dev环境文件进行设置,生产环境参数在prod环境文件进行设置。

例如:“销售”项目的“dev”环境指定从主机“10.0.0.1”读取“客户”数据库连接的数据。

下面展示了dev、stage、prod三个环境,hop运行时可以指定任一环境参数配置。

 4、Metadata(元数据)

Hop 元数据是共享元数据(如关系数据库连接、运行配置、服务器、Git 仓库等)的中央存储库。元数据以 JSON 格式持久化,默认存储在项目的基本文件夹中。

5、Lazy Loading(延迟加载/懒加载)

如果启用,所有数据转换(字符解码、数据转换、修剪等)将在尽可能晚的时候进行,实际上是将数据作为二进制字段读取。启用延迟转换可以显著降低读取数据的 CPU 成本。

何时避免使用:如果在流的后续阶段仍然需要执行数据转换,延迟转换可能会降低速度而不是加快处理。

何时使用:在以下情况下可以使用延迟转换来加快处理速度:1)数据被读取并写入另一个文件而不进行转换,2)数据需要排序并且不适合内存。在这种情况下,延迟转换的序列化到磁盘速度更快,因为编码和类型转换被推迟了,或者 3)批量加载到数据库而不需要数据转换。批量加载工具通常直接读取文本,生成文本的速度更快(这不适用于表输出)。


http://www.ppmy.cn/embedded/153798.html

相关文章

取消项目的版本控制

ls -a 如果看到 .git 目录,说明这是一个独立的 Git 仓库(或者是父仓库中的一个“子仓库”)。 rm -rf .git 删除这个 .git 文件夹后,文件夹便会变成一个普通文件夹,不再包含 Git 版本控制信息。

ASP.NET Core的部署、维护、日志记录和错误处理

一、日志记录(Logging) 1.1 日志记录的概念 日志记录是一种记录系统运行状态、活动和事件的重要机制。在软件开发和系统管理中,日志记录扮演着关键角色,用于追踪应用程序的执行过程、监视系统的健康状况、诊断问题和安全审计等。在ASP.NET Core等现代W…

三只松鼠携手爱零食,社区零售新高峰拔地而起

合纵连横,这是当前零售行业发展的一个主旋律。从商超之王胖东来的全国调改,到社区零售正在进行的渠道变革,竞争的激烈和商业模式的升级令人目不暇接。 量贩零食赛道在过去一年就是如此,有杀伐,有并购,刀光…

《探秘开源多模态神经网络模型:AI 新时代的万能钥匙》

《探秘开源多模态神经网络模型:AI 新时代的万能钥匙》 一、多模态模型的崛起之路(一)从单一到多元:模态的融合演进(二)关键技术突破:解锁多模态潜能 二、开源多模态模型深度剖析(一&…

内网穿透的应用-Ubuntu本地Docker部署Leantime项目管理工具随时随地在线管理项目

文章目录 前言1.关于Leantime2.本地部署Leantime3.Leantime简单实用4.安装内网穿透5.配置Leantime公网地址6. 配置固定公网地址 前言 本文主要介绍如何在本地Linux系统使用Docker部署Leantime,并结合cpolar内网穿透工具轻松实现随时随地查看浏览器页面,…

【Ubuntu 上搭建 Nginx-RTMP 服务】

本章目录: 环境1. 安装依赖2. 创建 Nginx 编译目录3. 下载 Nginx 和 Nginx-RTMP-Module4. 编译 Nginx 并添加 RTMP 模块5. 验证 Nginx 安装成功6. 配置环境变量7. 修改 Nginx 配置文件8. 启动 Nginx 服务查看 Nginx 是否启动成功查看端口监听状态 8. 常见问题及解决方法1. 缺少…

基于 GEE 下载 2000-2023 年 LANDSCAN 1 km 人口栅格数据

目录 1 数据说明 2 完整代码 3 运行结果 1 数据说明 LandScan 数据于1997年启动的一项研究计划,其目的是改进用于灾害后果评估的人口估算方法。与传统人口普查仅关注居住地不同,LandScan 提供全天(24小时平均)的人口分布模型&…

阿里巴巴新零售模式下的创新实践:结合开源AI智能名片2+1链动模式S2B2C商城小程序的应用探索

摘要:在数字经济浪潮的推动下,新零售作为传统零售与现代信息技术深度融合的产物,正逐步改变着零售行业的面貌。阿里巴巴作为新零售战略的倡导者和实践者,通过整合线上线下资源,利用大数据、云计算等先进技术&#xff0…