使用javascript访问kettle内部组件
来源:互联网 发布:android侧滑菜单源码 编辑:程序博客网 时间:2024/05/29 14:10
使用javascript访问kettle内部组件
很少有ETL项目需求使用kettle标准步骤不能实现的。假设举例每条记录都需标记为来自那个数据库的信息,原数据库是通过DB连接设置的,那如何获取这些设置?(类型、主机、端口、数据库名称等)
在kettle中没有标准步骤可以实现,幸运的是javascript步骤可以访问kettle内部组件并实现以上需求。
访问kettle内部组件是_step_变量,其被自动设置在每个javascript步骤中。它代表javascript步骤本身,步骤的getTransMeta()方法返回TransMeta对象,表示整个转换,TransMeta对象可以用来获取关于定义在转换中的数据库连接信息。正确的TransMeta对象通过findDatabase()方法获得,返回DatabaseMeta对象,其他提供了一组方法返回数据库连接的信息。
下面的代码获取名称为“SourceDB”数据库连接的一些信息。
// get db object
var db = _step_.getTransMeta().findDatabase("SourceDB");
// ask db object for information
var db_type = db.getDatabaseTypeDesc();
var db_host = db.getHostname();
var db_port = db.getDatabasePortNumberString();
var db_name = db.getDatabaseName();
var db_tblspace = db.getDataTablespace();
var db_idxspace = db.getIndexTablespace();
var db_user = db.getUsername();
var db_pass = db.getPassword();
var db_url = db.getURL();
var db_driver = db.getDriverClass();
需要提醒的是,kettle版本在不断更新,其内部组件在不同版本之间可能不同。因此在把访问kettle内部组件的代码升级到一个新的版本时,需要做全面的测试。
说了那么多,不如去下载示例代码,其写数据库连接信息到一个文本文件,在5.1版本测试。
希望大家一起交流讨论,你们的建议是我的动力。
- 使用javascript访问kettle内部组件
- Kettle使用【插入\更新】组件非常慢
- JavaScript 访问 JSF 组件
- JavaScript 访问 JSF 组件
- KETTLE使用javascript步骤过滤特殊字符
- javascript如何访问jsf组件
- 使用internal内部访问方式
- kettle输入组件-JSON Input的使用案例
- kettle组件的效率
- kettle组件开发小结
- kettle组件学习
- KETTLE公式组件学习
- kettle常用组件
- Kettle行转列组件
- Kettle使用
- kettle使用
- android 使用include 调用内部组件
- android 使用include 调用内部组件
- NSString的strong和copy
- 黑马程序员————java代理学习笔记
- shell 中的循环使用
- 安卓AlertDialog子窗口两种功能的实现
- 清朝十二帝记忆顺口溜
- 使用javascript访问kettle内部组件
- spilt 函数的一些特殊分割符
- 编写一个函数,用来输出n 个元素的所有子集
- Spring注解详解
- Ctreectrl使用checkbox的注意事项
- 周期串
- jfreechart与struts2结合
- perl if else循环
- ImportError: No module named Person