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

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

虽然apache hop是kettle的一个分支,但是它的概念和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.rhkb.cn/news/1276.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不同音频振幅dBFS计算方法

1. 振幅的基本概念 振幅是描述音频信号强度的一个重要参数。它通常表示为信号的幅度值,幅度越大,声音听起来就越响。为了更好地理解和处理音频信号,通常会将振幅转换为分贝(dB)单位。分贝是一个对数单位,能…

Apache JMeter 压力测试使用说明

文章目录 一、 安装步骤步骤一 下载相关的包步骤二 安装 Jmeter步骤三 设置 Jmeter 工具语言类型为中文 二、使用工具2.1 创建测试任务步骤一 创建线程组步骤二 创建 HTTP 请求 2.2 配置 HTTP 默认参数添加 HTTP消息头管理器HTTP请求默认值 2.3 添加 查看结果监听器2.4 查看结果…

在 Safari 浏览器中,快速将页面恢复到 100% 缩放(也就是默认尺寸)Command (⌘) + 0 (零)

在 Safari 浏览器中,没有一个专门的快捷键可以将页面恢复到默认的缩放比例。 但是,你可以使用以下两种方法快速将页面恢复到 100% 缩放(也就是默认尺寸): 方法一:使用快捷键 (最常用) Command (⌘) 0 (零…

Android Dex VMP 动态加载加密指令流

版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 上一篇【详解如何自定义 Android Dex VMP 保护壳】实现了 VMP 保护壳。 为了进一步加强对 dex 指令的保护,实现指令流加密和动态加载,…

RabbitMQ故障全解析:消费、消息及日常报错处理与集群修复

文章目录 前言:1 消费慢2 消息丢失3 消息重复消费4 日常报错及解决4.1 报错“error in config file “/etc/rabbitmq/rabbitmq.config” (none): no ending found”4.2 生产者发送消息报错4.3 浏览器打开IP地址,无法访问 RabbitMQ(白屏没有结…

Windows图形界面(GUI)-QT-C/C++ - QT控件创建管理初始化

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​链接点击跳转博客主页 目录 控件创建 包含对应控件类型头文件 实例化控件类对象 控件设置 设置父控件 设置窗口标题 设置控件大小 设置控件坐标 设置文本颜色和背景颜色 控件排版 垂直布局 QVBoxLayout …

Java Web开发进阶——错误处理与日志管理

错误处理和日志管理是任何生产环境中不可或缺的一部分。在 Spring Boot 中,合理的错误处理机制不仅能够提升用户体验,还能帮助开发者快速定位问题;而有效的日志管理能够帮助团队监控应用运行状态,及时发现和解决问题。 1. 常见错误…

B+树的原理及实现

文章目录 B树的原理及实现一、引言二、B树的特性1、结构特点2、节点类型3、阶数 三、B树的Java实现1、节点实现2、B树操作2.1、搜索2.2、插入2.3、删除2.4、遍历 3、B树的Java实现示例 四、总结 B树的原理及实现 一、引言 B树是一种基于B树的树形数据结构,它在数据…

基于springboot的疫情网课管理系统

作者:学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”,支持远程部署调试、运行安装。 项目包含: 完整源码数据库功能演示视频万字文档PPT 项目编码&#xff1…

android framework.jar 在应用中使用

在开发APP中&#xff0c;有时会使用系统提供的framework.jar 来替代 android.jar, 在gradle中配置如下&#xff1a; 放置framework.jar 依赖配置 3 优先级配置 gradle.projectsEvaluated {tasks.withType(JavaCompile) {Set<File> fileSet options.bootstrapClasspat…

如何将 sqlserver 数据迁移到 mysql

文章目录 前言一、导出SQL Server 数据二、转换数据格式为MySQL兼容格式三、导入数据到MySQL数据库五、使用ETL工具六、通过 navicat 工具七、总结 前言 将 SQL Server 数据迁移到 MySQL 是一个常见的数据库迁移任务&#xff0c;通常涉及以下几个关键步骤&#xff1a;导出 SQL…

GitLab CI/CD使用runner实现自动化部署前端Vue2 后端.Net 7 Zr.Admin项目

1、查看gitlab版本 建议安装的runner版本和gitlab保持一致 2、查找runner 执行 yum list gitlab-runner --showduplicates | sort -r 找到符合gitlab版本的runner&#xff0c;我这里选择 14.9.1版本 如果执行出现找不到下载源&#xff0c;添加官方仓库 执行 curl -L &quo…

56_多级缓存实现

1.查询Tomcat 拿到商品id后,本应去缓存中查询商品信息,不过目前我们还未建立Nginx、Redis缓存。因此,这里我们先根据商品id去Tomcat查询商品信息。此时商品查询功能的架构如下图所示。 需要注意的是,我们的OpenResty是在虚拟机,Tomcat是在macOS系统(或Windows系统)上,…

【STM32-学习笔记-9-】SPI通信

文章目录 SPI通信Ⅰ、SPI通信概述1、SPI技术规格2、SPI应用 3、硬件电路移位示意图 Ⅱ、SPI时序基本单元①、起始条件②、终止条件③、交换一个字节&#xff08;模式0&#xff09;④、交换一个字节&#xff08;模式1&#xff09;⑤、交换一个字节&#xff08;模式2&#xff09;…

小米vela系统(基于开源nuttx内核)——如何使用信号量进行PV操作

如何使用信号量进行PV操作 前言信号量1. 信号量简介2. NuttX中信号量的创建与使用2.1 Nuttx信号量的初始化和销毁2.2 信号量的等待和发布 3. 信号量的实际应用&#xff1a;下载任务示例3.1 实际代码3.2 代码说明3.3 执行说明 4. 信号量的优势与应用场景5. 常见应用场景&#xf…

MySQL Binlog 同步工具go-mysql-transfer Lua模块使用说明

一、go-mysql-transfer go-mysql-transfer是一款MySQL实时、增量数据同步工具。能够实时解析MySQL二进制日志binlog&#xff0c;并生成指定格式的消息&#xff0c;同步到接收端。 go-mysql-transfer具有如下特点&#xff1a; 1、不依赖其它组件&#xff0c;一键部署 2、集成多种…

灌区闸门自动化控制系统-精准渠道量测水-灌区现代化建设

项目背景 本项目聚焦于黑龙江某一灌区的现代化改造工程&#xff0c;该灌区覆盖广阔&#xff0c;灌溉面积高达7.5万亩&#xff0c;地域上跨越6个乡镇及涵盖17个村庄。项目核心在于通过全面的信息化建设&#xff0c;强力推动节水灌溉措施的实施&#xff0c;旨在显著提升农业用水的…

vue2修改表单只提交被修改的数据的字段传给后端接口

效果&#xff1a; 步骤一、 vue2修改表单提交的时候&#xff0c;只将修改的数据的字段传给后端接口&#xff0c;没有修改得数据不传参给接口。 在 data 对象中添加一个新的属性&#xff0c;用于存储初始表单数据的副本&#xff0c;与当前表单数据进行比较&#xff0c;找出哪些…

LiveNVR监控流媒体Onvif/RTSP常见问题-二次开发接口jquery调用示例如何解决JS|axios调用接口时遇到的跨域问题

LiveNVR二次开发接口jquery调用示例如何解决JS|axios调用接口时遇到的跨域问题 1、接口调用示例2、JS调用遇到跨域解决示例3、axios请求接口遇到跨域问题3.1、post请求3.2、get请求 4、RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务 1、接口调用示例 下面是完整的 jquery 调用示例 $.a…

RTDETR融合[WACV 2024]的MetaSeg中的gmb模块

RT-DETR使用教程&#xff1a; RT-DETR使用教程 RT-DETR改进汇总贴&#xff1a;RT-DETR更新汇总贴 《MetaSeg: MetaFormer-based Global Contexts-aware Network for Efficient Semantic Segmentation》 一、 模块介绍 论文链接&#xff1a;https://arxiv.org/abs/2408.07576 代…