环境描述:
现在一个项目有很多个作业,需要知道每次跑批后哪些ktr跑成功,哪些失败了
问题解决:
下面是一个具体的操作流程
首先建立数据库表
CREATE TABLE test_1(id INT,NAME VARCHAR(10));
INSERT INTO test_1 VALUES(1,'hsj');
CREATE TABLE test_2(id INT PRIMARY KEY NOT NULL,NAME VARCHAR(10));
数据库表建立完毕之后,新建ktr,ktr示意图如下:
转换日志
在上图界面右键–“转换设置”,可以看到如下界面:
上图中日志数据库连接为数据库日志表所存放数据库的连接,日志表名称随便命名
点击“SQL”,出现如下界面
点击上图中“执行”
日志表已经成功建立。
接着执行测试
查询数据库日志表
SELECT * FROM ETL_LOG
以下是LOG_FIELD字段的值:
2016/09/08 17:22:22 - Spoon - 转换已经打开.
2016/09/08 17:22:22 - Spoon - 正在打开转换 [日志记录]...
2016/09/08 17:22:22 - Spoon - 开始执行转换.
2016/09/08 17:22:22 - 日志记录 - 为了转换解除补丁开始 [日志记录]
2016/09/08 17:22:22 - 表输出.0 - Connected to database [DB2] (commit=1000)
2016/09/08 17:22:22 - 表输入.0 - Finished reading query, closing connection.
2016/09/08 17:22:22 - 表输入.0 - 完成处理 (I=1, O=0, R=0, W=1, U=0, E=0
2016/09/08 17:22:22 - 表输出.0 - 完成处理 (I=0, O=1, R=1, W=1, U=0, E=0
步骤日志
配置参考转换日志。
步骤日志中包含了各个步骤数据读写、输入输出等情况。
目的,无论是本地的.ktr文件或者是资源库的ktr模型,只要模型被调用运行的日志就保存到一张日志表,当模型在外部调用出错时,方便查看日志文件查找原因,话不多说,直接入主题;
step1:打开ktr选择ktr属性:
step2:选择日志选项
注意点:
1:最左边,四个选项Transformation,Step,Performance,logging channels代表四个不同的日志设置,选择Transformation即可;
1:自己选择DBconnection,表名自定义;
2:注意下面的field是日志表的结构,但是此时不要陷入一个误区,初次设置日志表,表在数据库是没有的,需要我们初始化表;初始化表并不是代表要我们自己手工去数据库按照这些字段创建表,首次设置我们只需要选择DB,定义表名然后点击SQL如下图:
工具自动给我们按照我们定义的表名写好了SQL,里面还包括创建索引,如果不需要手工这里把创建索引的SQL删除就好,仅仅只创建表结构,因为索引很耗空间。然后我们点击执行就好了,表创建成功。如果再次点击执行会报错,每个模型执行一次就好,以后每执行一次日志表舅会创建一条新记录,记录该次执行的结果。
执行ktr后查看日志数据库:
我们这里贴出log_field字段的内容
2013/05/23 14:31:59 - test - 为了转换解除补丁开始 [test]
2013/05/23 14:31:59 - 表输出.0 - Connected to database [output_dbconnection] (commit=1000) 2013/05/23 14:31:59 - 表输入.0 - Finished reading query, closing connection. 2013/05/23 14:31:59 - 表输入.0 - 完成处理 (I=4, O=0, R=0, W=4, U=0, E=0 2013/05/23 14:31:59 - 表输出.0 - 完成处理 (I=0, O=4, R=4, W=4, U=0, E=0 END
可以看出这个字段的内容就是在spoon里面执行ktr时控制台的日志输出的内容类似