
系统环境变量的影响范围很广,凡是在一个 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中如何获取字符串个数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)