当前位置:网站首页>kettle庖丁解牛第17篇之文本文件输出
kettle庖丁解牛第17篇之文本文件输出
2022-04-23 18:18:00 【飞哥大数据】
引言
在前面16篇文章中,我们详细的介绍了一些常用的输入组件。从本篇文章开始,我们主要讲解的是输出组件。
在本篇文章中,我们主要讲解的是:kettle中的文本文件输出。
转换
转换(transaformation)是ETL解决方案中最主要的部分,它处理抽取、转换、加载各种对数据行的操作。
创建转换
我们要做的ETL操作,全是在转换中设计的,所以我们要先创建一个转换。


保存转换

给你新建的转换,起个名字,并保存


文本文件输出
可通过此组件,将数据流输出到文本文件中保存。


a、文件名称指定
1、文件标签,指定输出数据保存到本地的哪个文件中,点击“浏览”按钮,浏览本地的磁盘位置,然后手工写上txt文件名。




2、选项说明
选项 |
描述 |
文件名称 |
输出文件名。 |
输出传递到servlet |
勾选后,所有输出将导向Servlet字符输出流,而不是持久化文件。可以想像为文件中的内容重定向到了服务器端的一个Web地址。而使用此步骤的转换,可能通过Carte或者DIServer的远程服务来启动,这样转换的执行容器就变成了一个Servlet,所有此步骤的输出都将重定向到该Servlet的字符输出流中。 |
创建父目录 |
勾选后将根据“文件名称”中的路径自动创建父目录 |
启动时不创建文件 |
勾选后在转换开始时不会生成文件。 |
从字段中获取文件名 |
在输入流中使用第7个控件“文件名字段”中的数据作为输出文件名,勾选后下面的“文件名字段”将变为可选状态。 |
文件名字段 |
指定输入流中包含文件名的字段。 |
扩展名 |
指定输出文件名的扩展名。 |
文件名包含步骤数 |
当输出步骤设置为多线程执行时,则自动生成从“0”开始计数的步骤号。 |
文件名里包含数据分区号 |
如果勾选,在当前步骤使用分区模式时,文件名称中包含分区的ID。 |
文件名里包含日期 |
勾选此项,生成文件名会包含年、月、日。 |
文件名里包含时间 |
勾选此项,生成文件名会包含时、分、秒。 |
指定日期时间格式 |
勾选后,控件“日期时间格式”将变为可用,并按照选定的日期格式生成文件名后缀。 |
日期时间格式 |
时间格式下拉框,将根据选取的格式生成文件名后缀。 |
显示文件名 |
预览生成的文件名。 |
结果中添加文件名 |
勾选此项,可把转换的结果文件名存进流中,使其可以在后续步骤中被获取。 |
b、内容指定

选项说明
选项 |
描述 |
追加方式 |
是否在指定的文件最后追加行。 |
分隔符 |
指定在文本中分隔字段的字符,例如;或者制表符。 |
封闭符 |
封闭字段的一对字符。可选。 |
强制在字段周围加封闭符 |
在每列数据的两侧都加上封闭符 |
禁用封闭符修复 |
禁用封闭符修复 |
头部 |
如果你想有一个头部行,使这个选项可用(文件第一行)。 |
尾部 |
如果你想有一个尾部行,使这个选项可用(文件最后一行)。 |
格式 |
DOS 或者UNIX。UNIX 文件行分隔符是换行符。DOS 文件可以是换行符或者回车符。 |
压缩 |
指定压缩的类型(zip 或者gzip)。 |
编码 |
指定文件使用的编码。如果空白就使用系统缺省的编码。 |
字段右填充或裁剪 |
在字段最后添加空格或者删除字符,直到长度达到指定。 |
快速数据存储(无格式) |
当处理大量数据到一个文本文件时,提高性能。(不包含任何格式化信息)。 |
分拆…每一行 |
如果N 比0 大,用N 行拆分文本文件,分割成多个部分。 |
增加文件结束行 |
指定输出文本的结束行。 |
c、字段
设定要导出的字段。

下面是标签的选项列表
选项 |
描述。 |
名称 |
设置要在输出流中显示的字段名称。 |
类型 |
字段类型(String、Date、Number 等)。 |
格式 |
控制输入数据的格式(整数、有小数位、日期格式等) |
长度 |
对于Number:有效数的数量。 对于String:字符的长度。 对于Date:打印输出字符的长度(例如4 代表返回年份)。 |
精度 |
对于Number:浮点数的数量。 对于String,Date,Boolean:未使用。 |
货币 |
用来解释如$10,000.00 的数字。 |
小数 |
小数点可以是”.”(10;000.00)或者”,”(5.000,00)。 |
分组 |
分组可以是”.”(10;000.00)或者”,”(5.000,00)。 |
去除空字符串方式 |
处理之前先去空。 |
Null |
空值如何处理。 |
好了,关于文本文件输出组件的每一个标签页,我都尽可能的讲解了一下。其实我日常工作中,并没有使用到这么多,常用的也就是那么几个。但是我们学习过程中,我还是讲得全一些吧,希望大家花一次时间学习,尽可能都有个大概的了解吧。下面我们实例操作一下吧,这样大更好的吸收和理解。
实战演示
我们要演示从excel文件中读取数据,然后通过文本文件输出组件,把数据最终保存在txt文件中
a、创建excle文件
我在D盘下,创建一个xlsx文件,命名为bigdata。在sheet1中设计数据,第1行是文件表头,从第2行开始是数据,此文件有2列数据.。

b、创建转换

c、Excel输入设置
增加Excel文件做为数据源




指定工作表


指定字段


d、excle数据预览记录



e、文本文件输出组件

使用鼠标左键点击 Excel输入组件,按住shift键,从Excel输入组件拖拽到文本文件输出组件,拖拽后的效果如下图:

f、文本文件输出设置



h、运行转换




i、验证结果文件

结束语
本篇文章主要讲解了:文本文件输出组件的各种详细设置,最后实战演示了,从excel文件中读取数据,然后通过文本文件输出组件,把数据最终保存在txt文件中。
兄弟们,其实想和作是有一段距离的,你想着想着就没有了,可是你做着做着,它就落地了。
啥都别说了,兄弟们后面跟着我干就完了,我们依然掰开揉碎的方式去说。后续的内容更精彩,敬请期待,感谢兄弟们的关注!!
版权声明
本文为[飞哥大数据]所创,转载请带上原文链接,感谢
https://blog.51cto.com/51power/5248688
边栏推荐
- Custom prompt box MessageBox in QT
- Qt读写XML文件(含源码+注释)
- 【ACM】70. 爬楼梯
- Log4j2 cross thread print traceid
- Analysez l'objet promise avec le noyau dur (Connaissez - vous les sept API communes obligatoires et les sept questions clés?)
- Stm32mp157 wm8960 audio driver debugging notes
- Robocode tutorial 5 - enemy class
- Crawler for querying nicknames and avatars based on qqwebapi
- From source code to executable file
- Selenium + phantom JS crack sliding verification 2
猜你喜欢

The vivado project corresponding to the board is generated by TCL script

多功能工具箱微信小程序源码
![解决报错max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]](/img/5f/a80951777a0473fcaa685cd6a8e5dd.png)
解决报错max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

QT reading and writing XML files (including source code + comments)

Re expression régulière

JD freefuck Jingdong HaoMao control panel background Command Execution Vulnerability

Docker installation MySQL

Halo 开源项目学习(七):缓存机制

Batch export ArcGIS attribute table

7-21 wrong questions involve knowledge points.
随机推荐
深度学习经典网络解析目标检测篇(一):R-CNN
Pointers in rust: box, RC, cell, refcell
14 py games source code share the second bullet
re正則錶達式
Rust: shared variable in thread pool
PowerDesigner various font settings; Preview font setting; SQL font settings
powerdesigner各种字体设置;preview字体设置;sql字体设置
How to restore MySQL database after win10 system is reinstalled (mysql-8.0.26-winx64. Zip)
Notepad + + replaces tabs with spaces
Using transmittablethreadlocal to realize parameter cross thread transmission
Connection mode of QT signal and slot connect() and the return value of emit
Rust: the output information of println is displayed during the unit test
CISSP certified daily knowledge points (April 11, 2022)
Selenium + webdriver + chrome realize Baidu to search for pictures
C medium? This form of
【ACM】509. 斐波那契数(dp五部曲)
Robocode tutorial 7 - Radar locking
Install the yapiupload plug-in in idea and upload the API interface to the Yapi document
How to ensure the security of futures accounts online?
由tcl脚本生成板子对应的vivado工程