kettle对图片等二进制文件的迁移(使用Oracle数据库)

前言:

        最近有个需求,就是将图片通过kettle导入到Oracle数据库里进行保存,平时我们在数据库里保存的绝大多数都是结构化数据,而像图片这一类非结构化二进制数据应该怎么保存在Oracle里面呢?我在网上仅找到一篇关于使用kettle对图片迁移的文章,我也转载了,该文章主要描述了通过kettle将图片从一个文件系统迁移到另一个文件系统,没有对图片与数据库之间的转换进行详细的解说。跟着这篇文章的讲解,我研究了一下通过kettle将图片从文件系统到另一个文件系统的迁移,从文件系统到Oracle数据库的迁移,从Oracle数据库到文件系统的迁移,最终都迁移成功,并能打开图片正常浏览。

        首先,Oracle的blob数据类型是可以存储图片这种二进制文件的。测试一下:

1、创建表pic:

2、插入数据'123':

 

3、查询表pic:

 

4、查询结果:

结论:所以在blob数据类型里面无论插入什么数据,PL/SQL中查询出来的都是显示<BLOB>。

下面讲解用kettle将图片从文件系统(文件夹)到另一个文件系统,从文件系统到Oracle,从Oracle到文件系统的迁移配置。

 -------------------------------------------------------------------------------------------------------------------------------

一、通过kettle将图片从文件系统迁移到另一个文件系统

第一个组件的配置:

第一个组件是'输入'里面的'文件内容加载至内存',其配置如下:

该组件是用来输入二进制文件。

注意:编码位置为空 。

 关键:File content的类型一定选Binary,可以点获取字段,其他的字段要不要无所谓。 

 

第二个组件的配置:

第二个组件是'脚本'里面的'JavaScript代码',其配置如下:

该组件是用来设置图片输出路径。

第三个组件的配置:

第三个组件是'输出'里面的'文本文件输出',其配置如下:

该组件在这里是用来输出二进制文件(图片)到指定的文件系统。

注意:分隔符和封闭符为空,格式和压缩注意选择。

 注意:类型选择Binary

 -------------------------------------------------------------------------------------------------------------------------------

二、通过kettle将图片从文件系统迁移到Oracle数据库

第一个组件的配置:

第一个组件是'输入'里面的'文件内容加载至内存',其配置如下:

 

   

第二个组件的配置:

第二个组件是'输出'里面的'表输出',其配置如下: 

表输出上半部分配置好后,下半部分的主选项不用,勾选指定数据库字段,点主选项右边的数据库字段。

点右边的输入字段映射,选择源字段里的File content 和 目标字段里在Oracle里创建表的时候的blob数据类型的字段,点Add添加过去。

 点Add后:

 确定之后就会出现一下红框内容,上面图片有这部分是因为我添加过一次了。

 确定之后点执行就可以将图片从文件系统上传到Oracle数据库了。

 -------------------------------------------------------------------------------------------------------------------------------

三、通过kettle将图片从Oracle数据库迁移到文件系统(迁移后要能正常打开图片才算成功)

第一个组件的配置:

第一个组件是'输入'里面的'表输入',其配置如下:

这个组件写查询表SQL

第二个组件的配置:

第二个组件是'脚本'里面的'JavaScript代码',其配置如下:

该组件是用来设置图片输出路径。

 这里写路径里面的ID是我建表的时候给的字段,用的sys_guid(),随机生成32位的不重复序号。

这里用ID.jpg给要保存的图片命名用。

第三个组件的配置:

第三个组件是'输出'里面的'文本文件输出',其配置如下:

该组件在这里是用来输出二进制文件(图片)到指定的文件系统。

注意:字段里面选择的是Oracle数据库存二进制文件(blob数据类型)的那个字段名称,这里的类型一定选择Binary。

 点击确定并执行就可以将Oracle数据库里的图片导入到指定的文件系统里。

 

 

 

 

 

 

 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值