Kettle 简介

1. PDI结构简介

 

图 1‑1 PDI核心组件

  Spoon是构建ETL Jobs和Transformations的工具。Spoon可以以拖拽的方式图形化设计,能够通过spoon调用专用的数据集成引擎或者集群。

Data Integration Server是一个专用的ETL Server,它的主要功能有:

功能

描述

执行

通过Pentaho Data Integration引擎执行ETL的作业或转换

安全性

管理用户、角色或集成的安全性

内容管理

提供一个集中的资源库,用来管理ETL的作业和转换。资源库包含所有内容和特征的历史版本。

时序安排

在spoon设计者环境中提供管理Data Integration Server上的活动的时序和监控的服务

 Enterprise Console提供了一个小型的客户端,用于管理Pentaho Data Integration企业版的部署,包括企业版本的证书管理、监控和控制远程Pentaho Data Integration服务器上的活动、分析已登记的作业和转换的动态绩效。

2. PDI的组成部分

名称

描述

Spoon

通过图形接口,用于编辑作业和转换的桌面应用。

Pan

一个独立的命令行程序,用于执行由Spoon编辑的转换和作业。

Kitchen

一个独立的命令行程序,用于执行由Spoon编辑的作业。

Carte

Carte是一个轻量级的Web容器,用于建立专用、远程的ETL Server。

 

3. PDI的相关术语和基本概念

 

图 1‑2 PDI概念模型图

 要了解Kettle的执行分为两个层次:Job和Transformation。两个层次的最主要区别在于数据传递和运行方式。

3.1.    Transformation(转换)

  Transformation(转换)是由一系列被称之为step(步骤)的逻辑工作的网络。转换本质上是数据流。下图是一个转换的例子,这个转换从文本文件中读取数据,过滤,然后排序,最后将数据加载到数据库。本质上,转换是一组图形化的数据转换配置的逻辑结构。

 

  转换的两个相关的主要组成部分是step(步骤)和hops(节点连接)。

  转换文件的扩展名是.ktr。

3.2.    Steps(转换)

  Steps(步骤)是转换的建筑模块,比如一个文本文件输入或者一个表输出就是一个步骤。在PDI中有140多个步骤,它们按不同功能进行分类,比如输入类、输出类、脚本类等。每个步骤用于完成某种特定的功能,通过配置一系列的步骤就可以完成你所需要完成的任务。

3.3.    Hops(节点连接)

  Hops(节点连接)是数据的通道,用于连接两个步骤,使得元数据从一个步骤传递到另一个步骤。在上图所示的转换中,它像似顺序执行发生的,但事实并非如此。节点连接决定了贯穿在步骤之间的数据流,步骤之间的顺序不是转换执行的顺序。当执行一个转换时,每个步骤都以自己的线程启动,并不断的接受和推送数据。

注意:所以的步骤是同步开启和运行的,所以步骤的初始化的顺序是不可知的。因为我们不能在第一个步骤中设置一个变量,然后在接下来的步骤中使用它。

在一个转换中,一个步骤可以有多个连接,数据流可以从一个步骤流到多个步骤。在Spoon中,hops就想是箭,它不仅允许数据从一个步骤流向另一个步骤,也决定了数据流的方向和所经步骤。如果一个步骤的数据输出到了多个步骤,那么数据既可以是复制的,也可以是分发的。

3.4.    Jobs(工作)

  Jobs(工作)是基于工作流模型的,协调数据源、执行过程和相关依赖性的ETL活动。

  Jobs(工作)将功能性和实体过程聚合在了一起。下图是一个工作的例子。

  一个工作中展示的任务有从FTP获取文件、核查一个必须存在的数据库表是否存在、执行一个转换、发送邮件通知一个转换中的错误等。最终工作的结果可能是数据仓库的更新等。

  工作由工作节点连接、工作实体和工作设置组成。

  工作文件的扩展名是.kjb。

4. Variable(变量)

  根据变量的作用域,变量被分为两类:环境变量和kettle变量。

4.1.    环境变量

  环境变量可以通过edit menu下面的set environment variables对话框进行设置。使用环境变量的唯一的问题是,它不能被动态的使用。如果在同一个应用服务器中执行两个或多个使用同一环境变量的转换,将可能发生冲突。环境变量在所以使用jvm的应用中可见。

4.2.    Kettle变量

  Kettle变量用于在一个小的动态范围内存储少量的信息。Kettle变量是kettle本地的,作用范围可以是一个工作或转换,在工作或转换中可以设置或修改。Set variable步骤用来设置与此变量有关的工作从此设置其作用域,如:父工作、祖父工作或根工作。

5. Kitchen执行器的使用

5.1.    Kitchen执行器的参数

  -rep      : Repository name   任务包所在存储名

    -user     : Repository username   执行人

    -pass     : Repository password   执行人密码

    -job      : The name of the job to launch 任务包名称

    -dir      : The directory (don''t forget the leading / or \) 

    -file     : The filename (Job XML) to launch 

    -level    : The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing) 指定日志级别

    -log      : The logging file to write to  指定日志文件

    -listdir  : List the directories in the repository 列出指定存储中的目录结构。

    -listjobs : List the jobs in the specified directory 列出指定目录下的所有任务

    -listrep  : List the defined repositories 列出所有的存储

    -norep    : Don''t log into the repository  不写日志

5.2.    Kitchen命令行选项

kitchen.bat   后面可以是-也可以是/然后再加options

Options:

/rep        : Repository name

/user       : Repository username

/pass       : Repository password

/job        : The name of the job to launch

/dir        : The directory (dont forget the leading /)

/file       : The filename (Job XML) to launch

/level      : The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing)

/logfile    : The logging file to write to

/listdir    : List the directories in the repository

/listjobs   : List the jobs in the specified directory

/listrep    : List the available repositories

/norep      : Do not log into the repository

/version    : show the version, revision and build date

/param      : Set a named parameter <NAME>=<VALUE>. For example -param:FOO=bar

/listparam : List information concerning the defined parameters in the specified job.

/export     : Exports all linked resources of the specified job. The argument is the name of a ZIPfile.

而options 后面可以是=也可以是:也可以是空格

kitchen.bat /file d:\   或者 -file=D:\ 或者/file:D:\等等都可以。

5.3.    Windows下kitchen的执行方式的实例

  kitchen.bat /norep -file=D:/kettledata/mysal2orcle.kjb >> kitchen_%date:~0,10%.log

  上面的含义是,使用kitchen.bat 命令来执行job文件,job文件的存放路径是D:/kettledata/mysal2orcle.kjb,并且将执行的结果输出到 kitchen_%date:~0,10%.log文件中。

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

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

相关文章

数据库系统原理与实践 笔记 #9

文章目录 数据库系统原理与实践 笔记 #9存储管理与索引文件和记录的组织文件组织定长记录变长记录分槽的页结构文件中记录的组织顺序文件组织多表聚簇文件组织 数据库系统原理与实践 笔记 #9 存储管理与索引 文件和记录的组织 文件组织 数据库是以一系列文件的形式存储的。…

羊大师:冬季有哪些宅家必备?

羊大师&#xff1a;冬季有哪些宅家必备&#xff1f; 寒冷的冬天&#xff0c;宅在家里是舒适的选择。但是长时间的久坐却会让我们的身体变得僵硬&#xff0c;缺乏运动会导致身体机能下降。为了保持健康且舒服的状态&#xff0c;羊大师建议我们应该在家里进行一些简单又有效的运…

竞赛 题目:基于深度学习的人脸表情识别 - 卷积神经网络 竞赛项目 代码

文章目录 0 简介1 项目说明2 数据集介绍&#xff1a;3 思路分析及代码实现3.1 数据可视化3.2 数据分离3.3 数据可视化3.4 在pytorch下创建数据集3.4.1 创建data-label对照表3.4.2 重写Dataset类3.4.3 数据集的使用 4 网络模型搭建4.1 训练模型4.2 模型的保存与加载 5 相关源码6…

拜托!佛系点,你只是给社区打工而已

社区人到年底了各种要写的东西很烦啊&#xff01;突然看到这个&#xff0c;真的谢谢啊&#xff01; 家人们谁懂啊&#xff1f;&#xff01;&#xff01;平时写个东西起码两三天&#xff0c;试了一下这东西&#xff01;输入需求&#xff0c;一键生成&#xff0c;写好了&#xf…

vue年季度月联动筛选(el-cascader实现)

默认显示当年当季当月 <label class"font-weight">时间范围</label> <el-cascaderplaceholder"请选择":options"timeOption"filterableclearablechange-on-selectv-model"timeRange":props"{emitPath: true}&quo…

深眸科技以自研算法+先进硬件,创新打造AI视觉一体化解决方案

工业视觉软硬件一体化解决方案&#xff1a;是以工业AI视觉技术为核心&#xff0c;通过集成工业相机等视觉硬件、电控系统和机械系统等自动化设备以及算法平台等软件应用&#xff0c;为工业自动化降本增效提质。 深眸科技为进一步巩固和加强技术领先优势&#xff0c;创新打造的…

DBeaver连接本地MySQL

原文&#xff1a; DBeaver21.3.0安装与连接本地MySQL_dbeaver创建本地数据库_傅大胖的博客-CSDN博客 其他&#xff1a; mysql 的驱动下载地址&#xff1a; Central Repository: mysql/mysql-connector-java ​​​​​​​

一行代码搞定GPT4.0禁止升级开通

GPT4.0官方停止开通&#xff1f;看我一行代码就搞定他&#xff0c;又可以愉快的充值升级了 首先打开你的chatgpt的界面 正常点击这个升级是没有用的 这个界面中windows用户按键盘的F12打开开发者工具 mac电脑点菜单栏的开发–页面检查 然后输入这一串命令并回车 等待两…

预约按摩小程序功能及使用指南;

小程序预约按摩功能及使用指南&#xff1a; 1. 注册登录&#xff1a;用户可选择通过账号密码或微信一键登录&#xff0c;便捷注册&#xff0c;轻松管理预约服务。 2. 查找店铺&#xff1a;展示附近的按摩店铺信息&#xff0c;用户可根据需求选择合适的店铺进行预约。 3. 选择服…

SpringBoot2—运维实用篇

目录 打包与运行 • 程序打包与运行&#xff08;Windows版&#xff09; • 程序运行&#xff08;Linux版&#xff09; 配置高级 • 临时属性设置 • 配置文件分类 • 自定义配置文件 多环境开发 多环境开发&#xff08;yaml单一文件版&#xff09; 多环境开发&am…

划片机新手教程:从准备工作到注意事项全解析!

随着科技的飞速发展&#xff0c;划片机已成为半导体行业不可或缺的一部分。对于新手来说&#xff0c;如何正确操作划片机显得尤为重要。以下是新手操作划片机的步骤和建议。 一、准备工作 在开始操作划片机之前&#xff0c;首先需要准备好以下工具和材料&#xff1a; 1. 划片机…

大结局!OpenAI创始人奥特曼和 Greg Brockman 将加入微软!!!

持续48小时的OpenAI政变大戏终于迎来了大结局&#xff01; 微软堪称最大赢家&#x1f4a5;&#x1f4a5;&#x1f4a5; 微软CEO刚刚宣布&#xff1a; 我们仍然致力于与 OpenAI 的合作伙伴关系&#xff0c;并对我们的产品路线图、我们在 Microsoft Ignite 上宣布的一切继续创…

8年经验之谈 —— 如何使用自动化工具编写测试用例?

以下为作者观点&#xff0c;仅供参考&#xff1a; 在快速变化的软件开发领域&#xff0c;保证应用程序的可靠性和质量至关重要。随着应用程序复杂性和规模的不断增加&#xff0c;仅手动测试无法满足行业需求。 这就是测试自动化发挥作用的地方&#xff0c;它使软件测试人员能…

【理解ARM架构】不同方式点灯 | ARM架构简介 | 常见汇编指令 | C与汇编

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《理解ARM架构》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 目录 &#x1f3c0;直接操作寄存器点亮LED灯&#x1f3c0;地址空间&#x1f3c0;ARM内部的寄存…

【深度学习实验】注意力机制(三):打分函数——加性注意力模型

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 理论介绍a. 认知神经学中的注意力b. 注意力机制 1. 注意力权重矩阵可视化&#xff08;矩阵热图&#xff09;2. 掩码Softmax 操作3. 打分函数——加性注意力模型1. 初始化2. 前向传播3. 内部组件…

Vue3 provide 和 inject 实现祖组件和后代组件通信

provide 和 inject 能够实现祖组件和其任意的后代组件之间通信&#xff1a; 一、provide 提供数据 我们在祖组件中使用provide 将数据提供出去。 使用provide 之前需要先进行引入&#xff1a; import { provide } from "vue"; 语法格式如下&#xff1a; provide(&q…

C++类与对象(3)—拷贝构造函数运算符重载

目录 一、拷贝构造函数 1、定义 2、特征 3、内置与自定义类型 4、const修饰参数 5、默认生成 浅拷贝 深拷贝 6、总结 二、运算符重载 1、定义 2、判断是否相等 3、比较大小 4、赋值 5、总结 一、拷贝构造函数 1、定义 拷贝构造函数&#xff1a;只有单个形参…

pnpm 管理依赖包是如何节省磁盘空间的?

npm 存在的问题 我们经常使用 npm 来管理 node 项目中的包&#xff0c;从 package.json 中读取配置将依赖下载到本地&#xff0c;以保障项目的正常运行。 当项目数量多时&#xff0c;这样的包管理方式会非常的占用电脑内存。由于每个项目都有属于自己的依赖&#xff0c;每个项…

【Zabbix监控二】之zabbix自定义监控内容案例(自动发现、自动注册)

一、自定义监控内容 案例&#xff1a;自定义监控客户端服务器登录的人数 需求&#xff1a;限制登录人数不超过3个人&#xff0c;超过5个人就发出报警 1、在客户端创建自定义key 明确需要执行的linux命令 创建zabbix监控项配置文件&#xff0c;用于自定义Key #在zabbix的配…