
开源软件kettle
文章平均质量分 59
ETL开源工具pentaho data integration (kettle)的代码阅读、业务理解、及相关运维问题。
shy_snow
这个作者很懒,什么都没留下…
展开
-
Apache Log4j2远程JNDI代码执行漏洞修复
漏洞简介Apache Log4j2远程代码执行漏洞当打印的日志含有${字符串时程序会使用lookup解析要打印的字符串,执行任意远程代码,框架没有做相应的过滤导致注入。官网2021/12/13最新下载的2.15.0声明已经修复该问题。Log4j – Apache Log4j Security Vulnerabilities影响范围Apache Log4j 2.x <=2.14.1 (官网2021/12/13最新下载的2.15.0中已经修复该问题)修复措施..原创 2021-12-15 08:52:39 · 3695 阅读 · 0 评论 -
定时执行sql统计数据库连接数并记录到表中
压测时想监控数据库连接数变化,自己写个shell脚本在crontab里定时查询并输出到日志。shell脚本如下:#!/bin/bashfor a in {1..12}do mysql -h 192.168.128.136 -u root -pYourRealPassword -e "select now() logdate,substring_index(host, ':', 1) host, count(*) cnt from information_schema.processlist原创 2021-11-03 12:22:45 · 345 阅读 · 0 评论 -
mysql常用参数
参数名称 参数说明 参考 max_connections 数据库的最大连接数 MySQL :: MySQL 8.0 Reference Manual :: 5.1.8 Server System Variables wait_timeout 非交互模式的没有操作后的超时秒数,超时后数据库会关闭该连接。 MySQL :: MySQL 8.0 Reference Manual :: 5.1.8 Server System Variables interactive原创 2021-09-28 19:14:31 · 182 阅读 · 0 评论 -
log4j1升级log4j2
删除log4j-1.x.jar,然后增加log4j2.x的三个jar包:log4j-api-2.12.1.jar和log4j-core-2.12.1.jar和一个中间桥接包log4j-1.2-api-2.12.1.jar 增加log4j2.xml配置文件 完成前面两步基本就可以了,如果仍然有不兼容的部分则修改代码使用log4j2的api注意:log4j2.12版本是支持jdk1.7,而log4j2.13及以上版本最低要求是jdk1.8下载地址 https://mirrors.bfsu....原创 2021-07-12 18:03:12 · 4781 阅读 · 2 评论 -
kettle升级jetty10实验(未完成jaas认证)
jetty9.4.x及之前版本存在安全漏洞,需要升级jetty10,研究了下,最终勉强升级了,但是jaas认证没有找到设置的方式.过程如下:一、研究jetty6升级jetty10的差异。Mortbay的jetty在最开始的版本,1998年发布Mortbay1.0的jetty,标准为RFC1945,到1999年开始Sourceforge开始接手jetty,2006年Codehaus开始接受jetty,到2008年Eclipse基于jdk1.5开始重写谢jetty,直到现在11.x系列的jetty。je原创 2021-03-09 22:27:18 · 1795 阅读 · 0 评论 -
kettle执行组件时为什么使用克隆对象
流程执行时全部使用节点的clone克隆对象去执行,可能是为了执行方法修改属性值造成重执行时属性被污染。clone对象属性修改不会影响原节点对象,可以保证无论执行多少次都是一样的节点属性。同时也暗示说明在组件节点对象中不要使用静态属性之类的全局影响属性。使用克隆对象也有个不好的地方,流程没有保存克隆对象的引用,在停止流程时无法直接操作执行中的克隆对象,克隆组件对象必须主动检查自己保留的父流程对象是否是停止状态。...原创 2021-01-07 17:31:04 · 233 阅读 · 0 评论 -
kettle设置变量中变量范围的设置说明
ETL设置变量中变量范围的设置说明变量类型的作用域范围“设置变量”插件中的“变量类型”有四个选项对应着四个不同的作用域范围"s"ystem, "r"oot, "g"randparent, "p"arent。 变量类型选项 作用域 作用域范围说明 在Java虚拟机中(Java Virtual Machine) S系统级 凡是在一个java虚拟机下运行的线程都受其影响。 .原创 2020-10-13 13:51:08 · 2465 阅读 · 0 评论 -
kettle的命名参数接口NamedParams实现与Job命名参数的传递和使用实现
kettle执行Job流程时可以设置命名参数(Parameters)。命名参数的接口为NamedParams,其默认实现为NamedParamsDefault类,Job类实现该接口,并委托NamedParamsDefault实现具体方法。命名参数接口NamedParams的实现类:默认实现类NamedParamsDefault:默认实现类NamedParamsDefault...原创 2020-04-27 06:02:59 · 1043 阅读 · 0 评论 -
kettle的变量空间接口VariableSpace实现与委托模式
kettle中很多对象有变量,这些对象都实现了变量空间VariableSpace是接口,Variables是其基本实现类。 其他实现类委托Variables的实现。看下Variables的实现:Variables内部有个Map<String, String>类型的properties属性,其实例是线程安全的ConcurrentHashMap对象,用来保存变量(字符串键值对)...原创 2020-04-16 18:32:42 · 1140 阅读 · 0 评论 -
Cannot get a connection, pool exhausted, cause: ValidateObject failed
连接池突然不能使用了,重启应用仍然报连接池耗尽,最后debug发现是有人创建了dual表,导致校验语句select 1 from dual返回值为空,而无法通过连接池的连接校验。Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted at org.apa...原创 2019-09-30 14:04:07 · 525 阅读 · 0 评论 -
开源工具kettle中Job流程的理解
jobentry节点(自定义插件、代表着功能)link连线(代表流程逻辑)Job流程(可执行线程,代表一项工作处理)Result结果对象流程Job继承线程Thread类,就是一个可执行线程,并可以沿连接线逻辑顺序执行节点的自定义功能。运行时可通过jstat -l pid 查看到对应线程任何一个开发都能做到用线程执行一项任务,kettle更通用,支撑自定义可拓展的节点插...原创 2019-07-30 19:15:14 · 1457 阅读 · 0 评论