ETL工具kettle的计算方式

一、前言

在建设数据仓库,数据中台,指标计算,OLTP等等一系列操作的时候,我们会涉及到很多的计算,下面主要来实现一下kettle的多种计算方法

二、示例脚本

CREATE TABLE `score_count` (
  `ID` int NOT NULL AUTO_INCREMENT,
  `CHINESE` float(10,2) DEFAULT NULL,
  `MATH` float(10,2) DEFAULT NULL,
  `ENGLISH` float(10,2) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

insert into score_count value(1,66.5,96,95);
insert into score_count value(2,94.5,92.6,79.5);
insert into score_count value(3,65.5,69,96);

三、使用介绍

1. 使用SQL语句计算
通过表输入的SQL语句来就行计算,

在这里插入图片描述

2. 通过kettle的计算器组件来就行计算
kettle中的计算器组件可谓是强的雅痞,里面富含了很多的计算公式等你i来发现。
新字段:创建一个新的字段来接收计算好的值
计算:计算公式(后面有计算公式的概况)
字段A、字段B、字段C:需要计算的字段

在这里插入图片描述
在这里插入图片描述

3. 通过kettle的公式组件来就行计算
kettle中的公式组件可谓是与计算器有异曲同工之处,当然里面的计算公式也很多。

在这里插入图片描述

在这里插入图片描述

4. 通过kettle的JavaScript代码组件来就行计算
kettle中的JavaScript组件灵活方便,但是需要有一些代码基础的人使用~~~

在这里插入图片描述
在这里插入图片描述

四、Kettle中计算器组件计算方法的详细介绍

字段解释
Set field to constant A创建一个具有恒定值的字段。A
Create a copy of field A创建具有给定字段值的字段的副本。A
A + BA加B。A and B
A - B负B。A and B
A * BA乘以B。A and B
A / BA除以B。A and B
A * AA的平方。A
SQRT( A )A的平方根。A
100 * A / BA在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( AA + BB )计算Δ(A2 + B2)。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 dateA计算一年中的某天(1-365)。A
Day of month of date 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_distanceA and B
Metaphone of A (Phonetics)计算A的对讲机:http : //en.wikipedia.org/wiki/MetaphoneA
Double metaphone of A计算A的双重音位:http : //en.wikipedia.org/wiki/Double_MetaphoneA
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 + CA加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_distanceA and B
NeedlemanWunsch distance between String A and String B计算字符串之间的NeedlemanWunsch距离:http : //en.wikipedia.org/wiki/Needleman%E2%80%93Wunsch_algorithmA 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_distanceA and B
SoundEx of String A将字符串编码为Soundex值。A
RefinedSoundEx of String A检索给定字符串对象的精制Soundex代码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提取给定日期的第二部分

相关内容

Kettle工具中Rest client组件的用法!!
https://blog.csdn.net/weixin_43932609/article/details/109988783
ETL工具kettle的Excel合并操作
https://blog.csdn.net/weixin_43932609/article/details/109326043
ETL工具kettle的插入更新操作
https://blog.csdn.net/weixin_43932609/article/details/109065366
ETL工具Kettle的发送邮件功能:
https://blog.csdn.net/weixin_43932609/article/details/108766325
ETL工具Kettle的列转行组件:
https://blog.csdn.net/weixin_43932609/article/details/108795244
ETL工具Kettle性能优化:
https://blog.csdn.net/weixin_43932609/article/details/108749304

=========================================================

人生得意须尽欢,莫使金樽空对月!
__一个热爱说唱的程序员。
今日份推荐音乐:杨何苏KeyNG《阴暗面》

=========================================================

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

像豆芽一样优秀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值