首页 > 其他分享 >Kettle需求场景复现

Kettle需求场景复现

时间:2022-10-21 14:04:34浏览次数:54  
标签:execl 文件 场景 sheet 读取 文件名 Kettle 复现 输入


Kettle需求场景复现_字段

kettle真实需求开发,可实现kettle入门,包含细节亿点点。

前置说明

  1. 遍历文件夹下的文件,读取所有的sheet页(指定的sheet)落库
  2. 读取execl文件和csv文件,获得文件中sheet/csv数据,进行落库,并增加字段实现更新;
  3. 如果execl中存在两个标题,将标题一进行​​行转列​​并进行字段的添加(任务图如下)

Kettle需求场景复现_文件名_02


最终实现效果图:

Kettle需求场景复现_文件名_03


组件的使用:

  1. execl输入
  2. csv输入
  3. 获取文件名
  4. 表输出
  5. 列拆分为多行
  6. 记录合并(笛卡尔积)
  7. 转换
  8. 执行SQL语句

说明:
任务1:使用滴滴.csv和携程(xc.xlsx)做演示
任务2:使用京东(jd1.xlsx)做演示

场景复现:

Kettle需求场景复现_文件名_04

搭建任务1:使用滴滴.csv和携程(xc.xlsx)做演示

流程:

Kettle需求场景复现_文件名_05

携程:

Execl文件输入:

Kettle需求场景复现_字段_06


文件输出,需要执行对应的路径,通过通配符进行匹配文件夹下的所有文件;​​.*\.xlsx​

Kettle需求场景复现_字段_07


这里需要注意,对于工作表来说,可用于两个场景

  1. 读取指定的sheet数据
  2. 不指定sheet名字则读取该execl文件中所有的sheet数据,字段需要一致(适用于文件下的sheet页名字不同字段相同的表数据)

Kettle需求场景复现_数据_08


Kettle需求场景复现_字段_09


Kettle需求场景复现_数据_10

表输出:

Kettle需求场景复现_字段_11


直接以该组件图展示来说;

首先需要连接数据库(可参考网上文章),选择目标表,这里有两种方式:

  1. 如果数据库中存在表,则直接选择或填写名字
  2. 如果数据库没有,则开启指定数据库字段,并获取字段,执行下面的SQL,需要注意的是自动生成的语句是否正确。

最后执行可看到效果;

滴滴

获取文件名:

Kettle需求场景复现_数据_12


Kettle需求场景复现_数据_13


获取文件名匹配类似与execl输入组件,在预览数据的时候需要注意的filename参数,后续用到。

CSV文件输入:

Kettle需求场景复现_文件名_14


首先通过单一的CSV文件输入,获得对应文件中的字段:

Kettle需求场景复现_数据_15


然后连接到获取文件名,通过filename参数,来接收前面的文件名;

Kettle需求场景复现_数据_16


最后表输出与携程例子中的操作相同,不表。

搭建任务2:使用京东(jd1.xlsx)做演示

流程图:
如果execl中存在两个标题,将标题一进行​​​行转列​​并进行字段的添加。

Kettle需求场景复现_数据_17


在获取文件名中得到文件名参数(filename),需要传递到转换中:

Kettle需求场景复现_字段_18


Execl输入组件中的配置参数;

Kettle需求场景复现_文件名_19


为了实现将第一个标题下的数据读取出来并进行行转列。我们在输入组件中的内容部分,设置为​​限制1​​:表示只读取标题字段下的第一行。(如下图)

Kettle需求场景复现_字段_20


根据列拆分多行进行转换:选择前面的字段,并设置向后传递的字段名字。

Kettle需求场景复现_数据_21


Execl2输入组件需要注意的点是sheet数据读取的起始位置:

Kettle需求场景复现_文件名_22


Kettle需求场景复现_文件名_23


最后对数据进行组合和落库:记录关联直接拖出来用就可。

Kettle需求场景复现_数据_24

字段更新

update xc set vpkid=CONCAT(DATE_FORMAT(SYSDATE(),'%Y%m%d'), 'xc'),update_time=SYSDATE(),create_time=SYSDATE();

最后对入库数据的各表字段进行更新:

Kettle需求场景复现_数据_25


Kettle需求场景复现_数据_26

Linux下运行

./pan.sh -file=xxx.ktr
./kitchen.sh -file=xxxx.kjb

kettle基于Java开发,可设置JVM内存大小:
起始内存大小:Xms
最大内存大小:Xmx
永久代大小:MaxpermSize

if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms7680m" "-Xmx7680m" "-XX:MaxPermSize=3840m"



标签:execl,文件,场景,sheet,读取,文件名,Kettle,复现,输入
From: https://blog.51cto.com/xbhog/5782600

相关文章

  • 非视距 TDOA 算法复现
    定位算法复现,非视距环境下TDOA定位算法论文名字:RobustConvexApproximationMethodsforTDOA-BasedLocalizationunderNLOSConditionsmatalab使用CVX实现完全OK,......
  • channel的应用场景总结
    1、信号传递有4个goroutine,编号为1、2、3、4。每秒钟会有一个goroutine打印出它自己的编号,要求你编写程序,让输出的编号总是按照1、2、3、4、1、2、3、4……这个顺......
  • 开箱即用的数据缓存服务|EMQX Cloud 影子服务应用场景解析
    在物联网业务高速迭代的今天,快速连接物联网设备与平台应用,实现业务快速落地与市场验证,是很多企业塑造核心竞争力、实现业务创新的关键。​​EMQXCloud​​作为一站式运维......
  • 凸面镜反射场景无监督域适应语义分割的一些问题
    大家好,我是来自北京大学的石永杰同学,最近我们组的工作《UnsupervisedDomainAdaptationforSemanticSegmentationofUrbanStreetScenesReflectedbyConvexMirrors......
  • Java Lambda 表达式的各种形态和使用场景,看这篇就够了
    Lambda表达式是Java8中添加的功能。引入Lambda表达式的主要目的是为了让Java支持函数式编程。Lambda表达式是一个可以在不属于任何类的情况下创建的函数,并且可以......
  • 试图复现一次coredump但失败的经历
    昨天实现my_memmove的时候出现了coredump,现在试图复现找出问题1.src字符串复现过程中首先想到的是,有可能是因为src字符串是字符串常量。但是又回想了下,src不是字符......
  • http代理适合什么场景
    经常上网的朋友可能听说过HTTP代理,但它的真正功能很多人并不清楚。在这里普及一下吧。在我们大部分的网络活动中,http是一种比较常见的网络协议,所以http代理也是普通人......
  • Qt | QRectF的使用以及应用场景
    1简介官方文档QRectFQRectF中保存(x,y,width,height),常常用于记录图形项在局部坐标系中的位置以及图形项的宽高:QRectFrect=this->rect();2位置与宽高的设定与......
  • 元宇宙文旅场景沉浸式体验实现更多方式的经济变现-深圳华锐视点
    元宇宙是虚拟世界与现实社会交互的重要平台,作为全新的产业,正以新理念、新业态、新模式与多行业发展深度结合,逐渐成为重组全球要素资源、重塑全球产业结构、改变全球产......
  • 最新CS RCE(CVE-2022-39197)复现心得分享
    0x01前言CS作为目前最流行的远控工具,其爆出的远程命令行漏洞CVE-2022-39197号称脚本小子杀手神器。之前看了@漂亮鼠大佬的文章《最新CSRCE曲折的复现路》,对文章的内容非常......