数据库

 首页 > 数据库 > MySql > 利用kettle组件导入excel文件到数据库

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

分享到:
【字体:
导读:
         摘要:一个实战的示例,利用kettle组件导入excel文件到数据库,然后通过java代码调用,完整有效,自由掌控。 ...

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

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

      

1.     实现目标

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

       数据库表的结构如下:

 

2.     设计分析

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

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

需要生成当前时间作为创建时间和修改时间,使用oracleto_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步骤,打开配置对话框:

  • 配置数据库连接

记得把oraclejdbc驱动加到kettlelib目录中,可以测试连接。

  • 配置执行sql脚步步骤

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

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

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

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

3.3.            配置参数

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

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

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

4.     java调用转换

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

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

 

利用kettle组件导入excel文件到数据库
分享到:
Mysql优化之深入了解存储引擎,进行索引...
Mysql优化之深入了解存储引擎,进行索引优化比较两种存储引擎在数据库中存储方式: MyIsam:仔细观察的话会发现使用这种引擎的数据库里面一般少说包含三个文件,**.frm  ,**.myi,(放索引) **.myd(放数据),通过索引(**.myi这个文件),定位数据在数据文件 在哪一行存放,这便会产生回行。如果没有回行,也就是索引覆盖...
Oracle 数据迁移(从Oracle11G高版本迁移...
Oracle 数据迁移(从Oracle11G高版本迁移到Oracle10G低版本)1,数据库状况    生产环境是11G,linux系统,测试环境是10G,windows系统,需要从生产环境导出一个用户下所有的数据,导入测试环境中。    因为数据量比较小,准备采用EXP和IMP工具来做。    2,在生产环境上导出用户数据    命令:       exp \&...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……