java如何調(diào)用kettle設(shè)置變量和參數(shù)
java調(diào)用kettle設(shè)置變量和參數(shù)
java調(diào)用kettle,變量和參數(shù)的設(shè)置方式
java代碼中變量會(huì)覆蓋kettle里面設(shè)置的變量
需要注意:
變量和參數(shù) 他倆是不一樣的
public class JobMail { public static void main(String[] args) throws KettleException { KettleDatabaseRepository repository = KettleUtils.kettleDbRepository; String job_path = "/201811_JOB"; String job_name = "A_郵件job_para"; execJob(repository, job_path, job_name); } /** * 執(zhí)行 JOB * * @param repository * kettle數(shù)據(jù)庫資源庫 * @param job_path * JOB 目錄 * @param job_name * JOB 名稱 * @throws KettleException */ private static void execJob(KettleDatabaseRepository repository, String job_path, String job_name) throws KettleException { RepositoryDirectoryInterface dir = repository.findDirectory(job_path); JobMeta jobMeta = repository.loadJob(repository.getJobId(job_name, dir), null); Job job = new Job(repository, jobMeta); // 設(shè)置參數(shù) jobMeta.setParameterValue("sql_file", "d://12"); jobMeta.setParameterValue("sql_file_para", "java中參數(shù)"); job.setLogLevel(LogLevel.DEBUG); // 設(shè)置變量 java代碼中變量會(huì)覆蓋kettle里面設(shè)置的變量 job.setVariable("sql_file", "d://13"); // 啟動(dòng)執(zhí)行指定的job job.start(); job.waitUntilFinished();// 等待job執(zhí)行完; job.setFinished(true); System.out.println(job.getResult()); } }
public class KettleUtils { private static Logger logger = Logger.getLogger(KettleUtils.class); private KettleUtils() throws Exception { throw new Exception("工具類不允許創(chuàng)建"); } /** * kettle 資源庫 */ public static KettleDatabaseRepository kettleDbRepository; static { if (kettleDbRepository == null) { kettleDbRepository = getKettleDatabaseRepository(); logger.info("實(shí)例化kettle資源庫"); } } /** * 設(shè)置kettle資源庫連接信息 * * @return */ public static DatabaseMeta setDatabaseMeta() { return new DatabaseMeta(PropUtils.getConfigValByKey("name"), PropUtils.getConfigValByKey("type"), PropUtils.getConfigValByKey("access"), PropUtils.getConfigValByKey("host"), PropUtils.getConfigValByKey("db"), PropUtils.getConfigValByKey("port"), PropUtils.getConfigValByKey("user"), PropUtils.getConfigValByKey("pass")); } /** * kettle 資源庫 獲取 * * @return */ private static KettleDatabaseRepository getKettleDatabaseRepository() { try { KettleEnvironment.init(); // 創(chuàng)建DB資源庫 KettleDatabaseRepository repository = new KettleDatabaseRepository(); DatabaseMeta databaseMeta = KettleUtils.setDatabaseMeta(); // 選擇資源庫 此處參我與本地不一致還是正確執(zhí)行 KettleDatabaseRepositoryMeta kettleDatabaseRepositoryMeta = new KettleDatabaseRepositoryMeta("Kettle", "Kettle", "Transformation description", databaseMeta); repository.init(kettleDatabaseRepositoryMeta); // 連接資源庫 DatabaseMeta中已經(jīng)設(shè)置了,不明白此處為何還要再次設(shè)置 repository.connect("admin", "admin"); return repository; } catch (KettleException e) { e.printStackTrace(); logger.error("kettle資源庫連接失敗"); } return null; } }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
spring 中事務(wù)注解@Transactional與trycatch的使用
這篇文章主要介紹了spring 中事務(wù)注解@Transactional與trycatch的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06Java實(shí)現(xiàn)鎖定某個(gè)變量的幾種方式示例詳解
這篇文章主要為大家介紹了Java實(shí)現(xiàn)鎖某個(gè)變量的幾種方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09AbstractQueuedSynchronizer內(nèi)部類Node使用講解
這篇文章主要為大家介紹了AbstractQueuedSynchronizer內(nèi)部類Node使用講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07Java學(xué)習(xí)之Lambda表達(dá)式的使用詳解
Lambda表達(dá)式是Java SE 8中一個(gè)重要的新特性,允許通過表達(dá)式來代替功能接口。本文將通過一些簡單的示例和大家講講Lamda表達(dá)式的使用,感興趣的可以了解一下2022-12-12Mybatis控制臺(tái)打印SQL執(zhí)行信息的方法詳解
SQL性能監(jiān)控是一個(gè)程序必要的功能,通常我們可以使用數(shù)據(jù)庫自帶的客戶端工具進(jìn)行SQL性能分析,本章節(jié)只實(shí)現(xiàn)Mybatis執(zhí)行時(shí)對(duì)執(zhí)行SQL進(jìn)行攔截,控制臺(tái)打印執(zhí)行SQL包括參數(shù)、執(zhí)行方法以及執(zhí)行時(shí)間,需要的朋友可以參考下2024-11-11MyBatis的JdbcType與Oracle、MySql數(shù)據(jù)類型一覽表
這篇文章主要介紹了MyBatis的JdbcType與Oracle、MySql數(shù)據(jù)類型一覽表,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01詳解SpringMVC的攔截器鏈實(shí)現(xiàn)及攔截器鏈配置
攔截器(Interceptor)是一種動(dòng)態(tài)攔截方法調(diào)用的機(jī)制,在SpringMVC中動(dòng)態(tài)攔截控制器方法的執(zhí)行。本文將詳細(xì)講講SpringMVC中攔截器參數(shù)及攔截器鏈配置,感興趣的可以嘗試一下2022-08-08