Kettle使用JavaScript代码处理数据

时间:2022-07-22
本文章向大家介绍Kettle使用JavaScript代码处理数据,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Kettle使用JavaScript代码处理数据

  • 需求
  • 一、建立DB连接
  • 二、建立处理流程
    • 1、拖入表输入功能模块
    • 2、拖入JavaScript代码功能模块
      • 连接表输如---->JavaScript代码
      • 处理经纬度
  • 对处理好的经纬度进行正则表达式匹配处理
  • 过滤记录并分别输出到不同的文件里

需求

处理经纬度格式不正确的数据

经纬度格式如: 经度:a-b-c 纬度:d-e-f

a、b、c、d、e、f都可以为数字(也可以为浮点等,只要符合经纬度要求就OK)

把符合要求的数据存放到一个xlsx里 不符合要求的数据存放到一个xlsx里

建立的处理流程如下:

结果: 处理的结果会得到两个文件,一个是符合要求的,一个是不符合要求的。

一、建立DB连接

连接要处理数据库的数据库

二、建立处理流程

1、拖入表输入功能模块

选择数据库连接、并按自己的需求写入相关的sql

2、拖入JavaScript代码功能模块

考虑到经纬度格式可能会出现存在空格的,而且经纬度不在一块。 现在可以利用JavaScript代码把从数据库中得到的经度和纬度合并到一起,然后对数据进行去掉所有的空格处理。

连接表输如---->JavaScript代码

处理经纬度

//Script here

 //去前后空格
//var LO = LONGITUDE.replace(/(^s*)|(s*$)/g, "");
//var LA = LATITUDE.replace(/(^s*)|(s*$)/g, "");

//拼接成一个要验证的字符串
//var LL = LO +"," +LA;

 //去前后空格
//var LL=L1.replace(/(^s*)|(s*$)/g, "");


//直接去除所有的空格
var LL = (LONGITUDE+","+LATITUDE).replace(/s+/g,"");

对处理好的经纬度进行正则表达式匹配处理

配置正则表达式

正则表达式

([d^(-?d+)(.d+)?$]+)-([d^(-?d+)(.d+)?$]+)-([d^(-?d+)(.d+)?$]+)[,]([d^(-?d+)(.d+)?$]+)-([d^(-?d+)(.d+)?$]+)-([d^(-?d+)(.d+)?$]+)

过滤记录并分别输出到不同的文件里

过滤记录的配置