利用开源的ETL工具KETTLE完成数据转换和抽取的工作方法总结
一、安装KETTLE
从官网http://nchc.dl.sourceforge.net/project/pentaho/Data%20Integration/2.5.2-stable/Kettle-src-2.5.2.zip下载kettle2.5.2或更高版本(在我的实验中,2.5以上版本都不能正常启动,问题原因不详),解压到任何文件夹下(如d:\kettle\)均可,但最好不要包含中文。在安装路径下找到spoon.bat,双击该文件即可启动kettle,启动过程选择“没有资源库”,进入kettle工作环境。
二、数据转换和抽取
在kettle主界面下,选择文件--》新建,有两个选项供选择。其中transformation(转换)完成数据的转换和抽取,即源数据库里进行数据的输入,可以有多个库输入,对各个输入进行相应的转换处理,最后把结果数据输出到目标数据库中。而job可以调度不同的转换,也就是在一个job中可以运行多个不同的转换。在命令行下运行转换和job分别要用到pan.bat和kitchen.bat两个程序。运行job ---Kitchen.bat /file:user-transfer-job.kjb(命令必须在kitchen所在目录下执行)
运行转换则用 pan.bat /file:user-transormation.ktr.
对本项目的数据抽取任务而言可以采取这样的方法:
1.对每个要从财会数据库导入的表建立一个转换。
2.建立一个job,包含所有的转换。
3.定时运行这个job。 在控制面板--->任务计划里添加任务计划,选择程序F:\softsetup\Kettle\Kitchen.bat 。完成后在其属性-->任务下运行一栏添加 /file:myjob.kjb。并在计划选项卡下设置定时执行的参数。
三、在linux环境下使用kettle进行定时数据抽取的方法
首先,安装jre,配置java环境变量
(一) 下载jre-6u23-linux-x64.bin
下载地址:http://cds-esd.sun.com/ESD6/JSCDL/jdk/6u23-b05/jre-6u23-linux-x64.bin?AuthParam=1292401739_2abc6c61c57eec5b100fe647086d1f33&TicketId=CJ0nhpzNkjGGwpbkW40LAgA%3D&GroupName=CDS&FilePath=/ESD6/JSCDL/jdk/6u23-b05/jre-6u23-linux-x64.bin&File=jre-6u23-linux-x64.bin
(二) 安装jre-6u23-linux-x64.bin
将jre-6u23-linux-x64.bin上传到linux服务器
1. 在终端上,键入:
su
2. 输入超级用户口令。
3. 切换到所需的安装目录。类型:
cd <目录路径名>
例如,要在 /usr/java/ 目录中安装软件,请键入:
cd /usr/java/
关于超级用户访问权限的说明:要将 JRE 安装在系统级位置(例如 /usr/local),必须以超级用户身份登录,从而获得必要的权限。如果您不具有超级用户访问权限,请将 JRE 安装在您的主目录中,或者安装在您具有写入权限的子目录中。
4. 将您下载的文件的权限更改为可执行。类型:
chmod a+x jre-6u23-linux-x64.bin
5. 启动安装过程。键入:
./ jre-6u23-linux-x64.bin
此时将显示二进制许可协议。通读许可协议。按空格键显示下一页。读完许可协议后,输入 yes 继续安装(此步骤可能直接跳过)。
7. JRE 安装在其自身的目录中。在本例中,它将安装在 /usr/java/ jre1.6.0_23目录中。当安装完成时,您将看到 Done(完成)字样。
(三) 配置java环境变量
1. 命令行键入“cd /etc”进入etc目录
2. 命令行键入“vi profile”打开profile文件
3. 敲击键盘ctrl+F到文件末尾
4. 在末尾处,即第一个~的地方,敲击键盘将以下内容输入到文件
JAVA_HOME=/usr/java/jre1.6.0_23
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
5. 键盘敲击exc,命令行键入“:wq”,保存文件;
6. 重新登录linux,在命令行键入“java”,如果出现帮助信息则表示配置成功。
然后,部署kettle
1. 将pdi-ce-4.1.0-stable.zip上传到linux服务器
2. 使用unzip命令解压pdi-ce-4.1.0-stable.zip
unzip pdi-ce-4.1.0-stable.zip -d "/mnt/kettle"
3. 赋予解压目录下.sh文件的执行权力
chmod +x *.sh
4. 进入解压目录,键入“./kitchen.sh”回车,如果有帮助信息则表示kettle环境部署成功
※(重点)接着,编写执行kettle任务的shell脚本
创建test.sh,将以下内容复制粘贴到里面,然后键入“chmod +x /mnt/kettle/*.sh”,赋予test.sh执行权限。
export JAVA_HOME=/usr/java/jre1.6.0_23
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
/mnt/kettle/data-integration/kitchen.sh -file=/mnt/kettle/test.kjb > /mnt/kettle/display.txt
说明:
前3行,设置java环境变量的语句必不可少,
因为crond是个守护进程,它不归属于任何用户,虽然之前以root身份配置了java的环境变量,但是crond一样找不到java命令,
所以,当crond执行kettle任务时,需要动态设置java环境变量,crond才能找到java命令。
最后,使用crontab命令添加定时任务
1.在终端上,键入“crontab -e”,进入定时任务文件
2.键入“a”,对文件进行编辑
输入如下内容: 23 11 10 02 * /mnt/kettle/test.sh 其中 23为分钟,11为小时,10为日,02为月,*为星期几,crontab命令的使用这里不再赘述。
3.键盘敲击exc,终端键入“:wq”,保存文件
4.重启crond服务
键入“cd /etc/init.d”,进入该目录
键入“./crond restart”,重启crond服务
5.等待执行结果
6.执行成功,oh..nice!
分享到:
相关推荐
kettle数据抽取流程总结 Kettle是一个功能强大且灵活的ETL(Extract、Transform、Load)工具,广泛应用于数据集成、数据转换和数据加载等领域。下面是kettle数据抽取流程的总结。 一、一般转换流程 一般转换流程...
- 本研究探讨了如何在Oracle_Linux环境下实现动态数据抽取,使得数据抽取过程更加灵活,能够快速响应业务变化。 #### 三、应用场景实例 本文以城市轨道交通自动售检票系统为例,具体展示了基于Oracle_Linux环境下...
总结来说,实现“Oracle与SQLServer数据库间的数据抽取与转换工具”涉及的主要知识点包括:数据库连接、SQL查询、数据转换规则、多数据库系统间的语法差异理解和编程实现。这个工具的源代码压缩包"复件 zExtractor...
在本节中,我们将详细介绍 Kettle 数据抽取的全量抽取过程,包括新建抽取转换流、输入控件的选择、输出控件的选择、全量抽取的业务表前处理等内容。 1. 新建抽取转换流 在 Kettle 中,新建一个转换流非常简单,只...
**数据抽取** 是数据挖掘和信息管理的关键步骤,主要包括三个核心部分:提取(Extract)、转换(Transform)和加载(Load,即ETL过程)。提取是从原始数据源中获取数据,这可能包括数据库、文件、网页或其他API接口...
数据库抽取是指从关系数据库中抽取数据的过程,通常涉及全量抽取和增量抽取两种方式: - **全量抽取**:将整个表或视图的数据完全复制到目标系统中,适用于初次加载或定期完整备份场景。 - **增量抽取**:只抽取自...
复赛数据 2021 数据抽取挑战赛复赛数据 2021 数据抽取挑战赛复赛数据 2021 数据抽取挑战赛复赛数据 2021 数据抽取挑战赛复赛数据 2021 数据抽取挑战赛复赛数据 2021 数据抽取挑战赛复赛数据 2021 数据抽取挑战赛复赛...
8. 安全与合规:在数据抽取过程中,必须遵守数据隐私法规,如GDPR,确保敏感数据的安全处理,同时需要审计和监控机制以追踪数据流动。 综上所述,数据抽取是数据驱动决策的基础,涉及多种技术和工具,需要综合运用...
在ETL过程中,数据抽取是整个流程的基础,常见的抽取方式有两种:全量抽取和增量抽取。 ##### 1. 全量抽取 - **定义**:全量抽取是指将数据源中的所有数据一次性完整地抽取到目标系统中。 - **应用场景**:通常在...
抽取框架的基础是模板抽取结构图,它定义了数据如何被抽取、转换以及加载到目标系统的过程。整个框架包括以下几部分: - **总体结构图析**:该图展示了整体的数据抽取流程,包括数据源的选择、转换规则的应用以及...
在本场景中,我们将探讨如何使用Kettle从Oracle数据库中的两个表之间实现增量数据抽取,且这个过程并不依赖于时间戳。 首先,理解增量抽取的概念至关重要。增量抽取是从源系统中提取自上次抽取以来发生改变的新数据...
Java调用Kettle API实现数据抽取DEMO是一个典型的ETL(提取、转换、加载)过程,其中Kettle(又称Pentaho Data Integration或KDI)是一个强大的数据集成工具,允许开发者通过图形化界面或者编程方式处理数据迁移和...
Frescoar Data Manager 是一款强大的数据迁移工具,其核心功能在于ETL(Extract, Transform, Load),即数据抽取、转换和加载。该软件专为高效、稳定的数据迁移设计,不仅提供软件产品,还配套全面的数据迁移解决...
ETL 是 Extract-Transform-Load 的缩写,指的是数据抽取、转换、装载的过程。它是一种常用的将数据从源系统移动到目标系统的数据集成方法。ETL 过程通常涉及从多个数据源收集数据,对这些数据进行清洗和转换,最后将...
从事务性数据到数据仓库数据的抽取过程是一个关键的环节,涉及到数据的完整性和性能优化。数据仓库是用于分析和报告目的的大型数据库,它需要高效地处理大量事务性数据,以便提供决策支持。以下将详细介绍这个过程中...
数据仓库的构建过程通常涉及数据的抽取(Extraction)、转换(Transformation)和加载(Loading),简称ETL过程。在这个过程中,增量数据抽取机制对于提高数据更新效率具有重要意义。 #### 二、ETL概述 ETL是数据...
根据提供的文件信息,本文主要探讨了Deep Web数据抽取的关键技术研究。Deep Web(深层网络)是指互联网上那些不能通过标准搜索引擎索引的部分,通常包括动态生成的网页、数据库查询结果等。由于这部分网络资源的特殊...
Kettle 是一个开源的 ETL(Extract-Transform-Load 的缩写,即数据抽取、转换、装载的过程)项目,以 nước壶命名。该项目分为三个部分:Spoon、Kitchen 和 Span。其中,Spoon 是一个转换/工作设计工具,具有图形...
7. **周期性执行**:通常,增量数据抽取是定时任务,可以使用Kettle的Job调度功能来自动化这个过程,确保数据始终保持最新。 总的来说,Kettle插件为增量数据抽取提供了强大且灵活的解决方案,结合了数据库的变更...