怎样kettle导入txt为txt文件数据添加分隔符

把一个有特定格式的的文本文件,写入数据库表Operation:1.文本文件的内容:2.文本文件输入3.选择文件类型,默认的CSV,分隔符 |4.输入2个字段名和数据类型7.字段选择8.表输出10.
最新教程周点击榜
微信扫一扫8848人阅读
ETL实践(11)
为了避免文本文件在导出的数据时过大,分别导出在多个文件文本中。怎么利用kettle读取文件目录下的数据结构一致的所有数据文件信息和内容?如下图所示:
其实在kettle中有step为Get File Names 和Text Input两个步骤,可以通过设置这两个步骤的属性来实现在文件目录下读取指定文件后缀名的文件的信息和数据。
通过这样的设置文件信息(文件名,大小,路径等)可以是一个流变量 ( Stream Variable),并且从上一个步骤中获取相应的值,这样就提供了无限的灵活性;
具体的属性设置如下:
Get File Names:选择一个文件目录,并设定目录下文件名的正则表达式。这里选择的是txt类型数据文件,因此正则表达式设为customers-.*\.txt$,选取F:\test目录下所有customers-开头并且后缀为.txt的文件
文本文件输入:下方从上一步骤获取文件名,步骤读取的文件名来自Get File Names步骤,在输入里的字段被当作文件名填写Get File Names输出的字段uri。
若是单纯的读取文件目录下指定文件数据,就不需要那么麻烦设置,直接在文本文件输入步骤中文件和规则表达式中按上图所示填写就可以了。
这里需要说明通过这种设置后文本文件输入中字段选项无法自动获取字段。不过可以先不设置从前一步骤获取文件名,利用这个步骤的自身属性先获取字段,然后再设置。
附:Pentaho Kettle Steps: Get File Names
获取文件相关信息字段信息如下
filename - 包括文件名称以及扩展名,以及文件路径的整体
short_filename - 仅仅包括文件名称以及扩展名称
path - 仅仅包括文件的路径
type ——类型:file/folder
ishidden ——是否隐藏
isreadable ——是否只读
iswriteable ——是否可写
lastmodifiedtime —— 修改时间
size ——大小
extension ——扩展名
uri ——文件/目录的绝对路径
rooturi ——根路径
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:120595次
积分:1562
积分:1562
排名:千里之外
原创:42篇
转载:10篇
评论:38条
(1)(1)(8)(2)(1)(9)(1)(2)(2)(1)(3)(1)(1)(3)(1)(1)(1)(1)(1)(3)(1)(1)(6)(1)社工库数据格式化之Kettle Spoon
现在的数据库种类越来越多,数据库备份的格式也越来越复杂,所以数据格式化一直是一个老生常谈的问题。据库备份文件格式那么多,既有SQL的,也有BAK的,还有TXT的等。数据库种类也有很多,MySQL,Oracle,SQL server等,怎么对这些数据库进行管理?昨天泄露access格式的数据库,今天泄露了excel格式的数据库,明天又泄露了SQL格式的数据库。要格式化那么多种类的数据库,压力山大啊!搭建个本地的社工库怎么那么复杂?
这里就要说到kettle。首先得说说Pentaho这个企业。Pentaho主要致力于大数据的分析,整理和管理,并且这家公司开发出来的工具是开源的!没错,就是开源的。任何人都可以查看这个项目的源代码,并且对其进行更改和研究。这家公司开发了很多管理工具或者框架,最为出名的就是kettle了。Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。ELT的全称为Extraction, Transformation Loading,其中文解释为提取,转换和加载。Kettle这个工具里面有SPOON,PAN,CHEF,Encr和KITCHEN这么五个基本组建。
SPOON 允许你通过图形界面来设计ETL转换过程(Transformation)。
PAN 允许你批量运行由Spoon设计的ETL转换 (例如使用一个时间调度器)。Pan是一个后台执行的程序,没有图形界面。
CHEF 允许你创建任务(Job)。 任务通过允许每个转换,任务,脚本等等,更有利于自动化更新数据仓库的复杂工作。任务通过允许每个转换,任务,脚本等等。任务将会被检查,看看是否正确地运行了。
KITCHEN 允许你批量使用由Chef设计的任务 (例如使用一个时间调度器)。KITCHEN也是一个后台运行的程序。
Encr 此脚本是用来加密连接数据库密码与集群时使用的密码
今天我们主要讲的是SPOON,这里会做一个基础的讲解,以便达到抛砖引玉的作用。
1.基本安装
由于Kettle是由JAVA代码所编写的,所以大家要运行Kettle首先是下载安装JDK并且设置好环境变量。Kettle的下载地址是&传送门&。
下载完成后,你会得到一个RAR压缩包,请对压缩包进行解压。
解压完成后在文件更目录内,你可以看到几个bat文件和sh文件,这里就是kettle工具的打开的方式。
这里做个常识普及。
windows系统的用户请用bat文件打开kettle
linux系统的用户请用sh文件打开kettle
这里主要说的是kettle spoon的一个基本讲解。运行spoon.bat或者spoon.sh后等待几秒钟就可以看到kettle spoon的基本界面了。
2.基本建模
在开始对数据管理之前,我们需要新建一个作业。点击文件,新建中的作业选项,产生出一个作业。
在核心对象这里,我们可以看到kettle spoon中非常主要的几个基本功能和模块。
数据库的备份格式有很多,有bak,sql,txt,csv等等。这里需要对这些文件有一个基本的管理,这里就扯到了数据库输入模块,我们得先把自己的输入模块建立好。下面这张图是kettle spoon上几个输入的基本模块。
这里对输入模块做个基本的操作教程,我们先来看看对数据库备份文件怎么进行输入的。鼠标左键单击一个模块拖动到作业方框内就可以对这个模块进行编辑。
假设我要对一个txt格式的泄露数据库进行入库,那么首先应该查看的是字段的分隔符和限定符。
然后拖动一个文本文件输入模块到作业内。
双击这个模块对其进行设置。
然后点击浏览,选择要导入的数据库文件,然后点击增加。
通过上图已经知道了数据库字段的分隔符,在内容处填写好分隔符。这里除了分隔符的设置还可以设置文本显示格式,限定符等等。
【声明】:黑吧安全网()登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱,我们会在最短的时间内进行处理。
上一篇:【】【】您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
ETL工具kettle学习总结.doc31页
本文档一共被下载:
次 ,您可免费全文在线阅读后下载本文档
文档加载中...广告还剩秒
需要金币:200 &&
你可能关注的文档:
··········
··········
Kettle也叫PDI(全称是Pentaho Data Integeration),是一款开源的ETL工具,项目开始于2003年,2006年加入了开源的 BI 组织 Pentaho, 正式命名为PDIhttp://kettle.pentaho.org/
Transformation
转换步骤,可以理解为将一个或者多个不同的数据源组装成一条数据流水线。然后最终输出到某一个地方,文件或者数据库等。
作业,可以调度设计好的转换,也可以执行一些文件处理(比较,删除等),还可以ftp上传,下载文件,发送邮件,执行shell命令等,
Hop 连接转换步骤或者连接Job(实际上就是执行顺序)的连线
Transformation hop:主要表示数据的流向。从输入,过滤等转换操作,到输出。
Job hop:可设置执行条件:
无条件执行
当上一个Job执行结果为true时执行
当上一个Job执行结果为false时执行
Kettle,etl设计及运行
Kettle整体结构图
Kettle整体结构图
转换设计样例图
绿色线条为hop,流水线
转换设计样例
使用 java web start 方式运行的配置方法
Windows下执行kitchen.bat,多个参数之间以“/”分隔,Key和value以”:”分隔
kitchen.bat /file: F:\samples\demo-table2table.ktr /level:Basic /log:test123.log
/file: 指定转换文件的路径
/level:执行日志执行级别
/log: 执行日志文件路径
Linux下执行kitchen.sh,多个参数之间以“-”分隔,Key和value以”=”分隔
kitchen.sh -file=/home/updateWarehouse.kjb -level=Minimal
如果设计的转换,Job是保存在数据库中,则命令如下:
Kitchen.bat /rep:资源库名称 /user:admin /pass:admin /job:job名
设计 用户定义的作业可以保存在中或某一个特定的数据库中
Job的设计文件以.kjb结尾,下面是一个调用已经设计好的转换的job文件的一部分:
正在加载中,请稍后...Kettle - 开源中国社区
当前访客身份:游客 [
当前位置:
搭建kettle项目执行job可以正常输出xml jsonOutput以及文本文件输出 可是在其他项目引用此项目时执行job,只能文本文件输出,Outpu...
我用kettle进行数据加密操作,启动后报错:,加密规则里是这样配置的。 各位大神,如有遇到过,请务必帮帮我这个忙,问题急需解决。谢谢。
kettle上传文件时将文件上传到远程服务器上,在远程创建目录的时候报错 如图,红框中的是两个动态生成的文件夹,各位大侠该怎么解决啊?
@摆渡者 你好,想跟你请教个问题:
kettle 公式这个模块是怎么设计的吗?请给下UML图和告诉我下代码的位置。
怎样使用kettle对txt文件设置分隔符
我用的是文件形式,在用kettle工具run时没问题,但是用程序run时就出现如下问题了。 如下图,有时候日志挺全的,有时候就一条日志,我的是4.2.0版...
二次开发好后打包替换对应JAR包启动kettle出现异常 各位大牛:
本人基于KETTLE6.0.1 二次开发好后,打包对应的JAR(ket...
想用Kettle获取网站上面的数据,我这里有管理员的帐号和密码,需要登录后获取指定Rest接口的数据,然后转存到我的数据库中,我要怎么配置呀?
一个未预期的错误发生在Spoon: probable cause:在停止Spoon前,请先关闭其它spoon窗口!
org.pentaho.di.cor...
最近在研究kettel pdi 的使用,在做样例时,每次在pid中执行完job时,在查看控制台执行日志时,都会无反映,然后自己关闭,不知道什么原因 !! ...
kettle用access作为输入,转换之后,想把刚才的access文件剪切到其他地方,但是提醒,access文件已用java打开,无法复制,那么怎么关闭...
使用kettle中的sap input组件连接SAP ERP system,test连接成功,但是不知道如何设置其他参数能够将sap中的数据导入到txt文...
我在PC WINDOWS上执行KETTLE的转换,利用数据库查询组件,从单表中查询100万条记录,30分钟内,KETTLE能正常返回查询结果,我用的就是S...
Unable to load class for step/plugin with id [null ]. Check if the plugin is ...
@爱国者 你好,想跟你请教个问题: 现在我需要把oracle的数据迁移到mongoDB 假设oracle数据库中有下列三张表: &!-- 各表关系如...
3p_asd EA EA p_asd 3 3
windows环境中安装的kettle5.1版本在转换中表输入获取的时间与源库中存在差异,源库中时间为spoon使用表输入,对于时间查出来的结果与源数据库...
我通过java代码写了一个定时任务,在linux环境去调用很多job,但是发现每次运行完之后内存不自动释放,这个问题不知道怎么解决,谁有好的解决办法还望赐教。
现有一个多层的xml文件,没发直接解析,不知道可以用什么方法去解析啊?谢谢!!!
各路大神,我想把txt文件导入到数据库中,但是首先要对txt文件进行校验,下图是我要导入的txt文件的内容: 请问,我该怎么校验txt文件的内容是否以01...
三张表关联查询,得到的数据量大概在200W左右,现在写入到一个文件内,但是写到了一万多条后程序基本就停止不动了。也没有崩溃。请问这是什么状况?另外如果想把...
我有一个加密的转换需求,从源库中提取的一个字段在目标库中需要以AES加密形式存储。使用kettle5.0,里面有对称加密控件,我在控件中选择AES加密算法...
请教各位大神,刚学 运行环境是win8 ,mysql ,kettle版本pdi-ce-5.3.0.0-213 在同一个数据库的同一张表中进行操作,编码方式...
kettle 输出 ldap output的时候 dn fieldname 参数填什么,我的ldap格式是 uid=12345 ou=people,dc=cn.
在SQLserver2008新建资源库,kettle自动生成的SQL代码貌似有些问题。 只要是字段的类型为BIT型的,都会报错,报错如下: 仔细看一下代码...
如题,使用Kettle5.2创建Oracle资源库,执行sql脚本过程中发现是创建索引的时候报错,我想知道为什么由kettle生成的脚本还会报这个错误?应...
@邱子骞 你好,想跟你请教个问题: KETTLE 执行的sql语句作为参数传递 这个问题不知道你还有没有印象,当初是怎么做到的,我现在也有一个这样的需求,...
用kettle定时同步dbf文件到mysql数据库,能实现增量同步吗?如果可以,要如何实现?
例如,源数据库有表T,现在需要通过KETTLE迁移到目标数据库中,按照每天保存一张表,如T_,T_这样,请问在KETTLE...
怎么把附件里,带锁的作业跳,变成并行的跳啊? 谢谢高手。
windows7环境下,为了测试Kettle的集群功能,我在本机开了3个端口,以便测试Kettle的集群问题。 我在配置好Kettle环境的集群后,用集群...
运行一段时间后CPU使用率达到90%多,数据量有500多万条,是不是需要优化什么的,有没有什么解决办法
执行脚本里面的sql为:
BUYCLOCK_COUNT NUMERIC;
VARCHAR2(500); begin...
问个问题,有个需求,从某个表里面取出imei号,然后传入到一个表里判断,如果已经存在(还会加入其他条件),则更新,不存在则插入,问题是我在switch前面...
如题,如何将kettle job文件导入资源库?
找不到我想要的答案?

我要回帖

更多关于 kettle 添加字段 的文章

 

随机推荐