大数据预处理技术-数据预处理工具

大数据预处理技术-数据预处理工具

image-20240325233645268

1
2
3
4
5
6
7
在一个完整的挖掘流程中,数据预处理要花费60%左右的时间,而后续的挖掘工作仅仅占工作量的10%左右。

数据预处理的工具及手段都是多种多样的,归纳起来分为工具类手段及编程类手段。这里讲kettle和python

kettle除了支持各种关系型数据库,以及hbase,mongodb这样的nosql数据库外,还支持excel,access这类小型的数据源。

kettle的预处理功能很强大,除了支持选择,过滤,分组,连接,排序这些常用的功能外,kettle里的java表达式,正则表达式,java脚本,java类等功能都非常灵活强大。
1
python中的numpy和pandas是数据预处理中常用的的库。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Ok啊,今天我们进入第二章开头工具的一个初步使用,这个章节的学习,首先呢我们来看一下这一个章节的一个整体的脉络。那么首先这个章节呢分了两个部分,第一叫做cat的安装,第二呢就是cat的使用啊,这个脉络非常的清晰,第一我要把它装好好,第二,那么我就要学怎么来使用它。那么首先我们先进入第一部分的学习,叫做cat的安装开头。


首先我们来看一下什么叫开头啊?开头它是一款国外开源的etl工具,它是纯java编写的,中文名呢,开头直译叫做水壶。那么水壶为什么它叫水壶?那是因为该项目的主程序员叫做mattm这样一个人,他希望把各种数据放入一个狐狸,然后以一种指定的格式流出啊,所以他给我们这个工具起了个名字,就叫做开头g形象啊。

那么kettle要支持两种脚本啊,我们开的工具支持两种脚本,一个叫transformation啊,翻译过来就叫做转换,那么job叫做工作,那么tansformation主要是针对怎么样数据的一个基础转换的功能啊。

那么job则是完成整个工作流的一个控制,我们可以把它和我们学过的啊编程类语言的函数相类比,大家可以这样理解, job我可以看成啊他job我们后面可以说到,他开始必须有个start, start的一个啊工作项,那么这个start我们就可以把它看成我们函数的什么一个main函数的一个入口。啊就是说我们的开头执行的一个入口,那么里面的啊嗯工作当中的其他的一些小模块,我们可以看成是一个大的类。那么我们里面调用的里面一些子模块啊调用我们的嗯其他的job或者调用我们的转换这些我们可以把它看成函数当中一些词性的啊功能性函数,我们调用这些子函数啊它是这样一个关系,也就是说job比tansformation的作用域会大一些。


那么接下来呢,我们再简要的讲一下开头它所具备的几个特性。
首先它是开源的,开源哈,大家很好理解,也就是说它是免费的,对吧?
那么第二个它是java编写的,所以说它必须先安装java。那么我们后面要讲如何来安装,开头的第一步就是安装对应的java啊。
那么第三个特点是它支持多平台,也就是说它既可以在windows上运行,也可以在下面啊不同的系统上进行。
那么第四个叫做可视化,也就是说我们的kettle替代了完成数据转换任务的一个手工编码,它的作用就是尽量少写代码,降低了我们的开发的一个难度,这是它最大的一个特点。

另外呢,它还支持各类数据源,比如说我们的各类数据库, mcnmdb等等哈,这些在后面的章节都有所体现,而且啊,还有以及另外的一些小的哈,各种格式的文件,比如说excel, jscsnv等等,而且开头还具有强大的处理功能,也就是说它除了选择,过滤。分组,连接,排序这些常用的功能以外,它还支持正则表达式, java脚本。哈,这是我们的python编码。等等等等。我们因为我们第七章第八章最后两章就是讲的用python编码的方式,怎样来实现我们的预处理。那么这个呢就是我们的一个开头的一个基本的啊知识。然后接下来呢我们来看一下我们的安装部分,我们刚刚前面也讲到了,我们开头的安装是用什么java代码来编写的,所以说我们在装开头之前必须先装java啊java的安装呢?大家因为之前学过java,所以呢我们这里呢就不再详细的来描述怎么来下载java,怎么来安装java啊,这个大家都应该已经很清楚了。然后这里呢给了一个链接地址,这是它的官网,大家就下来以后,你根据自己的情况啊,去我们的官网进行对应版本的下载。这个地方呢,我建议大家下载java 1.8。为什么?因为你们后续将要学到一个叫做spark的啊这个数据结构的这样一个一门课程里面,它也要用到java。那么java的版本和spark以及c这门语言的版本,它有一个配对关系,我们在这门课程当中配对的版本就是我们的java 1.82的版本,所以我建议大家下载下载java 1.8并进行安装。 Ok安装完成以后,不是直接我们就拿来就可以用了,我们还要做一个什么呢?我们要设置我们的环境变量,然后这个环境变量啊大家可以看到ppt这个地方有1233组数据,那么这个数据里面涉及了三个我们需要配置的环境变量,一个叫做gh,一个叫做class pass,一个叫做pass。那么前面两个环境变量是需要我们新建的,也就是说在我们安装完我们的电脑系统以后,这两个环境变量是不存在的,需要我们手工添加进去对应的内容。第一个java home就是说我们安装java的安装路径。啊这是我的安装路径,这个里面配置的时候不要copy粘贴这样哈,或者一葫芦画瓢的敲你自己安装到你自己的哪个盘的哪个目录下,你这个地方就把那个目录copy过来哈,然后粘贴上去。这是第一个加入后第二个呢?啊,它是一个类的路径,这个类的路径它主要打包在我们的安装路径里面有一个libbb哈这一个文件夹下里面的两个jar的压缩数据包,第一个叫做gt的glr好,第二个是在叫做tsgr二,这两个要放进去,然后d最后一个是pass pass这个路径指定的是我们安装的时候,你安装java的时候,它会有两个主文件夹生成,一个是grr哈,一个是我们的jdk那么这两个文件夹下面的b文件里面的呃一些文件呢是我们需要的,所以这两个要加到我们的主路径里面。然后有些同学可能会问,为什么老师你这里没有java home这一个变量名啊,像c pass这样来进行替代,而是直接写了,把它写进去了。啊就是c盘啊,前面是我们的安装路径,然后后面的对应的文件夹下面的文件,那是因为哈在windows的环境下,如果你写在pass里面直接增加。嗯我们这个环境变量的时候,你如果直接写成用变量来替代我们的路径,它在有时候可能会出现问题。嗯这个问题呢可能是他的系统和开头兼容性的一个bug。因为之前我试过,如果用变量,我的电脑在我当前的版本下,它是无法识别这个路径的话,它会报错,不能能够正确地运行我们的java,所以说我把它改成了直接改成了路径的形式啊,没有用我的变量进行替代。好, ok,那么接下来我们看一下怎样来改啊,我们增添我们的环境变量,具体的话怎么来做?首先找到我的电脑,用右键点击我的电脑,在最下面有个属性栏,老电击属性,那么点击属性后会出现图中这样一个对话框,这个对话框里,在我的左边最下面有一个高级系统设置好,我们点击它,然后进入了我们的系统属性里面,高级啊,这样有一个环境变量啊,这个时候环境变量出来了,我们点击这个环境变量,这时候啊,我们出现了这样一个页面,啊最上面这个主页面环境变量,那么这就是这个主页面里面的左边第一栏的属性是我们的变量名称,第二个呢,是这个变量名对应的值。这个时候我们点击新建,就会出现这个用户变量的这样一个框啊,这个时候在变量名当中输入我们刚刚说的第一个java home,下面输入我们的安装路径,点击确定,这个时候这个变量它就会出现在哈我们的这个主对话框里面的。同理, class pass也是一样啊,这里变量零,然后变量值,然后接下来我们看我们的pass, pass我们是已经有的,对吧?我说过它已经在系统变量中存在了,我们做的是添加,不是新建。因此这个地方我们点击的不再是这个新建按钮,而是编辑按钮,点击编辑按钮以后,这边它会出来啊,很多很多的数据,我们点新建,然后把刚刚的两个值给加进去啊,一个是我们的jdk一个是我们的gre,同理哈,一步步的,然后点确定。那我们的环境变量呢?这个时候就配置完毕了。配置完毕以后不代表我们的工作怎么样就做完了,我们还要做的事情叫做验证我们的java是否安装成功。这个时候大家打开啊啊, cmd啊,打开,打开我们的命令窗窗口以后,输入什么第一个命令java空格一个版本号,如果出现正确的出现我们的版本号不报错,就说明了我们这个啊,基本上说明我们的java已经安装的没问题了。然后我们再要输入个javac啊,这个运行java程序的一个命令的,那么javac这一个输入以后,它下面会出现啊,很多很多的一些选项的解释性语言,如果这两个输入都不报错,那你就完全能证明我们加入环境配置正确。啊我们的第一步呢就做完了。好,然后我们来看一下电脑上刚刚我们演示的这个过程。哈,大家可以看到这里,打开对吧?属性好, ok,我们来看啊,我们打开以后就进入了这样一个页面,我们点击我们的高级系统设置,进入了我们系统属性的高级选项当中,再点击我们的环境变量对吧?就进来了啊,这是我们之前已经设计好的,加了后,如果没有,我们应该点什么新建,在这个地方输入加入home对吧?然后把我们的这个路径哈copy粘贴到这里,最后这个地方点确定就ok了啊。然后同理,我们的啊也是一样的道理,点新建,把它添加添加进去啊这个地方哈,那么pass啊pass说了,我们是已经存在的,所以我们不再点新建,而是点了什么编辑啊,在win十下,它会出现这样一个对话框,然后这个地方点击新建这个点啊,在这里就可以加入你后面安装的哈程序的对应的一些文件在里面。 Ok啊,然后我们再一步一步的确定完还回去把它关掉,这个时候我们的环境就搭好了,然后我们点击cmd啊,进入我们的命令窗口来看一下对吧?好,出现哈这样的页面就说明我们的环境变量以及什么配置正确了,运用这两个命令来查看我们的java是否安装成功以及配置正确。好,我们来关掉,我们继续呢,往后看。那么java安装好以后,下一步工作很显然就是什么?安装我们的开头。我们的开头呢,它是一款绿色软件,其实它是不需要安装的。然后大家到啊我给你们的ppt上面的这一个网址下面去进行下载。好。我这个地方呢下载的是cat 8.2这个版本啊8.2这个压缩包开头我们来看一下哈,它压缩包里面直接是一个什么文件夹,它并不是一个安装程序,它里面的所有的配置啊,这些需要运行开头支撑的文件,它都给你已经装好了,我们直接下下来用就可以了啊。那么下载完以后,我们直接解压zip。如果是在windows下,我们找到这一个bb启动可视化编程界面。然后如果是在linux下,启动的是b点shrn下面是sh作为启动文件。那么为了方便使用,我们需要哈像安装我们其他文件一样,一般我们会在桌面创建一个快捷方式,创建快捷方式以后,我们需要美化一下它,因为它直接创建的那个图标不太好看,怎么美化?点击右键新创建的快捷文件,在弹出的菜单中选择属性,打开属性对话框,显示快捷方式标签,那么在这个标签下点击更改图标按钮啊,这个时候我们去找的一个叫bico的文件,点击它,那么我们的开头就会变成哈它的那个标示。我们来看一下这里这个文件呢就是我们的开头,那么刚刚那个启动文件在哪里啊?我给大家演示一下,我解压以后我是放在了我的d盘里面啊这个开头的文件夹里面。这个data integration就是我们刚刚解答出来的。啊就在这个里面我们找到啊这个是sh呢是在下面作为我们的启动文件来进行使用的,然后这个啊这一个呢就是作为我们windows下面的开头进行启动来用的。点击右键怎么样发送到桌面快捷方式啊?它就会在这个地方显示图标,但是它原来图标的样子是这样子的啊,这样不好看,对吧?所以这个时候呢,我们呢进行了一个美化,怎么美化?在这个图标右键点击属性,然后属性的中间位置有个更改图标,我们点击它,这里再点击浏览,找到这个哈,我们说叫点ico的这个,点击它,然后选择打开,这个列表中就会出现这个图标的图案,确定确定。这个时候哈,我们的开头就变成了这个样子了。啊,这就是啊,我们开头的安装是不是很简单,对吧?其实它就是一个配置的过程,那么开头安装完毕,它还是要配置环境变量。开头的环境变量哈,跟我们的java类似,我们给它取名叫cat home,然后把cat安装路径刚刚我给大家演示了,我是放在第一盘soft cat文件夹下。哈,把这个data integration这个解压的文件夹放了进去。那么怎么来配环境变量?刚刚我已经演示过了。啊这里不再演示。大家把名字路径放进去,点击确定哈就ok。然后这个是我们的开头安装。那么开头安装完以后,因为我们这一章节后面有一个开头的使用,对吧?刚才我们讲了开头的使用,里面有一个简单的例子是用来帮助大家学习啊,初步学习一下我们怎么来使用这个工具。那么在这个例子当中,它需要读取我们的一个表格数据,而我们的这个表格数据是放在我们的数据库里面的,那么这个数据库

Kettle的初步使用

安装

使用

转换的基本概念

1
2
3
4
5
6
7
8
9
10
11
12
13
转换是ETL解决方案中最主要的部分,他负责处理抽取、转换、加载各阶段对数据行的各种操作。

转换包括一个或者多个步骤。

步骤由跳连接,跳定义了一个单向通道,允许数据从一个步骤向另一个步骤流动。

在kettle中数据的单位是行。

对kettle的转换,从程序执行的角度看,不可能定义一个执行顺序,也不可能定一个起点步骤和一个终点步骤。因为程序并行执行,所有步骤几乎同时执行。每个步骤从它的输入跳中读数据,并把处理过的数据写到输出跳,直到输入跳不再有数据,就中止步骤的运行。当所有步骤都终止了,整个转换就终止了。

从功能角度看,转换有明确的起点步骤和终点步骤。

作业由一个或者多个作业项构成,作业项由转换构成。
注释
1
注释是一个小的文本框,可以放在转换流程图的任何位置,注释的主要目的是使转换文档化。
步骤
1
2
3
4
5
步骤是转换中的基本组成部分。大多数步骤都会读写数据行。大多数步骤可以有多个输出跳。

转换在执行时,一个线程运行一个步骤,所有步骤的线程几乎同时执行。

表输入,excel输出,生成记录(只包含写数据)
1
2
定义了步骤之间进行数据传输的单向通道。
从程序执行角度看,跳实际上是两个步骤之间进行数据行传输的缓存。这个缓存被称为行集,行集的大小可以在转换的设置里定义。但行集满了,向行集写数据的步骤将停止写入,直到行集里有了空间。当行集空了,从行集读取数据的步骤将停止读取,直到行集里又有可读的数据行。
数据行
1
数据以数据行的形式沿着步骤移动。一个数据行是零到多个字段的集合。字段有数据类型。

核心对象

主对象树

执行结果

1
执行结果状态栏是对转换、作业执行过程的监控。
日志
步骤度量

状态栏

参数配置

全局变量(环境变量)
1
2
3
写在配置文件里

对所有转换、作业都有效
局部变量(命名参数)
1
仅对当前转换、作业有效

定时启动转换