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)批量加载到数据库而不需要数据转换。批量加载工具通常直接读取文本,生成文本的速度更快(这不适用于表输出)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/953799.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

28.找出字符串中第一个匹配项的下标【力扣】KMP前缀表 ≈ find() 函数、暴力解法

class Solution { public: //得到前缀表void getNext(int *next,string needle){int j0;for(int i1;i<needle.size();i){while(j>0 && needle[j]!needle[i]) jnext[j-1];//**j>0**>j0是出口if(needle[i]needle[j]) j;next[i]j;//若写入if中&#xff0c;则该…

uniapp 小程序 textarea 层级穿透,聚焦光标位置错误怎么办?

前言 在开发微信小程序时&#xff0c;使用 textarea 组件可能会遇到一些棘手的问题。最近我在使用 uniapp 开发微信小程序时&#xff0c;就遇到了两个非常令人头疼的问题&#xff1a; 层级穿透&#xff1a;由于 textarea 是原生组件&#xff0c;任何元素都无法遮盖住它。当其…

基于深度学习的视觉检测小项目(十三) 资源文件的生成和调用

在使用 PySide6 进行开发时&#xff0c;管理应用程序的资源&#xff08;如图标、图片、字体、样式表、音视频等&#xff09;是一个常见的任务。PySide6 提供了一个工具 pyside6-rcc&#xff0c;它能够将资源文件&#xff08;.qrc&#xff09;编译成 Python 模块&#xff0c;然后…

《计算机网络》课后探研题书面报告_网际校验和算法

网际校验和算法 摘 要 本文旨在研究和实现网际校验和&#xff08;Internet Checksum&#xff09;算法。通过阅读《RFC 1071》文档理解该算法的工作原理&#xff0c;并使用编程语言实现网际校验和的计算过程。本项目将对不同类型的网络报文&#xff08;包括ICMP、TCP、UDP等&a…

【Rust自学】12.6. 使用TDD(测试驱动开发)开发库功能

12.6.0. 写在正文之前 第12章要做一个实例的项目——一个命令行程序。这个程序是一个grep(Global Regular Expression Print)&#xff0c;是一个全局正则搜索和输出的工具。它的功能是在指定的文件中搜索出指定的文字。 这个项目分为这么几步&#xff1a; 接收命令行参数读取…

基于springboot+vue的洪涝灾害应急信息管理系统设计与实现

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

SpringBoot + 事务钩子函数

一、案例背景 拿支付系统相关的业务来举例。在支付系统中&#xff0c;我们需要记录每个账户的资金流水&#xff08;记录用户A因为哪个操作扣了钱&#xff0c;因为哪个操作加了钱&#xff09;&#xff0c;这样我们才能对每个账户的账做到心中有数&#xff0c;对于支付系统而言&…

基于微信小程序的智能停车场管理系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

接上一主题,实现QtByteArray任意进制字符串转为十进制数

函数&#xff1a; /// <summary>/// n进制字符串转为十进制数&#xff0c;snDefine的长度最小为二进制数。/// 例子&#xff1a;/// _pn(_Math::strNToInt(_t("1010"), _t("01")));/// _pn(_Math::strNToInt(_t("-1010"), _t("0123…

小游戏前端地区获取

目前前端获取除了太平洋&#xff0c;没有其它的了。 //在JS中都是使用的UTF-8&#xff0c;然而requst请求后显示GBK却是乱码&#xff0c;对传入的GBK字符串&#xff0c;要用数据流接收&#xff0c;responseType: "arraybuffer" tt.request({url: "https://whoi…

sosadmin相关命令

sosadmin命令 以下是本人翻译的官方文档&#xff0c;如有不对&#xff0c;还请指出&#xff0c;引用请标明出处。 原本有个对应表可以跳转的&#xff0c;但是CSDN的这个[](#)跳转好像不太一样&#xff0c;必须得用html标签&#xff0c;就懒得改了。 sosadmin help 用法 sosadm…

人工智能提高安全性的8种方法

人工智能提高安全性的8种方法 人工智能&#xff08;AI&#xff09;通过增强威胁检测、简化响应和加强各个领域的防御&#xff0c;正在彻底改变网络安全。根据HPE的见解&#xff0c;以下是基于AI改善安全性的八种关键方式。 ​ ​ 高级威胁检测和实时监控&#xff1a; 人工智能…

Android SDK下载安装(图文详解)

安装完sdk&#xff0c;就可以直接使用adb命令了&#xff0c;我们做app自动化测试&#xff0c;也需要sdk环境的依赖。 1. 下载Android SDK 网盘下载地址&#xff1a;https://pan.quark.cn/s/8398e52cefc9 官网下载地址&#xff1a;https://www.androiddevtools.cn/ &#xff08;…

25/1/13 嵌入式笔记 继续学习Esp32

PWM&#xff08;Pulse Width Modulation&#xff0c;脉宽调制&#xff09; 是一种通过快速切换高低电平来模拟中间电压值的技术。它广泛应用于控制 LED 亮度、电机速度、音频生成等场景。 analogWrite函数:用于在微控制器&#xff08;如 Arduino&#xff09;上生成模拟信号。 …

uniapp区域滚动——上划进行分页加载数据(详细教程)

##标题 用来总结和学习&#xff0c;便于自己查找 文章目录 一、为什么scroll-view?          1.1 区域滚动页面滚动&#xff1f;          1.2 代码&#xff1f; 二、分页功能&#xff1f;          2.1 如何实现&#xff…

【Git版本控制器--1】Git的基本操作--本地仓库

目录 初识git 本地仓库 认识工作区、暂存区、版本库 add操作与commit操作 master文件与commit id 修改文件 版本回退 撤销修改 删除文件 初识git Git 是一个分布式版本控制系统&#xff0c;主要用于跟踪文件的更改&#xff0c;特别是在软件开发中。 为什么要版本…

【STM32-学习笔记-7-】USART串口通信

文章目录 USART串口通信Ⅰ、硬件电路Ⅱ、常见的电平标准Ⅲ、串口参数及时序Ⅳ、STM32的USART简介数据帧起始位侦测数据采样波特率发生器 Ⅴ、USART函数介绍Ⅵ、USART_InitTypeDef结构体参数1、USART_BaudRate2、USART_WordLength3、USART_StopBits4、USART_Parity5、USART_Mode…

Spring MVC简单数据绑定

【图书介绍】《SpringSpring MVCMyBatis从零开始学&#xff08;视频教学版&#xff09;&#xff08;第3版&#xff09;》_springspringmvcmybatis从零开始 代码、课件、教学视频与相关软件包下载-CSDN博客 《SpringSpring MVCMyBatis从零开始学(视频教学版)&#xff08;第3版&…

初识JVM HotSopt 的发展历程

目录 导学 目前企业对程序员的基本要求 面向的对象 实战 学习目标 JVM 是什么 JVM 的三大核心功能 各大 JVM look 看一下虚拟机 HotSopt 的发展历程 总结 导学 目前企业对程序员的基本要求 面向的对象 实战 学习目标 JVM 是什么 JVM 的三大核心功能 即时编译 主要是…

【pytorch】注意力机制-1

1 注意力提示 1.1 自主性的与非自主性的注意力提示 非自主性提示&#xff1a; 可以简单地使用参数化的全连接层&#xff0c;甚至是非参数化的最大汇聚层或平均汇聚层。 自主性提示 注意力机制与全连接层或汇聚层区别开来。在注意力机制的背景下&#xff0c;自主性提示被称为查…