欢迎投稿

今日深度:

使用javascript访问kettle内部组件,javascriptkettle

使用javascript访问kettle内部组件,javascriptkettle


使用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

你好 朋友! 你用的是什么浏览器的你没说 那我就把常用浏览器对javascript的设置都给你说一下~
Firefox
在菜单栏中选择“工具”–>“选项”–>“内容”中可见到“启用JavaScript”的选项。

Internet Explorer(IE)
最不好找,菜单栏中“工具”中选择“Internet选项”–>“安全”选项卡–>选择“Internet”(蓝色的小地球)–>“自定义级别”–>找到“脚本”下的“Java小程序脚本”中进行启用和禁用。

Opera
在菜单栏中选择“工具”–>“首选项”–>“高级”选项卡–>“内容”中的“允许使用JavaScript”可以设置。

Safari
以最新的Beta4英文版为准,在“Preferences”–>“Security”选项卡中的“Enable JavaScript”,勾选上则是打开,反之是禁用。

Google Chrome
目前Google Chrome还不支持在GUI里进行Javascript的开启和禁用,而是要通过在快捷方式中添加参数的方法。

要禁用Javascript需要在Chrome的快捷方式的“属性”–>“快捷方式”选项卡–>“目标”中最后加入“ -disable-javascript”。

外还有其它一些参数:

-disable-images 禁用图片
-disable-java 禁用Java(非Javascript)
-disable-plugins 禁用插件
-disable-popup-blocking 禁用防弹窗功能
-start-maximized 启动时最大化
 

怎用javascript去调用com组件? 假设组件已经做好,只是一个简单的弹

var obj = new ActiveXObject("name");
obj.method(args...);
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/3708.html NewsArticle 使用javascript访问kettle内部组件,javascriptkettle 使用javascript访问kettle内部组件 很少有ETL项目需求使用kettle标准步骤不能实现的。假设举例每条记录都需标记为来自那个数据库的信息,原...
评论暂时关闭