利用kettle组件导入excel文件到数据库

标签: 利用 kettle excel | 发表时间:2014-11-14 18:27 | 作者:neweastsun
出处:http://blog.csdn.net

利用kettle组件导入excel文件到数据库

      

1.     实现目标

       把excel文件内容导入到目标表中;然后用java调用kettle的转换。excel文件的内容只有两列,示例如下:

       数据库表的结构如下:

 

2.     设计分析

  • 使用oracle函数解决上图黄色行的字段:两个uuid和两个系统日期;

需要生成uuid,这个在oracle中可以利用SYS_UUID()函数实现;

需要生成当前时间作为创建时间和修改时间,使用oracle的to_char(sysdate,’yyyy-MM-dd hh:mm:ss’)实现;

  • 使用命名参数解决蓝色行字段

创建人及修改人的ID(两者一致)、组织ID、来源文件的ID;分别使用命名参数:

       ${USER_ID}、${ORG_ID}、${FILE_ID}、${FILE_NAME};

其中文件名称是读取excel步骤要使用的;

  • 使用excel行内容作为绿色行的值

即企业名称和组织机构代码两个字段;

  • 使用默认值作为白色行的值

3.     设计kettle的转换文件

使用excel输入步骤读取excel内容,使用执行sql脚步步骤把记录插入数据表中;

3.1.            设计步骤

从输入类别中拖动excel input步骤到工作区,从脚步类别中拖动执行sql 脚步到工作区;按shift键,从excel input步骤连接到sql脚步步骤。如下图:

3.2.            配置步骤

  • 配置excel步骤

双击excel步骤,打开配置对话框:

  • 配置数据库连接

记得把oracle的jdbc驱动加到kettle的lib目录中,可以测试连接。

  • 配置执行sql脚步步骤

双击该步骤打开配置,首先选择前面配置的数据库连接,然后写insert语句。需要注意的是字符类型要用引号括起来,即使是变量或?都需要括起来。

问号的内容需要在parameters中配置对应的流字段;

因为需要执行多行,需要选中Execute for each row 选项;

因为有变量,需要选中Variable substutution选项;

3.3.            配置参数

前面分析了需要四个参数,分别在两个步骤使用到了,所以需要给转换配置四个命名参数:       USER_ID、ORG_ID、FILE_ID、FILE_NAME;

双击工作区空白部分打开转换配置,输入相应的参数,也可以添加默认值,用于在kettle中进行测试使用,直到测试没有错误。

至此,在kettle的设计工作已经做完,大家可以参考这篇博客文章,关于动态查询的详细说明,地址: http://blog.csdn.net/neweastsun/article/details/39287809

4.     在java调用转换

调用之前,需要准备上述四个参数的内容,然后把参数传给转换执行;详细内容参考这篇博客文章:

http://blog.csdn.net/neweastsun/article/details/40886841

 

作者:neweastsun 发表于2014-11-14 10:27:23 原文链接
阅读:112 评论:0 查看评论

相关 [利用 kettle excel] 推荐:

利用kettle组件导入excel文件到数据库

- - CSDN博客数据库推荐文章
利用kettle组件导入excel文件到数据库.        把excel文件内容导入到目标表中;然后用java调用kettle的转换. excel文件的内容只有两列,示例如下:.        数据库表的结构如下:. 使用oracle函数解决上图黄色行的字段:两个uuid和两个系统日期;. 需要生成uuid,这个在oracle中可以利用SYS_UUID()函数实现;.

Kettle 创建 Transformation

- - CSDN博客推荐文章
1.第一步,先准备数据和工具. 安装好mysql以及客户端工具.   `status` int(11) NOT NULL COMMENT '对内= 1 ,对外= 2',. 以上我们建了四个表,客户customer,账户account,交易记录trade,交易明细表trade_detail. 用下面的sql查询一下得到每个客户下每个账户的交易明细.

kettle执行job

- - 互联网 - ITeye博客
ETL高级教程kettle. 1,Kettle跨平台使用.     例如:在AIX下(AIX是IBM商用UNIX操作系统,此处在LINUX/UNIX同样适用),运行Kettle的相关步骤如下:.     1)进入到Kettle部署的路径.     2)执行 chmod *.sh,将所有shell文件添加可执行权限.

kettle 开发总结

- - CSDN博客推荐文章
2.在用file exists 控件的时候,当用到“文本文件输入”时,文本文件中需要一定的格式,类似下图:. ;当然也可以已经创建了相应的表,然后直接按“确定”按钮就行,如果相应的表和输入的列数及列属性不一样时,也可以在sql按钮的语句中取修改. 在使用file exists时,输入也可以用表输入.

PHP导出excel

- syeye - scofield PHP开发-SEO SEM
最近做一个项目,其中涉及到了数据导成excel的功能. 后来使用了 开源的 PHPExcel  http://phpexcel.codeplex.com/ 目前最新版是1.7.6. PHPExcel 可以生成 .xls 和 .xlsx (office2007). 比如设置 excel的title,keywords,description.

Kettle运行日志记录

- - 开源软件 - ITeye博客
原创文章,转载请注明出处:http://qq85609655.iteye.com/blog/2173882. 在kettle.properties中,可以定义参数. 来全局设置,记录kettle的job和trans日志,. 记录日志,会进行锁表,在kettle作业非常多的情况下,容易造成表锁,以及队列等待job日志记录的情况严重影响效率.

Excel 数据分析

- - ITeye博客
用Excel做数据分析——直方图. 已有 0 人发表留言,猛击->> 这里<<-参与讨论. —软件人才免语言低担保 赴美带薪读研.

kettle参数、变量详细讲解

- - CSDN博客数据库推荐文章
kettle参数、变量详细讲解. 1、     variable(变量). variables 也可以认为叫做environment variables , 就像它的名字一样,主要是用来设定环境变量的,比如最常见的:文件的存放地址,smtp的配置等等,你也可以把它认为是编程语言里面的全局变量,即使是不同的转换它们也拥有同样的值;.

基于spring-boot的kettle调度 - 简书

- -
大家好,我是帅气小伙,由于最近公司项目辗转大数据,需要做数据抽取的工作,kettle是目前比较成熟的ETL工具,而传统的kettle客户端在任务调度这方面没有实现,于是在网上寻找开源的kettle调度项目. 专门为kettle这款优秀的ETL工具开发的web端管理工具. 貌似源码跑起来比较费劲,各种缺包,于是我为大家专门整理了一下这个项目.

Excel高级使用技巧

- demonhunterl - 互联网的那点事
如果直接输入“1/5”,系统会将其变为“1月5日”,解决办法是:先输入“0”,然后输入空格,再输入分数“1/5”. (2) 序列“001”的输入. 如果直接输入“001”,系统会自动判断001为数据1,解决办法是:首先输入“’”(西文单引号),然后输入“001”. 如果要输入“4月5日”,直接输入“4/5”,再敲回车就行了.