Kettle组件 计算器全解析

  • kettle计算器组件介绍
    • kettle计算器组件图标
    • kettle计算器组件界面
    • kettle计算器可选计算类型介绍

kettle计算器组件介绍

kettle是一款基于java的ETL工具,他能够像水壶一样将装入的各种数据以一种统一的形式导出。
kettle计算器组件是kettle转换模块当中的一种,其能满足绝大多数的数据流计算需求,属于比较常用的一个组件。
它提供一个功能列表,可以在字段值上运行。
计算器的一个重要优势是,它有着几倍于常用的 JavaScript 脚本的速度。

kettle计算器组件图标

kettle计算器组件图标如下(版本 kettle 7.1):

kettle计算器组件界面

kettle计算器组件界面如下(版本 kettle 7.1):


各控件的含义(从上至下,从左至右):

1、步骤名称:步骤的名称,在同一转换中不可重复。

2、字段:

(1)新字段:指定存储计算结果的字段名称,不可与已有字段重名(如果指定为已有字段名称,也不会替换原字段的值,而是在新字段的名称后拼接序号数字)。

(2)计算:鼠标点击,可以选择需要执行的计算类型,kettle计算器组件计算可选计算类型如下(版本 kettle 7.1):


此为部分截图,具体计算类型下文会介绍。

(3)字段A:从输入流中选择需要进行计算的字段名称,也可选择设置的新字段名称,也可以设置为常量,用于Set field to constant A这一计算类型给新字段赋值。

(4)字段B:从输入流中选择需要进行计算的字段名称,也可选择设置的新字段名称。

(5)字段C:从输入流中选择需要进行计算的字段名称,也可选择设置的新字段名称。

(6)值类型::为新字段指定字段类型:字符串、日期、数字、布尔值、整数、BigNumber、可序列化或二进制。

(7)长度:对于数字:数字的有效长度;对于字符串:字符串的总长度;对于日期:字符串的打印输出长度(例如,输入4只会返回年份)。

(8)精度:对于数字:小数位数。

(9)计算后移除: 下拉框选择是否要移除新字段。如果选择移除则新字段不会出现在输出流当中,此功能用于删除一些只有在计算过程中才会用到的存放临时值的临时字段。

(10)格式:格式化字符串时需要。例如需要格式化日期与时间,那么可以用yyyy-MM-dd’T’HH:mm:ss.XXX,注意其中单引号限定部分。如果需要在日期格式中使用原始字母,那么必须用单引号限定,否则将当成表达式解析。注:需与类型关联使用。

(11)小数点符号:在字符型转小数型(BigNumber)时,识别字符串中的小数点。如字符串“123,456.789”和“123456.789”转BigNumber型时,设置十进制为“.”,则能转变为123456.789。有意思的是这里除了能识别“.”,还能适配其他字符,如“,”、“|”、“_”、甚至字母“a”都可以。只要字符被替换成“.”之后整个字符串是符合数字格式的就行。注意不管设置多长的字符串,这里始终只取第一个字符作为小数点符号。

(12)分组符号:在字符型转小数型(BigNumber)时,识别字符串中的分隔符(常见的千位分隔符)。如字符串“6,123,456.789”转BigNumber型时,设置分组为“,”,则能转变为6123456.789。有意思的是这里除了能识别“,”,还能适配其他字符,如“.”、“|”、“_”、甚至字母“a”都可以。只要字符被转换后整个字符串是符合数字格式的就行。另外分组可以结合小数点符号做一些更有意思的事情,如有一个字符串如“123.456,789”,将小数点符号设为“,”,将分组设为“.”,可转换为“123,456.789”。

(13)货币符号: 货币符号,主要用在财务场景,一般放在货币金额数字的前缀或者后缀。例如人民币一般用的¥,美元一般用$,欧元一般用€。该控件对于步骤本身不产生影响,只是对该字段的货币类型进行备注。

部分描述参考CKettle官网:https://ckstore.ccsaii.com.cn/help/StepPluginType/Calculator?s=csdn

kettle计算器可选计算类型介绍

功能 描述 必须填
- 空(不做处理,返回值为NULL) A
Set field to constant A 创建一个具有恒定值的字段。 A
Create a copy of field A 创建具有给定字段值的字段的副本。 A
A + B A加B。 A and B
A - B A减B。 A and B
A * B A乘B。 A and B
A / B A除B。 A and B
A * A A的平方。 A
SQRT( A ) A的平方根。 A
100 * A / B A在B中的百分比。 A and B
A - ( A * B / 100 ) 减去A的B%。 A and B
A + ( A * B / 100 ) 将B%添加到A。 A and B
A + B *C A加B乘以C。 A, B and C
SQRT( A* A + B* B ) 计算(A平方+B平方)的平方根. A and B
ROUND( A ) 返回最接近参数的Integer。通过将结果加1/2,取下限,并将结果转换为int类型,将结果舍入为整数。换句话说,结果等于表达式的值:floor(a + 0.5)。如果需要舍入方法“将一半舍入为偶数”,请使用以下方法ROUND(A,B),不带小数位(B = 0)。 A
ROUND( A, B ) 将A舍入到最接近的偶数,并用B小数表示。使用的舍入方法为“半舍入到偶数舍入”,也称为无偏舍入,收敛舍入舍入,统计学家舍入,荷兰舍入,高斯舍入,奇偶舍入,银行家舍入或零舍入舍入,并广泛用于簿记中。这是IEEE 754计算函数和运算符中使用的默认舍入模式。在德国,它通常被称为“ Mathematisches Runden”。 A and B
STDROUND( A ) 将A舍入到最接近的整数。使用的舍入方法是“从零开始舍入一半”,也称为标准或通用舍入。在德国,它被称为“kaufmännischeRundung”(在DIN 1333中定义)。 A
STDROUND( A, B ) 与STDROUND(A)中使用的舍入方法相同,但十进制为B。 A and B
CEIL( A ) 上限函数将数字映射到后面的最小整数。 A
FLOOR( A ) 底函数将数字映射到最大的先前整数。 A
NVL( A, B ) 如果A不为NULL,则返回A,否则返回B。请注意,有时您的变量将不是null而是空字符串。 A and B
Date A + B days 在日期字段A中添加B天。 A and B
Year of date A 计算日期字段A的年份。 A
Month of date A 计算日期字段A的月份。 A
Day of year of date A 计算日期A在一年中的某天(1-365)。 A
Day of month of date A 计算日期A在一个月中的某天(1-31)。 A
Day of week of date A 计算星期几(1-7)。 A
Week of year of date A 计算一年中的星期(1-54)。 A
ISO8601 Week of year of date A 计算一年中的星期ISO8601样式(1-53)。 A
ISO8601 Year of date A 计算年份ISO8601样式。 A
Byte to hex encode of string A 将字符串中的字节编码为十六进制表示形式。 A
Hex encode of string A 以自己的十六进制表示形式编码字符串。 A
Char to hex encode of string A 将字符串中的字符编码为十六进制表示形式。 A
Hex decode of string A 从其十六进制表示形式解码字符串(当A为奇数长度时,添加前导0)。 A
Checksum of a file A using CRC-32 使用CRC-32计算文件的校验和。 A
Checksum of a file A using Adler-32 使用Adler-32计算文件的校验和。 A
Checksum of a file A using MD5 使用MD5计算文件的校验和。 A
Checksum of a file A using SHA-1 使用SHA-1计算文件的校验和。 A
Levenshtein Distance (Source A and Target B) 计算Levenshtein距离:http://en.wikipedia.org/wiki/Levenshtein_distance A and B
Metaphone of A (Phonetics) 计算单词A的变音位(语音学),用于将单词按照英文发音进行索引。详见:http : //en.wikipedia.org/wiki/Metaphone A
Double metaphone of A 计算A的双重音位:http : //en.wikipedia.org/wiki/Double_Metaphone A
Absolute value ABS(A) 计算A的绝对值。 A
Remove time from a date A 删除A的时间值。 A
Date A - Date B (in days) 计算A日期字段和B日期字段之间的天数差异。 A and B
A + B + C A加B加C。 A, B, and C
First letter of each word of a string A in capital 转换字符串中每个单词的第一个字母。 A
UpperCase of a string A 将字符串转换为大写。 A
LowerCase of a string A 将字符串转换为小写。 A
Mask XML content from string A 转义XML内容;用&value替换字符。 A
Protect (CDATA) XML content from string A 指示XML字符串是常规字符数据,而不是非字符数据或具有更特定的受限结构的字符数据。给定的字符串将包含在<![CDATA [String]]>中。 A
Remove CR from a string A 从字符串中删除回车符。 A
Remove LF from a string A 从字符串中删除换行符。 A
Remove CRLF from a string A 从字符串中删除回车符/换行符。 A
Remove TAB from a string A 从字符串中删除制表符。 A
Return only digits from string A 仅输出仅输出字符串中的数字(0-9)。 A
Remove digits from string A 从字符串中删除所有数字(0-9)。 A
Return the length of a string A 返回字符串的长度。 A
Load file content in binary 将给定文件的内容(在字段A中)加载为二进制数据类型(例如图片)。 A
Add time B to date A 将时间添加到日期,将日期和时间作为一个值返回。 A and B
Quarter of date A 返回日期的四分之一(1到4)。 A
variable substitution in string A 将变量替换为字符串。 A
Unescape XML content 从字符串取消转义XML内容。 A
Escape HTML content 在字符串中转义HTML。 A
Unescape HTML content 在字符串中取消转义HTML。 A
Escape SQL content 转义字符串中的字符以适合传递给SQL查询。 A
Date A - Date B (working days) 计算日期字段A和日期字段B之间的差异(仅工作日为星期一至星期五)。 A and B
Date A + B Months 在日期字段A中添加B个月。 A
Check if an XML file A is well formed 验证XML文件输入。 A
Check if an XML string A is well formed 验证XML字符串输入。 A
Get encoding of file A 猜测给定文件的最佳编码(UTF-8)。 A
Dameraulevenshtein distance between String A and String B 计算字符串之间的Dameraulevenshtein距离:http : //en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance A and B
NeedlemanWunsch distance between String A and String B 计算字符串之间的NeedlemanWunsch距离:http : //en.wikipedia.org/wiki/Needleman%E2%80%93Wunsch_algorithm A and B
Jaro similitude between String A and String B 返回两个字符串之间的Jaro相似系数。 A and B
JaroWinkler similitude between String A and String B 返回两个字符串之间的Jaro相似系数:http : //en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance A and B
SoundEx of String A 将字符串编码为Soundex值。 A
RefinedSoundEx of String A 检索给定字符串对象的RefinedSoundEx代码。注意:Metaphone,Double Metaphone, Soundex和RefinedSoundEx:这些算法都是利用单词的发音来做匹配,也称为语音算法。这些语音算法的缺点是以英语为基础,所以基本不能用于法语,西班牙语,荷兰语等其他语种。 A
Date A + B Hours 在日期字段A中添加B小时 A and B
Date A + B Minutes 在日期字段A中添加B分钟 A and B
Date A - Date B (milliseconds) 从日期字段A减去B毫秒 A and B
Date A - Date B (seconds) 从日期字段A减去B秒 A and B
Date A - Date B (minutes) 从日期字段A减去B分钟 A and B
Date A - Date B (hours) 从日期字段A中减去B小时 A and B
Hour of Day of Date A 提取给定日期的小时部分 A
Minute of Hour of Date A 提取给定日期的分钟部分 A
Second of Hour of Date A 提取给定日期的秒部分 A

Kettle组件 计算器全解析相关推荐

  1. Silverlight Com组件支持全解析

    从4月份Mix 10大会微软发布 Silverlight 4 至今,SL的第四个4版本的推出已经历时半年之久, 昨日在SBlakeMore.Com上看到一组关于采用Silverlight Com组件实 ...

  2. OpenCV 2.4.8 or OpenCV 2.4.9组件结构全解析

    之前啃了不少OpenCV的官方文档,发现如果了解了一些OpenCV整体的模块架构后,再重点学习自己感兴趣的部分的话,就会有一览众山小的感觉,于是,就决定写出这篇文章,作为启程OpenCV系列博文的第二 ...

  3. 【OpenCV入门教程之二】 一览众山小:OpenCV 2.4.8组件结构全解析

    目录(?)[-] OpenCV基本数据结构动态数据结构绘图函数数组操作相关函数辅助功能与系统函数和宏与OpenGL的互操作 imgprocImage和Processing这两个单词的缩写组合图像处理模 ...

  4. 【OpenCV入门教程之二】 一览众山小 OpenCV 2 4 8 or OpenCV 2 4 9组件结构全解析

    本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/19925819 作者:毛星 ...

  5. Fragment全解析系列

    文/YoKey(简书作者) 原文链接:http://www.jianshu.com/p/d9143a92ad94 著作权归作者所有,转载请联系作者获得授权,并标注"简书作者". F ...

  6. .Net Core 认证组件源码解析

    不知不觉.Net Core已经推出到3.1了,大多数以.Net为技术栈的公司也开始逐步的切换到了Core,从业也快3年多了,一直坚持着.不管环境怎么变,坚持自己的当初的选择,坚持信仰 .Net Cor ...

  7. elementui组件_elementui 中 loading 组件源码解析(续)

    上一篇我们说了elementui如何将loading组件添加到 Vue 实例上,具体内容见上期 elementui 中 loading 组件源码解析. 这一篇我们开始讲讲自定义指令 自定义指令 关于自 ...

  8. elementui table某一列是否显示_elementui 中 loading 组件源码解析(续)

    上一篇我们说了elementui如何将loading组件添加到 Vue 实例上,具体内容见上期 elementui 中 loading 组件源码解析. 这一篇我们开始讲讲自定义指令 自定义指令 关于自 ...

  9. LiveData-原理全解析

    LiveData-原理全解析 LiveData是什么? LiveData 是 Jetpack 推出的基于观察者的消息订阅/分发的可观察数据组件,具有宿主(Activity.Fragment)生命周期感 ...

最新文章

  1. NanoPi NEO Air使用十五:使用V4L2驱动USB摄像头
  2. 图文:知乎千万级高性能长连接网关是如何搭建的?
  3. C#泛型委托,匿名方法,匿名类
  4. 1024程序员日,互联网公司们福利感人;支付宝36万招“找茬”程序员
  5. linux expect sftp,expect实现sftp文件同步
  6. 什么相片可以两张弄成一张_怎么将两张图片合成一张?
  7. Linux 命令(43)—— paste 命令
  8. Unity两中方式加载图片
  9. Android 游戏开发工具包 (AGDK)
  10. 在 mac 上用海盗船键盘
  11. 互联网数据分析岗实习感受
  12. ubuntu安装及使用笔记
  13. Python 把蓝底照片转化为白底照片
  14. Windows下安装igraph
  15. 「Adobe国际认证」运用“对象选择”工具,在PS中快速建立选区
  16. PsychoPy开源免费刺激呈现软件的下载与安装方法
  17. rsync,nfc,sersync使用
  18. Fine-Grained Classification之车型识别
  19. STM32F0 定时器中断 小白掉进的坑(FreeModbus)Timeout
  20. 前端打印功能css print

热门文章

  1. 【Linux】无法读取/挂载U盘
  2. 计算机网络习题篇(一)
  3. 如何查找你的IP地址?通过IP地址能直接定位到你家!
  4. 双11到了,月薪5千的人如何赚到2万?这里有5个技巧!
  5. java输出皮卡丘_使用CSS实现皮卡丘
  6. 激光雷达还是摄影测量?两者数据融合如何提高点云质量
  7. 视频教程-微信公众号实战(Java版本,带前后台)-微信开发
  8. NVIDIA GeForce G102M
  9. inventor(2):设置单位,显示完整工具区/功能区,创建分割面
  10. 如何构建VoIP来是实现电话诈骗之——Asterisk的设置