从品牌网站建设到网络营销策划,从策略到执行的一站式服务
kettle的文件批量入库功能是怎样实现的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
kettle 除了作为 ETL 工具外,还有很多数据处理方面的实用功能,下面介绍几个实用的小功能。
1. 文件批量入库
该功能可以将一个目录下的全部或部分文件加载到数据库中。
第一步: “获取文件名” 步骤获取一个目录下的文件名,使用一个正则表达式来指定文件名。
指定了 E:/opensource/kettle-trunk/ui/images 目录下所有以 .png 结尾的文件名。在这个步骤里创建了下面几个字段来描述所有获取的文件:
FILENAME,
SHORT_FILENAME,
PATH,
TYPE,
EXISTS,
ISHIDDEN,
ISREADABLE,
ISWRITEABLE,
LASTMODIFIEDTIME,
SIZE,
EXTENSION,
URI,
ROOTURI
第二步: 使用一个 javascript 脚本,读取文件内容,如果你不想把文件内容入库,可以不用这一步。下面是 javascript 脚本的内容:
file = new Packages.java.io.File(filename.getString());
fileInputStream = new Packages.java.io.FileInputStream(file);
var content = Packages.org.pentaho.di.core.Const.createByteArray(file.length());
fileInputStream.read(content, 0, file.length());
fileInputStream.close();
不要忘了,选中 “获取变量” 按钮,将 content 也作为一个输出字段, 类型 Binary。
第三步:“表输出”,将前两个步骤获得的字段,输出到数据库的表里。如果数据库里没有相应的表,需要使用 “SQL” 按钮获得并执行创建表的 SQL 语句。
通过这三个步骤可以将文件名,文件属性,文件内容都保存到数据库里,
如果文件是二进制文件,文件内容一般保存为 BLOB 、Binary 、Image 等类型。
如果文件是字符型文件,文件内容一般保存为 CLOB 、varchar、Text 等类型。
注意:因为该方法是一次性将文件内容都读到了内存中,因此只能处理比较小的文件。
看完上述内容,你们掌握kettle的文件批量入库功能是怎样实现的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联-成都网站建设公司行业资讯频道,感谢各位的阅读!
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图