4

kettle庖丁解牛第11篇之Excel输入

 2 years ago
source link: https://blog.51cto.com/51power/5235213
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

kettle庖丁解牛第11篇之Excel输入

原创

飞哥大数据 2022-04-21 00:10:24 博主文章分类:ETL水滴石穿 ©著作权

文章标签 excle输入 kettle 转换 作业 excel输出 文章分类 其他 大数据 阅读数220

上一篇文章中,我们介绍了:表输入组件的各种详细设置,实战演示了如何操作它来读取oracle库中的一张表数据。

在本篇文章中,我们接着介绍:kettle中的Excel输入组件。

转换(transaformation)是ETL解决方案中最主要的部分,它处理抽取、转换、加载各种对数据行的操作。

我们要做的ETL操作,全是在转换中设计的,所以我们要先创建一个转换。

kettle庖丁解牛第11篇之Excel输入_转换

kettle庖丁解牛第11篇之Excel输入_excel输出_02

kettle庖丁解牛第11篇之Excel输入_转换_03

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

kettle庖丁解牛第11篇之Excel输入_作业_04

kettle庖丁解牛第11篇之Excel输入_转换_05

Excel输入

此组件可以实现,从指定的EXCEL文件输入数据。

kettle庖丁解牛第11篇之Excel输入_作业_06

kettle庖丁解牛第11篇之Excel输入_作业_07

a、文件名称指定

1、文件标签指定数据源文件,点击“浏览”按钮,浏览本地的Excel文件。点击"增加"按钮,你可以添加一个文件到"选择文件"中,如下所示:

kettle庖丁解牛第11篇之Excel输入_作业_08

kettle庖丁解牛第11篇之Excel输入_转换_09

kettle庖丁解牛第11篇之Excel输入_kettle_10

kettle庖丁解牛第11篇之Excel输入_转换_11

2、你也可以用指定正则表达式通配符的形式来搜索文件。正则表达式比简单的用"?"和"*"通配符更有效。

选择的文件

/dafeige/

.*..xls

查找dafeige目录下的所有xls文件

/dafeige/

file.*  或者file.*.xls   file.*.*.xls

查找dafeige目录下的file开头的文件

kettle庖丁解牛第11篇之Excel输入_excel输出_12

3、标签的选项列表

表格类型(引擎)

(1)、Excel 97-2003 xls(JXL): 这个引擎只支持xls结尾的excel

(2)、Excel 2007 XLSX(Apache POI):一般我们选择这个即可,支持xls和xlsx的小文件

(3)、Excel 2007 XLSX(Apache POI Streaming):如果读取的文件比较大,建议使用这个,否则本机内存很快就吃光了

(4)、Open Office ODS(ODFDOM):没有使用过

文件或目录

临时保存要读取的excel全路径名

正则表达式

使用正则来指定要读取的文件

正则表达式(排除)

使用正则来排除、不读取的文件

Password

如果你读取的文件加密了,输入密码

选中的文件

此处保存的是真正要读取的文件

从前面的步骤获取文件名

如果该组件有上一步骤,且需要从该步骤中获取变量的值,作为文件名,则选中此选项。

b、指定工作表

Exel中默认可有多个sheet页,指定你要读取的数据在哪个sheet页(可选择多个)

kettle庖丁解牛第11篇之Excel输入_转换_13

kettle庖丁解牛第11篇之Excel输入_excel输出_14

假设我要读取的数据在Sheet1,把上页面对话框中的Sheet1,由左边框中移动到右边框中。效果如下

kettle庖丁解牛第11篇之Excel输入_excel输出_15

kettle庖丁解牛第11篇之Excel输入_excle输入_16

kettle庖丁解牛第11篇之Excel输入_转换_17

c、内容指定

kettle庖丁解牛第11篇之Excel输入_excle输入_18

检查是否工作表指定了一个头部行。

检查是否不需要空行输出。

停在空记录

当步骤在读取工作表遇到一个空行的时候停止读取。

限制输出的行数,0 代表输出所有行。

防止中文乱码,指定和excel一样即可

添加文件名

此组件运行时,会把读取的文件名输出1列

d、错误处理

kettle庖丁解牛第11篇之Excel输入_excel输出_19

对数据类型控制

跳过错误行

当读取的excel中有数据不合格的,跳过错误,继续读取下1行记录,kettle不用停止正在运行的转换。

告警文件目录

当警告发生的时候,它们将被放进这个目录。文件名将是<警告目录>/文件名.<日期时间>.<警告文件扩展>

错误文件目录

当错误发生的时候,它们将被放进这个目录。文件名将是<错误文件目录>/文件名.<日期时间>.<错误文件扩展>。

失败的记录数文件目录

任务失败后会记录到文件,指定的保存目录

e、字段设置

kettle庖丁解牛第11篇之Excel输入_kettle_20

设置要在输出流中显示的字段名称。

字段类型(String、Date、Number 等)。

对于Number:有效数的数量。

对于String:字符的长度。

对于Date:打印输出字符的长度(例如4 代表返回年份)。

对于Number:浮点数的数量。

对于String,Date,Boolean:未使用。

去除空格类型

处理之前先去空格。

Y/N:如果在当前行中对应的值为空,则重复最后一次不为空的值。

控制输入数据的格式(整数、小数、日期)

给输出的数据加上货币符号

小数点可以是”.”(10;000.00)或者”,”(5.000,00)。

分组可以是”.”(10;000.00)或者”,”(5.000,00)。

f、其他输出字段

kettle庖丁解牛第11篇之Excel输入_excel输出_21

文件名称字段

包括文件名称以及扩展名,以及文件路径的整体

工作表名称字段

工作区的名字(比如:sheet1)

表单的行号列

某个表单的行号值。

文件名字段

把文件名做为一字段

扩展名字段

仅仅包括文件名称以及扩展名称

仅仅包括文件的路径

文件大小字段

是否为隐藏文件字段

最后修改时间字段

最后一次此文件的修改时间

Uri字段

文件/目录的绝对路径

Root uri字段

好了,关于Excel输入组件的每一个标签页,我都尽可能的讲解了一下。其实我日常工作中,并没有使用到这么多,常用的也就是那么几个。但是我们学习过程中,我还是讲得全一些吧,希望大家花一次时间学习,尽可能都有个大概的了解吧。下面我们实例操作一下吧,这样大更好的吸收和理解。

a、创建excle文件

我在D盘下,创建一个xlsx文件,命名为bigdata。在sheet1中设计数据,第1行是文件表头,从第2行开始是数据,此文件有2列数据.。

kettle庖丁解牛第11篇之Excel输入_kettle_22

b、创建转换

kettle庖丁解牛第11篇之Excel输入_作业_23

c、Excel输入设置

增加Excel文件做为数据源

kettle庖丁解牛第11篇之Excel输入_excle输入_24

kettle庖丁解牛第11篇之Excel输入_kettle_25

kettle庖丁解牛第11篇之Excel输入_kettle_26

kettle庖丁解牛第11篇之Excel输入_kettle_27

指定工作表

kettle庖丁解牛第11篇之Excel输入_作业_28

kettle庖丁解牛第11篇之Excel输入_转换_29

kettle庖丁解牛第11篇之Excel输入_excel输出_30

kettle庖丁解牛第11篇之Excel输入_excel输出_31

d、预览记录

kettle庖丁解牛第11篇之Excel输入_转换_32

kettle庖丁解牛第11篇之Excel输入_excle输入_33

kettle庖丁解牛第11篇之Excel输入_excle输入_34

兄弟们,看到这个预览数据的界面,证明你已经成功的通过Excel输入组件,把你磁盘上的一个Excel文件,读取进来了。恭喜恭喜,你已经会使用Excel输入组件了。

本篇文章主要讲解了:Excel输入组件的各种详细设置,实战演示了如何操作它来读取磁盘上的Excel文件。

兄弟们,其实想和作是有一段距离的,你想着想着就没有了,可是你做着做着,它就落地了。

啥都别说了,兄弟们后面跟着我干就完了,我们依然掰开揉碎的方式去说。后续的内容更精彩,敬请期待,感谢兄弟们的关注!!

  • 打赏
  • 1
  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK