Kettle api 二次开发之 日志的保存
使用kettle做数据抽取的时候可以使用图形化的工具配置日志保存参数,选择数据库连接,输入日志表名称,
点击sql 执行对应的sql创建日志表即可。

点击保存之后,日志配置会保存在trans或者job的配置文件中。这样当使用api调取trans或者job配置文件进行数据抽取的时候就会自动把转换日志存储到配置的数据表中。
然而在实际应用中这意味着工作量增大。所以我们的想法是创建固定的表,在执行转换的过程中自动配置日志保存路径。
这里以trans为例,job类似。
代码:
初始化DatabaseMate:
private String name;
private String type;
private String access;
private String hostname;
private String DBName;
private String DBPort;
private String username;
private String password;
private String servername; DatabaseMeta databaseMeta = new DatabaseMeta(name, type, access, hostname, DBName, DBPort, username, password);
初始化Trans
TransMeta transMeta = new TransMeta("L:\\ETL\\ceshi\\1.ktr");
Trans trans = new Trans(transMeta);
给Trans添加数据源
--添加到元数据上
transMeta.addDatabase(etlLogDatabaseMeta);
设置channellogtable
VariableSpace space = new Variables();
//将step日志数据库配置名加入到变量集中
space.setVariable("kettle_log","logdb");
space.initializeVariablesFrom(null); ChannelLogTable channelLogTable = ChannelLogTable.getDefault(space, transMeta);
channelLogTable.setConnectionName("logdb");
channelLogTable.setTableName("log_trans_channel");
transMeta.setChannelLogTable(channelLogTable);
执行trans
trans.execute(null); // You can pass arguments instead of null.
trans.waitUntilFinished();
if (trans.getErrors() > 0) {
throw new RuntimeException(
"There were errors during transformation execution.");
}

这样就可以保存到指定表中了。
当然做这些事情之前要
KettleEnvironment.init();
Kettle api 二次开发之 日志的保存的更多相关文章
- Civil 3D API二次开发学习指南
Civil 3D构建于AutoCAD 和 Map 3D之上,在学习Civil 3D API二次开发之前,您至少需要了解AutoCAD API的二次开发,你可以参考AutoCAD .NET API二次开 ...
- kettle工具二次开发-代码启动JOB
kettle工具是一款优秀的数据同步.数据处理的BI工具,收到了很多人的青睐.kettle软件通过可视化的图标可以让我们很轻易的能完成数据同步.处理的开发工作.但是使用kettle可视化界面在跑JOB ...
- (50)zabbix API二次开发使用与介绍
zabbix API开发库 zabbix API请求和响应都是json,并且还提供了各种语法的lib库,http://zabbix.org/wiki/Docs/api/libraries,包含php. ...
- Autodesk View and Data API二次开发学习指南
什么是View and Data API? 使用View and Data API,你可以轻松的在网页上显示大型三维模型或者二维图纸而不需要安装任何插件.通过View and Data API,你可以 ...
- 001_记一次ansible api二次开发遇到的小问题
在某次关于发布系统的项目中,需要调用ansible来发布任务,其中一段代码是初始化ansible的连接,并传入一个source(目标机器)的值,代码段如下: from .ansible_api imp ...
- 数据层交换和高性能并发处理(开源ETL大数据治理工具--KETTLE使用及二次开发 )
ETL是什么?为什么要使用ETL?KETTLE是什么?为什么要学KETTLE? ETL是数据的抽取清洗转换加载的过程,是数据进入数据仓库进行大数据分析的载入过程,目前流行的数据进入仓库的 ...
- Navisworks API 简单二次开发 (自定义工具条)
在Navisworks软件运行的时候界面右侧有个工具条.比较方便.但是在二次开发的时候我不知道在Api那里调用.如果有网友知道请告诉我.谢谢. 我用就自己设置一个工具.界面比较丑!没有美工. 代码: ...
- 微信公众平台开发(二)——access_token、日志
一.access_token 1)两种access_token,网页授权access_token和普通access_token 1.微信网页授权是通过OAuth2.0机制实现的,在用户授权给公众号后, ...
- 自学Zabbix14.1 二次开发API
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix14.1 二次开发API Zabbix API我们可以做很多,自己开发web界面. ...
随机推荐
- Aspose.Cells 对excel的使用总结
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- Spring学习笔记:Spring动态组装打印机
一.如何开发一个打印机 1.可灵活配置使用彩色魔盒或灰色魔盒 2.可灵活配置打印页面的大小 二.打印机功能的实现依赖于魔盒和纸张 三.步骤: 1.定义墨盒和纸张的接口标准 package cn.pri ...
- vc++返回模块路径
#include "stdafx.h"#include <Windows.h>#include <string.h>const int MAXPATHLEN ...
- css模仿百度首页
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Junit 单元测试、BeanUtils、Properties类
一. Junit单元测试 1.1. Junit单元测试框架的基本使用 一.搭建环境: 导入junit.jar包(junit4) 二.写测试类: 0,一般一个类对应一个测试类. 1,测试类与被测试类最好 ...
- CentOS 7运维管理笔记(11)----PHP安装与配置
PHP的安装同样需要经过环境检查.编译和安装3个步骤. 1.首先用百度搜索 “PHP:Downloads”, 点击第一个网页: 选择5.5.37版本,选择 .tar.gz 格式的文件: 来到镜像列表网 ...
- 寒假来了,阿里游戏云6000、20000元新春大礼,游戏开发的骚年们r u ready?
寒假来了,游戏开发的骚年们,r u ready? 亿元云计算基金.游戏云计算解决方案.尊享VIP服务,为你“三羊开泰”! 现在参与游戏云认证,即享6000元.2万元… 最高100万云基金!走你> ...
- [英中双语] Pragmatic Software Development Tips 务实的软件开发提示
Pragmatic Software Development Tips务实的软件开发提示 Care About Your Craft Why spend your life developing so ...
- python schedule 任务调度
python schedule可以简单处理一些日常提醒的工作,下面简要说一下用法: import schedule import time def job(): print("I'm wor ...
- 微软发布Azure Stack第一个技术预览版
为了提升商业灵敏度和加快创新步伐,各个企业都在迅速地转向云服务.在微软,我们已经见到微软智能云Azure的飞速发展和使用,每月我们都有近十万的新增订阅量.然而,我们也了解到还有很多企业在完全移到公有云 ...