kettle从入门到精通 第八十五课 ETL之kettle kettle中javascript步骤调用外部javascript/js文件

场景:交流学习群里面有小伙伴咨询kettle中的javascript代码步骤如何调用外部js文件中的函数,觉得有点意思的,于是就抽时间整理了一下。

1、外部js文件为test.js,代码如下:

复制代码
function test(param){
    return "接收到了参数"+param;
}

2、当时没有过多考虑,在本地简单写了个demo测试通过之后丢到群里面,后来发现这个demo有些问题。如下图所示:

3、问题如下

1).loadFileContent 是文件操作,通过eval函数将文件内容转换为js对象。这里有点不太合适,虽然可以正常调用js中的test函数。

2)这里的LoadFileContent函数会调用多次,同一个js文件加载多次是完全没必要的,上了生产之后会影响性能。

4、解决方案:

1)使用LoadScriptFile函数可以直接将js文件加载到内存,无需使用eval函数可以直接调用js中的test函数。如下图所示:

2)单独创建初始化脚本tab,右键弹出菜单,可以设置当前tab中的脚步是初始化(Set Start Script)、转换(Set Transform Script)、卸载(Set EndScript)三种方式进行运行。

5、示例脚本

1)初始化

javascript 复制代码
var init="js初始化";
LoadScriptFile("D:\\king\\kettle-demo\\test.js");
println(init);

2)转换

javascript 复制代码
var result =test('java小金刚');

println(result);

3)卸载

javascript 复制代码
var finish="js卸载";

println(finish);

6、一切准备就绪,点击保存&运行转换文件,如下图所示:

相关推荐
平头哥技术团队6 小时前
Day 10 | 工欲善其事:VS Code 配置与项目归档
android·开发语言·前端·javascript·html·交互
yume_sibai7 小时前
Element Plus 数据展示组件完全指南(15个核心组件)
前端·javascript·vue.js
剑之所向9 小时前
.NET 官方`System.Threading.Channels`
前端·javascript·数据库
渡我白衣10 小时前
并查集:基础认识与模拟实现
android·java·javascript·数据结构·c++·算法·并查集
八角丶11 小时前
Node 网络编程 —— TLS 模块
javascript·后端·node.js
倔强的石头10611 小时前
【Linux指南】动静态库系列(七):符号表与重定位:链接器如何把函数调用接起来
linux·前端·javascript
图扑软件12 小时前
中篇・运笔|统一 DataModel 底座,HT UI 组件万物同源
javascript·低代码·ui·性能优化·数据可视化
小小尚@13 小时前
WebGIS/ECharts 地图开发|MapLand 在线行政区划边界一键下载 GeoJSON 工具
前端·javascript·echarts
葡萄城技术团队13 小时前
工业数据可视化:使用活字格 AIcoding + Three.js 构建轻量化三维设备监控大屏
开发语言·javascript·信息可视化
默_笙14 小时前
🚍 一条 Todo 的奇幻漂流:TypeScript 全栈类型安全的"护照检查"
前端·javascript