kettle入门(五) 之kettle读取gz格式文本详细案例

背景:

ods平台的一个很简单的数据共享需求:

运营商的某个部门每天定时送gz格式的HLR文本数据到FTP服务器的固定目录下。然后ods每天定时去取然后录入到RDBMS的表中,开放给其他系统查询调用,这种称作数据库表接口。

需求很简单,但是因为以前只用过文本输入做txt 或者csv、excel ,所以一时就想怎么先把gz格式解压出来,再用文本文件输入,首先想到了用 kettle3自带的unzip 功能

如下图:

结果发现 解压不了gz格式的,后来又想到使用shell命令,但是在后台putty可以 但是用当前系统etl平台封装执行shell命令后就有问题。搞了较长时间问题没搞定。

后来偶然发现 文本文件输入 本身就可以直接读gz格式文本,感觉前面都浪费了时间

解决:

下图所示的kjb 就是实现该功能的job ,步骤如下:

1 START

2 删除本地服务器的历史文件 (Delete files)防止历史文件占用机器存储

3 设置时间变量(cs_filename)

4 使用时间变量正则匹配下载FTP文本到本地(带有地球的那个图)

5 从本地匹配需要的文本录入RDBMS(alhlrfile)

下图实现的功能是   从本地匹配需要的文本录入RDBMS ,画红圈的目录部分指当前脚本文件ktr所在的目录下的IE目录,通配符用来指定读取匹配的文本。

ex:每天读取前一天的文本 则 时间变量设置为 系统时间的前一天 2015-05-16 就是2015-05-15 ,文本就是2015-05-15.txt.gz

关于时间变量的设置 参考:

kettle入门(四)
之kettle中设置任意时间变量的详细案例

下图文本文件输入 就是 直接把gz格式的文本录到RDBMS的图元。

如下图:

文件类型:选择上csv即可(与上有系统 协商是文本)

分隔符、封闭字符:按照实际的文本内容来

头部数量:指文本头部 非正式数据的内容(如 字段属性名等)的行数

compression: 默认none 应选择GZIP ,若有中文 格式选择UNIX ,编码方式选择 UTF-8,若没有则默认

选好之后 ,可以点击预览记录 看看设置是否正确,数据是否正常。

下图是文本数据全量录入到oracle数据库的示例:

时间: 05-16

kettle入门(五) 之kettle读取gz格式文本详细案例的相关文章

kettle入门(四) 之kettle中取任意时间变量的使用详细案例

引: 在数据仓库项目中 有一类和生产或者外围系统交互的接口称为FTP文件接口, 用kettle开发.实现这种接口 配置脚本时,经常需要用时间变量来取或者上传FTP里面 固定格式文件名的文本,例如 生产系统定时 每天推送前天的数据文本 到某个FTP服务器 2014-04-28 推送文件名 2015-04-26.txt.gz 2014-04-27 推送文件名 2015-04-25.txt.gz 实现: kettle 版本3.0.4,如下图所示: 所需要三个功能组件 1 获取系统信息 2 java s

kettle入门(七) 之kettle增量方案(一)全量比对取增量-依据唯一标示

引: ods有个project表来自于上游系统,数据量不大 十几万,下游系统须要此数据,而且须要每天提供截止当天的增量数据 要求每条数据给出数据变化时间及标示,即数据若是插入 有插入时间和插入标示 若是改动 有改动时间和改动标示 若是删除需逻辑删除.有删除标示且有删除时间 解决: kettle的转换ktr里有一个图元叫做合并记录.能够把两个表输入分为源和目的依据唯一标示 进行全量比对.由此.我们得到增量的数据流,再写入到RDBMS里,即能够实现该需求.实现功能的ktr例如以下图: 1 输入源 合

kettle入门(六) 之kettle抽取变量表名表

背景: ods平台的一个很简单的数据抽取需求: 上游系统有一个月表,每个月出上个月数据并放在新建的月表里.例如:20150401出3月份表和数据 TB_B_FT_BROADBAND_201503, 20150501出4月份表和数据 TB_B_FT_BROADBAND_201504.而ods需要每月初等他们数据出来后再抽取过来. 需求很简单,用kettle最常见的表输入和输出抽取即可,但是表输入的select 语句里面的表名需要使用变量. 解决: 使用job kjb如下 完成此需求,如下图,步骤如

微信小程序入门五: wxml文件引用、模版、生命周期

实例内容 wxml文件引用(include.import) 模版 小程序生命周期 实例一: include方式引用header.wxml文件 文件引用对于代码的重用非常重要,例如在web开发中我们可以将公用的header部分和footer等部分进行提取,然后在需要的地方进行引用. 微信小程序里面,是包含引用功能的--include.import.这两个引用文件的标签,使用基本差不多,这里先说一下include. 微信中的视图文件引用,引用过来的都是没有渲染的,基本类似于直接将引用过来的文件复制到

五种常用的图片格式及其是否有数据压缩的总结

五种常用的图片格式及其是否有数据压缩的总结 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:本文主要介绍五种最常见和最常用的图像格式:BMP,PNG,JPEG,JPEG200,以及GIF.在进行图像处理相关应用之前第一步首先是能够读取这些图像文件,虽然很多开发工具支持库比如OpenCV等已经帮助节省了这些工作的麻烦,便利的同时也使得开发人员不再熟悉这些基本的图像格式.本文的作用就在于将这五种常用的图像格式进行分条叙述,方便查阅. 内容借鉴主流图片格

如何用.net c# 读取epub格式文件

如何用.net(c#)读取epub格式文件 epub格式是印刷出版界常见的格式,本格式遵循XML原则把网页进行压缩打包. 如何用c#读取epub格式文件是个头疼的问题,本人搜遍各大网站,发现介绍都语焉不详. 因项目中要用的此功能,特做案例整理如下,仅供参考. // 动态库下载地址 https://epubreader.codeplex.com/,添加引用eBdb.EpubReader.dll // 头部增加引用 using eBdb.EpubReader; string fullfile = @

[WebGL入门]五,矩阵的基础知识

注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中如果有我的额外说明,我会加上[lufy:],另外,鄙人webgl研究还不够深入,一些专业词语,如果翻译有误,欢迎大家指正. 不是让你到店前面排队 lufy:你一定奇怪,为什么叫这个题目,因为日语中的矩阵叫做"行列",所以作者就给读者们开了个玩笑,我就这么直接翻译了,大家知道什么意思就行了. 在3D渲染的世界里,会很频繁的用到矩阵. 这里所说的矩阵,是数学里的矩阵.英语中叫做Matrix. 矩阵虽然听起来好

Thinkphp入门 五 —模型 (49)

原文:Thinkphp入门 五 -模型 (49) [数据库操作model模型] model  模型  数据库操作 tp框架主要设计模式:MVC C:controller   控制器   shop/Lib/Action/具体控制器 V:view       视图     shop/Tpl/分组/模板文件 M:model      数据模型  shop/Lib/Model/具体模型 [创建模型] 创建的原则:一个数据表对应一个数据模型 创建模型: 当出现以下信息,说明我们的数据库没有配置用户名和密码

ArcGIS Server 10.2 实战(五)spatial etl tool 格式转换服务

上不同的地图服务平台对地图文件格式的要求多种多样,arcgis使用的文件很难应用于其他平台上,因此需要有格式转换的服务来克服这种使用不同平台带来的麻烦,下面以TIFF格式转GEOTIFF格式为例. 首先需要准备几件事: 1.确保安装了arcgis data interoperability for desktop 2.在自定义菜单>扩展模块中勾选Data Interoperability 3.在ArcToolbox中新建一个自己的工具箱,右键工具箱>新建>选择spatial etl to