深圳产品网络推广/seo网站推广什么意思
一、前言
在IT行业中,除了程序员,还有另外一种职业叫BI工程师,如果你没有从事过大数据相关项目,可能你对ETL这个词很陌生,百度百科的解释是ETL (数据仓库技术)ETL ,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。 ETL 一词较常用在 数据仓库 ,但其对象并不限于 数据仓库 。
二、场景
我现做的项目属于大数据类型的,数据由多个不同的平台汇聚过来,因为字段,表,数据库名,业务等都有所区别,但我们又需要这些数据,这个时候,我们就需要从其他平台的业务表中抽取出我们所需要的数据,并且转换成我们的字段存储起来。这个时候,Kettle就能派上用场了。
三、Kettle使得前期准备
我使用的是Kettle8.3版本解压包,算是新的,所谓解压包,就是不用安装,解压即用,方便快捷。需要此安装包的可以社区群里联系我(压缩包有1G多)。Kettle是JAVA语言开发的,因此它需要在JVM环境。如果你电脑中没有配置JDK,需要先去配置环境变量。配置完后,启动解压包中的Spoon.bat执行程序。启动时会有三种常用情况发生。
1、正常启动,双击后等一会将会出现Kettle的界面
2、配置文件读取失败,双击后,一闪而过。界面加载时会提示你环境变量找不到。
3、弹出错误框,双击后,会弹出一个错误的框,这个框有可能是你的环境变量有问题,或是kettle默认的JMM内存设置过高或过低,可以右键Spoon.bat,用文本打开,找到以下内容,进行调整
if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms1024m" "-Xmx2048m" "-XX:MaxPermSize=256m"
四、使用kettle
如果你正常启动了,那恭喜你,你所看到的界面就是如下图所示,在转换右键,选择新建一个转换树

创建数据库连接资源,按图解释进入输入,输入完后,可以点击测试,成功后点确认就完成了一个DB连接的创建。如果你的数据是数据库转数据库,那需要建两个数据源,如果是数据库转外部文件,如Excel,那只需要一个。

五、创建转换流程
本篇是两个不同的数据库,不同的表,不同的字段进行数据转换,把数据存储到自己的库中,这就是叫数据采集的一种。点击左上角的“核心对象”,切换到工具树。选择“输入”,找到“表输入”,双击或拖到中间界面中。然后选择“输出”,找到“插入/更新”和"表输出",同样拖到中间界面。

创建关系连接线,代表数据输入输出

编辑表输入,设置数据库数据来源。在选择数据库连接时,下拉框会出现前面设置DB的数据库,也可以在这里新建或编辑。在SQL框中,需要输入你的SQL语法,这是你的数据来源,返回的字段,就是你所需要的数据。如果你不会SQL,也可以点击获取SQL查询语句,进行简单操作,会自动生成你所需要的SQL。其他可以不设置,点击完成

表输出设置,这是你的数据转换后的存储位置信息。
- 步骤名称:你的工具自定义名称
- 数据库连接:数据存储的数据库名,前面DB设置的,或是在此新建DB
- 目标模式:Mysql数据库可以不设置,如果是Oracle,需要选择用户
- 目标表:数据存储在哪张表中
- 提交记录数量:一次执行提取多少行的数据
- 指定数据库字段:勾选了,你才能在下面的数据库字段中编辑
- 表字段:就是表输出的字段名,
- 流字段:表输入的字段,设置这两个对应关系

插入/更新设置:这是一个动作的设置,针对数据的流动时,进行写入或更新操作,还有数据字段的对应关系
- 步骤名称:工具自定义名
- 数据库连接:跟输出表一样
- 目标模式:同输出表
- 目标表:同输出表
- 提交记录数据:同输出表
- 用来查询的差关键字:这是数据的对应关系,ID对ID,他是确认你是要新增还是修改的唯一配置
- 更新字段:跟输出表一样,更新(Y/N)是否更新操作。

六、执行
把你的对象框选起来,然后点击执行按钮,将会执行一次任务

七、执行日志
在执行时,在下方会产生日志,如果失败了,会像JAVA控制台一样,报出错误提示。从提示中得到错误答案,再调整你的任务设置,再执行。当没有出现红色错误信息后,说明你执行完成。查看一下输出表中的表数据,看看是不是转换成功。
