kettle环境变量的设置和获取

kettle环境变量的设置和获取,第1张

系统环境变量的影响范围很广,凡是在一个 JVM下运行的线程都受其影响

Kettle 变量限制了变量的作用范围, 变量范围包括三种分别是 grand-parent job, parent job, root job

内部变量: 是 kettle 内置的一些变量, 主要是kettle 运行时依赖的环境, 如转换文件名称, 转换路径,ip地址, kettle 版本号等等

"Kettle 变量" 只能通过设置环境变量 (Set Variable) 步骤设置,同时设置变量的作用范围

"内部变量" 是预置的无须设置

命令行参数:

图形界面下,每次运行时有要求输入参数的提示窗口

引言

作为资深的DBA同胞你是否在工作中也存在这样的情况呢?公司要搭建数据平台,首要的工作就是把旧库的数据导入到新库中,虽然各种数据库都提供了导入导出的工具,但是数据需要存储到各个地方,MongoDB、HBase、MySQL、Oracle等各种各样的不同数据库,同步起来就有一些困难了。那么如何做好两个数据库之间、不同类型的数据库之间的相互迁移转换呢?

今天小编就常用的数据库同步、迁移转换工具进行一个汇总,以便大家在需要的时候,选择到合适的工具完成自己的工作~

一、SQLyog

SQLyog简介

SQLyog是业界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。使用SQLyog可以快速直观地让你从世界的任何角落通过网络来维护远端的MySQL数据库。它也是小编工作一直使用的MySQL管理客户端工具哦。

SQLyog特点

方便快捷的数据库同步与数据库结构同步工具;

易用的数据库、数据表备份与还原功能;

支持导入与导出XML、HTML、CSV等多种格式的数据;

直接运行批量SQL脚本文件,速度极快;

新版本更是增加了强大的数据迁移

二、Navicat

Navicat简介

Navicat是一套快速、可靠并且价格相当便宜的数据库管理工具,Navicat提供多达 7 种语言供客户选择,被认为是最受欢迎的数据库前端用户界面工具。它可以用来对本地或远程的 MySQL、SQL Server、SQLite、Oracle 及 PostgreSQL 数据库进行管理及开发。

Navicat支持功能

数据模型

数据传输

数据同步

结构同步

导入、导出、备份、还原、报表创建工具及计划以协助管理数据

三、Ottor

Ottor简介

Otttor是由阿里巴巴开源的一个数据同步产品,它的最初的目的是为了解决跨国异地整个机房的架构为双A,两边均可写。开发时间长达7年,并持续到现在。目前阿里巴巴B2B内部的本地/异地机房的同步需求基本全上了Otter。Otter基于数据库增量日志解析,支持mysql/oracle数据库进行同步,在最新的v4213已经支持mysql57以及阿里云提供的RDS数据库。小编已经在实际项目中使用。

Ottor特点

基于Canal开源产品,获取数据库增量日志数据。 (什么是Canal,详情查看>

用转换来获取。

Trim type,用来去除字符串的首尾空白字符(如space,tab),这里可以选择去除字符串头部空白字符(left),字符串尾部空白字符(right),头尾都去除空白字符(both),核心对象->转换->字符串 *** 作,将其拖拽到转换页面中。

kettle设置定时执行要把kettle启动起来,并且Job为执行状态;通常的做法是把kitchen挂到后台进程。 Kettle定时功能使用方法如下: 1在Job下的start模块,有一个定时功能,可以每日,每周等方式进行定时,对于周期性的ETL,很有帮助。

功能1:把一个CSV格式的转化成XLS格式的Excel文件

1、 打开Spoonbat,点击文件--》新建--》转换

2、里面包含2块,一块是主对象树,一块是核心对象

3、核心对象里面有输入选择“CSV文件输入”,拖拽到右边工作区域,同样的方式选择输出 “Excel输出”

4、双击“CSV文件输入”打开,选择你的csv文件,点击获取字段

5、双击“EXcel输出”打开,选择你要输出的xls文件名

6、选择CSV文件输入,按着Shift键,鼠标左键向右拉出箭头连接右边的Excel输入,选择“主输出步骤”

7、点击左上方三角,运行,d窗执行转换,点击下面的启动按钮即可出现下面的输出信息

8、打开文件件看到你的输入,输出的文件,还有一个ktr的,就是你当前的转换程序文件

打开输出的XLS文件:

在对比一下输入的CSV文件:

发现问题:数字格式的输出都是小数

这是什么原因呢???

问题出在这里:

文件格式没指定:

指定后:

运行一下:完美解决

有的时候,我们想要在Kettle中实现这个循环的功能,比如,批量加载数据的时候,我们要对10张表执行同样的 *** 作,只有表名和一些信息不一样,这时,写个循环就省事儿多了

这里的话,我们主要是通过一个将结果集返回,然后通过转换的设置来实现的

这个转换,只要是将我们要遍历的结果集返回,

表输入,我们就是返回了5条记录,来做遍历

这里呢,我们就是需要遍历的转换了,这里,我们只是获取结果集,然后将结果集输出

还有一个很重要的一步,怎样让这个转换可以根据结果集的条数,去循环执行呢?

就是这个“执行每一个输入行”

网上有很多的例子,介绍怎样用JS来控制循环,这里我们也简单的测试下

这一步,和上面的一样,就是将结果集返回

这里主要是使用JS将结果集进行遍历,通过JS,将一些结果存放到变量里面,在后面的 *** 作中就可以使用了,通过${xxx}的方式使用

这个其实和Java、JS里面循环思路一样,通过结果集的总数“total_num”和下标“LoopCounter”进行判断

这一步,就是判断下标的值和结果集的总数,进行对比,

输出下,我们想要使用的变量

这一步,给下标加一,然后获取下一条记录

好了,执行下,我们看看

以上就是关于kettle环境变量的设置和获取全部的内容,包括:kettle环境变量的设置和获取、kettle有什么特点、在kettle中如何获取字符串个数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9294217.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存