首页 > 其他分享 >Kettle 手册

Kettle 手册

时间:2022-09-06 17:23:41浏览次数:76  
标签:数据库 Kettle 手册 SQL 组件 连接 输入

简介

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。支持图形化的GUI设计界面,然后可以以工作流的形式流转

环境

运行kettle 需要安装java jdk,1.5版本及以上。
解压到英文路径的文件夹中就可以了,不需要安装。
进入到Kettle目录,如果Kettle部署在windows环境下,双击运行*\kettle\spoon.bat
Kettle中有两类设计分别是:Transformation(转换)与Job(作业),Transformation完成针对数据的基础转换,Job则完成整个工作流的控制。

Transformation转换(*.kjb)

简单地说,一个转换就是一个ETL的过程

首先在左侧:主对象树--DB连接,新建数据库连接(以oracle为例)。

连接方式为Native(JDBC)时,右侧填写数据库连接信息,测试成功后,确认保存。
连接方式为JNDI时,在右侧JNDI名称处填写对应数据库名称即可。用的是配置文件中的连接信息。Windows下配置文件路径\kettle\simple-jndi\jdbc.properties


数据输入

然后点击“核心对象”下方则显示可以在转换中能使用的所有组件。点击“输入”--单击“表输入”“表输入”组件往空白处拖入即可。

双击“表输入”组件弹出
步骤名称:默认为“表输入”,如果想规范化建议填写源表名称信息,以便清楚查询是某张表结构信息
数据库连接:选择数据来源数据源名称
SQL:编写查询源数据SQL脚本,可以通过“获取SQL查询语句…”获取。
允许简易转换:强烈建议默认
替换SQL语句里的变量:如果SQL语句中有使用到变量则需要勾选
从步骤插入数据:默认
执行每一行:默认
记录数量限制:0表示默认,如果有特殊需求可以自定义只查询出多少条记录数
注:在表输入的SQL语句中一定不能加入分号;
如果无法确定SQL语句是否正常时可以通过“预览”来查看SQL语句是否正确。

数据输出

拖入“表输出”后,我们通过按住“Shift”键单击源划向目标“表输出”,则会出现源指向目标的箭头线。双击“表输出”
步骤名称:默认为“表输入”,如果想规范化建议填写目标表名称信息,以便清楚查询是某张表结构信息
数据库连接:选择数据来目标数据源名称
目标模式:schema,Oracle数据库则是用户名。
目标表:从源数据输出到目标表名
提交记录数:设置数据库提交大小
裁剪表:清空目标表数据,相当于Oracle数据库Truncate语法
忽略插入错误:当插入数据库出错时则可以忽略
指定数据库字段:手动指定源与目标字段映射关系(表结构一致可不选)
数据库字段->获取字段:获取流里的字段
->输入字段映射:手动指定映射关系

按F9运行转换

Job作业(*.kjb)

Job名称:必须填写,并且唯一
转换文件名:必须填写,填写路径可以是绝对路径或者相对路径,最好是相对路径${Internal.Job.Filename.Directory}。
注:
1、在一个JOB中可以同时调用多个作业与转换,但切勿设计成死循环。
2、在一个JOB中必须只能有一个“START”组件。
3、在一个JOB中可以有N个“Success”组件。

转换以及作业的组件介绍

作业的样例

部分问题及解决:

  1. gbase数据下发到oracle,某些超长字段出现乱码
    解决方法:数据库连接方式添加配置 gbaseserver;CLIENT_LOCALE=zh_CN.57372;DB_LOCALE=zh_CN.57372
    如图:
  2. 组件更新删除较慢,解决办法使用sql脚本
  3. 部分oracle连接报错:Error connecting to database: (using class oracle.jdbc.driver.OracleDriver)Listener refused the connection with the following error:ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
    看这个报错可以猜测jdbc的连接串是使用sid去连的,让开发尝试使用sid去连,确实能连上。但由于pdb使用的是service_name,还需要找到使用service_name连接oracle数据库方法。
     
    查询文档发现方法如下:
  • 不需要填主机名
  • 数据库名写如下连接字符串:(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = IP地址)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = 服务名)))
  • 端口号填:-1
  1. 在默认情况下,空字符串“”被认为与null相等。表输入“”,表输出报非空异常。
    解决办法:配置文件kettle.properties 中新增KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL = Y,
    不加‘#’前缀

  2. 配置文件Jdbc.properties中,密码不能包含#,kettle版本问题,密码有#不能用这种方式

  3. 数据共享平台版本较老,循环不能超三百,否则容易内存溢出

标签:数据库,Kettle,手册,SQL,组件,连接,输入
From: https://www.cnblogs.com/fuqian/p/16662545.html

相关文章

  • cmake语法手册及教程
    一,cmake变量引用的方式:前面我们已经提到了,使用${}进行变量的引用。在IF等语句中,是直接使用变量名而不通过${}取值二,cmake自定义变量的方式:主要有隐式定义和显......
  • java调用kettle自定义kettle.properties配置文件路径
    java调用kettle自定义kettle.properties配置文件路径默认路径java调用kettle的jar包时,在初始化环境的时候,会在指定路径创建并加载kettle的kettle.properties文件,该文件的......
  • 标准化手册文件
    很多企业需要相关的标准化手册文件,但每家企业的文化、团队、模式、架构、产品、服务、定位、能力、资金实力、重视程度…都不一样。所以即使拿到了也没法使用,要不然的话......
  • 《Python学习手册第5版》PDF高清版-源代码学习思考
    Python绝对是一门易学难精的语言,打着简单语法的旗号把我忽悠过来,最后发现它背后隐藏了许多复杂的实现。如果不是作为“玩具”语言来学习,一定要看看全方位细致讲解的书......
  • Maven 操作手册
    Maven操作手册1.基础命令释义说明命令打包跳过测试mvncleaninstall-DskipTests打包跳过测试mvncleanpackage-Dmaven.test.skip=true删除.last......
  • Linux搭建禅道-操作手册
    1.首先进入禅道官网:https://www.zentao.net/,下载禅道的安装包。注意:查看Linux的版本,下载符合要求的版本的禅道安装包。  此时下载这个64位的,之前尝试使用32位的发......
  • Keras中文手册.pdf
    keras是一款使用纯python编写的神经网络API,使用keras能够快速实现你的深度学习方案,所以keras有着为快速试验而生的美称。keras以Tensorflow、Theano、CNTK为后......
  • NS3 2022 官方手册很重要
    今天突然发现ns3官方手册讲的太好了我为什么要买椟还珠去看些乱七八糟的其他教程???https://www.nsnam.org/releases/ns-3-35/documentation/官方手册版本首先分稳定发......
  • xtrabackup使用手册
    XtraBackupXtraBackup2 安装XtraBackup2.1 安装XtraBackupbinary版本2.1.1yum的安装方法:2.1.2 直接下载rpm包安装3XtraBackup使用手册3.1 使用innobackupex......
  • 内置管线Shader升级到URP详细手册
    目录前言总体结构Include文件灯光模式LightMode变体Variants预定义的着色器宏辅助宏阴影贴图纹理/采样器声明宏Shader辅助函数顶点转......