kettle

kettle-使用 java 脚本 对某个字段进行 AES 解密

拜拜、爱过 提交于 2020-11-18 15:27:29
kettle 加解密 java 脚本 import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import com.sun.jersey.core.util.Base64; import java.io.UnsupportedEncodingException; import java.util.*; public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException { if (first) { first = false; } Object[] r = getRow(); if (r == null) { setOutputDone(); return false; } r = createOutputRow(r, data.outputRowMeta.size()); //解密 NAME String sSrc_NAME = get(Fields.In, "NAME").getString(r); String dSrc_NAME = decrypt(sSrc_NAME); get(Fields.Out, "NAME").setValue(r, dSrc_NAME); //解密

kettle自动化的那些事儿

点点圈 提交于 2020-11-05 11:02:22
一、kettle介绍 Kettle 是一款国外开源的 ETL 工具,纯 Java 编写,绿色无需安装,数据抽取高效稳定(数据迁移工具)。Kettle 中有两种脚本文件,transformation 和 job,transformation 完成针对数据的基础转换,job 则完成整个工作流的控制。 二、 ETL介绍 ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据, ETL是BI(商业智能)项目重要的一个环节。 三、 ETL实现细说 其实实现 ETL功能的工具很多,我熟悉并使用过的:Informatica PowerCenter、kettle、sql、PLSQL编程、python等等。 分别简单聊聊这些实现 ETL的手段: (1)、Informatica PowerCenter 此软件是商用的,网上成熟的中文资料比较少,而且版本较旧。英文资料居多,给很多初学者带来了困扰。国内最出名的大神就是杨晓东,国内的中文资料几乎全是杨晓东分享的,资料对应的版本还停留在 7.6和8.5。( 我当年学的时候,自己买了书,在淘宝上淘的视频,还在杨晓东的群里打酱油,经过 6个月的努力,才能上手正常工作 ) (2)、kettle 此软件是开源的,纯 java编写,网上文档和视频资料特别多

数据仓库系列之ETL过程和ETL工具

纵饮孤独 提交于 2020-11-01 20:58:42
上周因为在处理很多数据源集成的事情一直没有更新系列文章,在这周后开始规律更新。在维度建模中我们已经了解数据仓库中的维度建模方法以及基本要素,在这篇文章中我们将学习了解数据仓库的ETL过程以及实用的ETL工具。 一、什么是ETL? 构建数据仓库的核心是建模,在数据仓库的构建中,ETL贯穿于项目始终,它是整个数据仓库的生命线。从数据源中抽取数据,然后对这些数据进行转化,最终加载到目标数据库或者数据仓库中去,这也就是我们通常所说的 ETL 过程(Extract,Transform,Load)。 通常数据抽取工作分抽取、清洗、转换、装载几个步骤: 抽取 主要是针对各个业务系统及不同服务器的分散数据,充分理解数据定义后,规划需要的数据源及数据定义,制定可操作的数据源,制定增量抽取和缓慢渐变的规则。 清洗 主要是针对系统的各个环节可能出现的数据二义性、重复、不完整、违反业务规则等数据质量问题,允许通过数据抽取设定的数据质量规则,将有问题的记录先剔除出来,根据实际情况调整相应的清洗操作。 转换 主要是针对数据仓库建立的模型,通过一系列的转换来实现将数据从业务模型到分析模型,通过ETL工具可视化拖拽操作可以直接使用标准的内置代码片段功能、自定义脚本、函数、存储过程以及其他的扩展方式,实现了各种复杂的转换,并且支持自动分析日志,清楚的监控数据转换的状态并优化分析模型。 装载

kettle demo1 从文本文件导入数据库

 ̄綄美尐妖づ 提交于 2020-10-29 07:10:51
kettle 从文本文件导入数据库 此文章主要为了对自己最近的摸索做个笔记,记录些坑,有些定义就不再叙述了,都是在网上看的 这个是第一次创建的例子,所以步骤会详细些,后面的例子就会略过一些基本的步骤 1、首先创建一个表(ORACLE\MYSQL都可以),表名BOOK,用来导入数据的 create table BOOK ( id VARCHAR2(200) not null, name VARCHAR2(200), price VARCHAR2(200), status VARCHAR2(200) ) 2、创建一个txt文件,用到导入数据到表BOOK,分隔符为“|”,第一行为字段名 3、打开Kettle,在主队像树,右键点击转换-新建一个转换,新建后在转换下面会有刚才创建的转换:“转换 1”,接下来的操作都在这个转换里面进行了 4、在核心对象下面,找到-输入-文本文件输入控件,拖到右侧区域,然后对这个输入控件进行编辑 5、双击右侧控件,在文件选项卡页面-文件或者目录行填写文件路径,如果填写的是目录的话,就需要在下面规则表达式行填写文件名称的正则表达式,填写完点击右边的增加按钮,会把刚才填写的文件路径信息添加到下面选中的文件的那个表格里面, 6、在内容选项卡里,设置分隔符, 7、点击字段选项卡,开始设置字段,就是说设置下准备导入的那几个字段 8、到这里输入操作基本就OK了

ETL数据仓库技术概念与工具

不打扰是莪最后的温柔 提交于 2020-10-12 04:02:25
目录 简介 ETL与ELT 工具 参见 ETL架构级别概述 数据的抽取(Extract) 数据的清洗转换(Cleaning、Transform) ETL日志、警告发送 ETL特点 案例参考 ETL ,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。 ETL 一词较常用在 数据仓库 ,但其对象并不限于 数据仓库 。 数据仓库是数据库的更高层次的应用,数据仓库的数据是历史的不可更改的,只有在全局逐步演进的数据才允许更新,与数据挖掘有关,主要是为大数据分析和领导决策使用。 数据仓库架构图 简介 ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据, ETL是BI( 商业智能 )项目重要的一个环节。 ETL与ELT ETL 所描述的过程,一般常见的作法包含 ETL 或是 ELT (Extract-Load-Transform),并且混合使用。通常愈大量的数据、复杂的转换逻辑、目的端为较强运算能力的 数据库 ,愈偏向使用 ELT ,以便运用目的端 数据库 的平行处理能力。 工具 ETL (or ELT )的流程可以用任何的编程语言去开发完成,由于ETL是极为复杂的过程

Kettle下载Redisinput插件查询Redis数据

会有一股神秘感。 提交于 2020-10-01 20:31:34
Kettle下载Redisinput插件查询Redis数据 安装插件 1)下载Redisinput插件 https://gitee.com/jekey/kettle-redis-input-plugin 2)将完整插件包复制到Kettle目录的plugins目录下 3)重启Kettle,找到 Redis input 插件,插件参数配置如下图所示: 修改相关配置,使其满足外部程序连接Redis数据库的前置条件 1)查看程序执行的主机hosts文件中存储了Redis数据库所在服务器的主机名和对应的IP地址,若无,请添加对应关系到hosts文件中。 Linux:/etc/hosts Windows : C:\Windows\System32\drivers\etc\hosts 2)Redis 所在服务器(配置允许外部访问) 1.查看服务器防火墙 firewall-cmd --state 若防火墙是开启状态,可直接关闭防火墙(不建议) # 关闭防火墙(不建议) systemctl stop firewall 或向防火墙添加Redis端口开放(建议) 向防火墙添加Redis端口开放如下: 在running 状态下,向firewall 添加需要开放的端口 # 永久的添加该端口。去掉--permanent则表示临时 firewall-cmd --permanent --zone = public

kettle数据转换过程中乱码问题解决

风格不统一 提交于 2020-08-18 11:20:15
从一个utf8的postgres抽到另一个utf8的postgres里,中间除了一步python的数据脱敏,其余都是kettle流程,排查发现,数据从进入kettle开始就是乱码了, 还没有经过python的步骤,所以锁定在kettle的问题。通过修改kettle的启动文件Spoon.bat来解决之。 if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms128m" "-Xmx4096m" "-XX:MaxPermSize=256m" 用notpad++右键打开Spoon.bat,找到上边的这句话,在他后边添加指定编码即可。 if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms128m" "-Xmx4096m" "-XX:MaxPermSize=256m" "-Dfile.encoding=UTF8" 重启kettle解决之。 参考: https://forums.pentaho.com/threads/94865-encoding-problem-utf8/ 来源: oschina 链接: https://my.oschina.net/finchxu/blog/4503451

如何彻底解决Kettle无法连接MySQL8的缺陷?

僤鯓⒐⒋嵵緔 提交于 2020-08-15 11:09:06
如何彻底解决Kettle无法连接MySQL8的缺陷? 一、背景 在使用Kettle对数据进行处理时,最常见的操作莫过于关系数据库的使用,然而使用最新版本Kettle8常面临以下几个痛点: 不支持MySQL8。 MySQL是当前最流行的开源关系数据库,用户基数仅次于Oracle。由于具有更好的性能,目前很多系统都已经用上了最新版本MySQL8。比较遗憾的是Kettle并不支持该版本数据库的连接。 无法在同一转换/作业中同时使用相同数据库的不同版本驱动。因为Kettle将所有数据库驱动统一放在lib目录中,并由同一个类加载器进行加载,如果存在多个版本的驱动则极有可能导致包冲突问题。假如一个转换需要同时连接MySQL5与MySQL8,Kettle无法实现。 缺少统一和有效的数据库插件获取渠道。在Kettle使用者需要一些新的数据库插件时往往不知所措,求助于目前各大社区(甚至是pentaho官方论坛)也无法得到及时有效的帮助。 我们可以使用同样免费的CKettle来彻底解决这些问题。CKettle创新性的将数据库连接插件全都从core中提取出来,成为**的可热插拔插件,并能实现多版本数据库连接并存。同时每个上架插件都包含了经过测试验证的默认连接驱动,免去自行查找的烦恼。 下文将详细介绍如何使用数据库连接插件功能,并举例验证。 二、精简版客户端插件下载安装 1.

系列 | 漫谈数仓第三篇NO.3 『数据魔法』ETL

回眸只為那壹抹淺笑 提交于 2020-08-15 03:24:14
本文目录CONTENTS ☞ ETL同步之道 [ Sqoop、DataX、Kettle、Canal、StreamSets ] ☞ ETL之技术栈 [ 重工具 vs 开发语言 ] ☞ ETL加载策略 [ Merge、Delta、拉链 ] ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。 ETL工具或类ETL的数据集成同步工具或语言,企业生产中工具也非常之多,主流的etl工具有Sqoop、DataX、Canal、flume、Logstash、kettle、DataStage、Informatica、Talend等,语言有强悍的SQL、Shell、Python、Java、Scala等。而数据源多为业务系统,埋点日志,离线文件,第三方数据等。 数据同步之道 01. sqoop Sqoop,SQL-to-Hadoop 即 “SQL到Hadoop和Hadoop到SQL”。 是Apache开源的一款在Hadoop和关系数据库服务器之间传输数据的工具。主要用于在Hadoop与关系型数据库之间进行数据转移,可以将一个关系型数据库(MySQL ,Oracle等)中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导出到关系型数据库中。

Kettle巧用公式轻松实现数据抽取

家住魔仙堡 提交于 2020-08-14 22:49:05
1.前言 数据清洗过程需要对数据进行转换拼装计算,Kettle提供“公式步骤”供用户使用,下面将介绍如何在kettle中使用公式。 2.公式步骤帮助手册介绍 打开kettle工具, 在左侧找到“公式步骤”(核心对象->脚本->公式),主要包含“新字段”(计算后产生的新字段)、“替换值”(用计算获得的值替换原有的值,“替换值”优先级高于“新字段”),计算公式,点击公式输入框会弹出帮助手册,此处重点介绍公式基本使用方法。 (1)基本计算介绍(Basic computation) 点击左上角小三角形,自动展开,右侧框内会有描述和示例。在上面的编辑框内输入公式,下面会同步进行校验,如果输入正确,则下方编辑框内不存在任何提示。 下面这里是几个简单示例,字段需要用[]括起来,如果存在多运算符采用()决定先后运算顺序。 (2)比较计算介绍(Comparisons) 比较两个值的大小,返回为boolean值 (3)日期/时间计算介绍(Date/Time) 日期函数比较多,这里介绍通用的四个函数,具体说明如下所示: (4)信息计算介绍(Information) 日期函数比较多,这里介绍通用的四个函数,具体说明如下所示: (5)逻辑计算介绍(Logical) 逻辑函数比较多,这里介绍通用的三个函数,具体说明如下所示: (6)数学计算介绍(Math) 数学函数比较多,这里介绍通用的四个函数