ETL工具Kettle

1 Kettle的基本概念

一个数据抽取过程,主要包括创建一个作业(Job),每个作业由一个或多个作业项(Job Entry)和连接作业项的作业跳(Job Hop)组成。每个作业项可以是一个转换(Transformation)或是另一个作业。一个转换由一个或多个步骤(Step)和连接步骤的(Hop)组成。

转换主要用于数据的抽取(Extraction)、转换(Transformation)以及加载(Load),比如读取文件、过滤输出行、数据清洗或加载到数据库等步骤。一个转换包含一个或多个步骤,每个步骤都是单独的线程,当启动转换时,所有步骤的线程几乎并行执行。步骤之间的数据以数据流方式传递。所有的步骤都会从它们的输入跳中读取数据,并把处理过的数据写到输出跳,直到输入跳里不再有数据就终止步骤的运行;当所有步骤都终止了,整个转换就终止了。由于转换里的步骤依赖前一个步骤获取数据,因此转换里不能有循环

相较于转换,作业是更加高级的操作。作业由一个或多个作业项(作业或转换)组成。所有的作业项是以某种自定义的顺序串行执行的。作业项之间可以传递一个包含了数据行的结果对象。当一个作业项执行完成后,再传递结果对象给下一个作业项。作业里可以有循环

跳是步骤之间带箭头的连接线,它定义了一个单向通道,用于连接两个步骤,实现将数据从一个步骤(写入数据到行集)流向另一个步骤(从行集中读取数据)。跳是两个步骤之间的被称为“行集”(Row Set)的数据行缓存(可以在转换设置中定义行集大小)。若行集满了,则向行集写数据的步骤将停止写入,直到行集里又有空间。若行集空了,则从行集读取数据的步骤就会停止读取,直到行集里又有可读取的数据行。跳对于向行集写入数据的步骤来说是输出跳,一个步骤可以拥有多个输出跳;跳对于从行集中读取数据的步骤来说是输入跳。

作业跳是作业项之间带箭头的连接线,它定义了作业的执行路径。

2 Kettle的基本功能

Kettle的基本功能包括转换管理作业管理。转换管理主要包括输入、输出、转换、应用、流程、脚本、查询、检验、作业、映射和批量加载等功能。作业管理主要包括通用、邮件、文件管理、条件、脚本、批量加载等功能。

3 安装Kettle

在Windows系统中打开浏览器,访问Kettle官网(https://sourceforge.net/projects/pentaho/),下载Kettle安装文件pdi-ce-9.1.0.0-324.zip。

把pdi-ce-9.1.0.0-324.zip解压缩到“D:\”目录下(或者也可以选择一个其他目录,比如“C:\”),会生成一个“data-integration”目录,该目录下就包含了Kettle。在data-integration目录里包含了Spoon的启动文件,即spoon.bat,双击该文件就可以启动Spoon,

4 数据抽取

1 把文本文件导入到Excel文件中
这里给出一个实例,演示如何使用Kettle把文本文件导入到Excel文件中,

具体包括如下步骤: 创建文本文件; 建立转换; 设计转换; 执行转换。

1.创建文本文件

在“D:\”目录下新建一个文本文件studentinfo.txt,其内容如图7-4所示,文件的第1行是字段名称,包括sno、name、sex和age,字段之间用“|”隔开,其余行都是记录,字段之间也是用“|”隔开。

2.建立转换

在Spoon主界面的“主对象树”栏目中,在“转换”上面单击鼠标右键,在弹出的菜单中点击“新建”。点击Spoon主界面左上角的“保存”图标,把这个转换保存到某个路径下并且名称为“text_to_excel”。

3.设计转换

在“核心对象”栏目中,在“输入”控件里把“文本文件输入”拖到右侧设计区域,然后在“输出”控件里把“Excel输出”拖到右侧设计区域,然后为这两个控件建立连线

放置文本文件输入和Excel输出两个控件

这里的连线就是前文介绍过的“跳”。为这两个控件建立连线的方法是,按住键盘上的Shift键,然后用鼠标左键单击“文本文件输入”控件图标,再用鼠标左键单击“Excel输出”控件图标,最后在其他空白区域单击鼠标左键,这样就建立了一条从“文本文件输入”到“Excel输出”的连线。

双击设计区域的“文本文件输入”控件,打开设置界面,点击“文件”选项卡,点击“文件或目录”右侧的“浏览”按钮,把studentinfo.txt文件添加进来,然后点击“增加”按钮,studentinfo.txt文件就会被增加到“选中的文件”中,增加后的效果如图7-8所示。

点击增加,成功添加文件,继续设置内容选项卡,修改分隔符和编码

获取字段

预览记录

双击设计区域的“Excel输出”控件图标,打开设置界面,在“文件”选项卡中,设置“文件名”为“D:\file”。

在“字段”选项卡中,点击界面底部的“获取字段”按钮,成功获取字段以后的效果,

然后把“sno”和“age”字段的“格式”设置为“#”。最后,点击“确定”按钮完成“Excel输出”控件的设置。全部设置完成以后,需要保存设计文件。

4. 执行转换

在转换设计界面中,点击三角形按钮开始执行转换,

在界面中点击“启动”,如果转换执行成功,

,在两个控件图标上都会显示绿色的勾号。

这时,到D盘根目录下就可以看到新生成的文件file.xls,可以使用Excel软件打开file.xls查看内容

这样,就完成了把文本文件导入到excel文件中

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

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

相关文章

RGB-T Salient Object Detection via Fusing Multi-Level CNN Features

ADFC means ‘adjacent-depth feature combination’,MGF means ‘multi-branch group fusion’,JCSA means ‘joint channel-spatial attention’,JABMP means ‘joint attention guided bi-directional message passing’ 作者未提供代…

openpnp - src - 配置文件载入过程的初步分析

文章目录 openpnp - src - 配置文件载入过程的初步分析概述笔记自己编译用的git版本报错截图问题1 - 怎么在调试状态下, 定位到抛异常的第一现场?结合单步调试找到的现场, 来分析报错的原因openpnp配置文件读取的流程END openpnp - src - 配置文件载入过程的初步分析 概述 从…

LVS+keepalive高可用集群

keepalive简介 keepalive为LVS应用延伸的高可用服务。lvs的调度器无法做高可用。但keepalive不是为lvs专门集群服务的,也可以为其他的的代理服务器做高可用。 keepalive在lvs的高可用集群,主调度器和备调度器(可以有多个) 一主两备或一主一备。 VRRP: k…

[红蓝攻防]MDOG(全新UI重制版)为Xss跨站而生,数据共享,表单劫持,URL重定向

说明 功能Cookie窃取表单劫持(钓鱼账密)重定向流量劫持多平台数据推送钉钉数据推送 运行窗口 ./dist目录下已生成exe文件,双击打开 Cookie窃取 点击运行服务,复制以上的payload,payload怎么变形那么你可已去混淆 payload在页面执行 受害者访问存在xss漏洞的页面时受到攻击,…

python实验2 π的计算

π的计算 1. 圆周率的介绍2. BBP公式计算圆周率3. 蒙特卡洛方法计算π 1. 圆周率的介绍 圆周率π自古就是人们计算的问题,π到底是什么,圆的周长与直径的比值或者是面积与半径的平方之比,或者是使sinx0的最小正数x。所以每一种定义每一种理解…

NSSCTF web刷题记录3

文章目录 [护网杯 2018]easy_tornado[NSSRound#V Team]PYRCE方法一 cp命令方法二 tar命令 [CISCN 2019华东南]Web4[CISCN 2023 华北]ez_date[GWCTF 2019]你的名字[GKCTF 2020]ez三剑客-easynode [护网杯 2018]easy_tornado 打开题目,发现有三个链接,分别…

【Effective C++】

Effective C 文章目录 Effective C一、让自己习惯C条款01:视C为一个语言联邦条款02:尽量以const,enum,inline代替#define的使用条款03:尽可能使用const条款04:确定对象被使用前已先被初始化 二、构造/析构/…

Flutter笔记:完全基于Flutter绘图技术绘制一个精美的Dash图标(中)

Flutter笔记 完全基于Flutter绘图技术绘制一个精美的Dart语言吉祥物Dash(中) 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://…

C/C++晶晶赴约会 2020年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C晶晶赴约会 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C晶晶赴约会 2020年12月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 晶晶的朋友贝贝约晶晶下周一起去看展览&#xff0…

25.2 MySQL 运算符

1. 伪表 在MySQL中, DUAL是一个特殊的单行, 单列的虚拟表, 主要用于在SELECT语句中计算表达式或执行函数, 而不需要从实际的数据表中检索数据. 使用DUAL的原因主要有以下几点:* 1. 简化计算: 通过在SELECT语句中使用DUAL, 可以方便地计算表达式或执行函数, 而无需创建临时表或…

AJAX原理及介绍

文章目录 AJAX(Asynchronous Javascript And Xml)传统请求及缺点AJAX概述XMLHttpRequest对象AJAX GET请求AJAX GET请求的缓存问题AJAX POST请求基于JSON的数据交换基于XML的数据交换AJAX乱码问题AJAX的异步与同步AJAX代码封装AJAX实现省市联动AJAX跨域问…

磁盘的结构(磁道,扇区,盘面,柱面,物理地址)

目录 1.磁盘、磁道、扇区的概念1.磁盘2.磁道3.扇区 2.如何在磁盘中读/写数据3.盘面、柱面的概念4.磁盘的物理地址1.根据地址读取一个“块” 5.磁盘的分类1.活动头磁道2.固定头磁盘3.根据盘片是否可更换 1.磁盘、磁道、扇区的概念 1.磁盘 磁盘的表面由一些磁性物质组成&#xf…

打破尺寸记录!荷兰QuTech研发16量子点阵列新技术

承载16个量子点交叉条阵列的量子芯片,可无缝集成到棋盘图案(图片来源:网络) 由荷兰代尔夫特理工大学(TU Delft)和荷兰应用科学研究组织(TNO)组建的荷兰量子计算研究中心QuTech的研究人员开发了一种用相对较少的控制线来控制大量量…

双向链表的初步练习

𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇: Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - :来于“云”的“羽球人”…

Redis进军磁盘存储

目录 1、对抗价格优势:纳入磁盘,降低成本? 2、Redis的野心:无敌是多么寂寞,所以我们要开新地图 3、开发者异议:他们正在偏离我们选择Redis的初衷 4、结语:性能为王,但绝不甘于只…

Elasticsearch:使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation (四)

这篇博客是之前文章: Elasticsearch:使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation (一)Elasticsearch:使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation (二&a…

ROS自学笔记十八:ModuleNotFoundError: No module named ‘serial‘

出现上述错误,则需要安装serial功能包 第一步:输入 sudo apt install python3-pip 第二步:输入 pip install pyserial

List 3.5 详解原码、反码、补码

前言 欢迎来到我的博客,我是雨空集(全网同名),无论你是无意中发现我,还是有意搜索而来,我都感到荣幸。这里是一个分享知识、交流想法的平台,我希望我的博客能给你带来帮助和启发。如果你喜欢我…

记一次线程爆满导致服务器崩溃的问题排查

记一次线程爆满导致服务器崩溃的问题排查 重启服务器 重启后,ssh连接发现下面问题 fork faild:Cannot allocate memory 以为是内存满了 于是,free -h,查看内存情况,还有,观察一段时间后,内存没多大变化 修改…

【扩散模型】HuggingFace Diffusers实战

HuggingFace Diffusers实战 1. 环境准备2. DreamBooth2.1 Stable Diffusion简介2.2 DreamBooth 3. Diffusers核心API4. 实战:生成美丽的蝴蝶图像4.1 下载数据集4.2 调度器4.3 定义扩散模型4.4 创建扩散模型训练循环4.5 图像的生成方法1.建立一个管线方法2.写一个采样…