当前位置:首页 » 编程语言 » kttle可以跑sql脚本吗
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

kttle可以跑sql脚本吗

发布时间: 2022-05-26 17:30:10

① kettle7.1对sql语句有哪些要求

没有啥特殊要求,只要是正确的sql语法kettle都接受的哈

② kettle 可以执行mysqlmp吗

需求:
1.你是否遇到了需要将mysql数据库中的所有表与数据迁移到Oracle。
2.你是否还在使用kettle重复的画着:表输入-表输出、创建表,而烦恼。

下面为你实现了一套通用的数据库迁移流程。

技术引导:
实现之初,在kettle提供的例子中找到了一个类似的(samples\jobs\process all tables)。
通过相关改造,终于达到目标。

实现过程解剖:
整套流程分为:2个job,4个trans。
使用到的Trans插件:表输入、字段选择、复制记录到结果、从结果获取记录、设置变量、自定义java脚本、表输出。
1.大job。

2.要迁移的源库表名称获取,并设置到结果集,为下面的job使用。

3.配置子job为前面的每一条记录(即每个表)执行一次该子job

4.下面是子job。

5.获取记录中的表名称,并设置为到变量。

6.读取当前表的结果信息,并在目标库中创建表(这个是难点)。

因为只需要获取抓取要抽取表的结构信息,故在sql后面加上 where 1=2。

下面代码是创建目标库表。

Java代码
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
{
// First, get a row from the default input hop
//
Object[] r = getRow();

org.pentaho.di.core.database.DatabaseMeta dbmeta = null;

java.util.List list = getTrans().getRepository().readDatabases();//3.x中获取资源库的所有数据库连接信息用getDatabases();

if(list != null && !list.isEmpty())
{
for(int i=0;i<list.size();i++)
{
dbmeta = (org.pentaho.di.core.database.DatabaseMeta)list.get(i);
//下面是目标库的数据库连接,大家可根据需要修改
if("mysql_test".equalsIgnoreCase(dbmeta.getName()))
{
break;
}
}
}

if(dbmeta!=null)
{
org.pentaho.di.core.database.Database db=new org.pentaho.di.core.database.Database(dbmeta);

try
{
db.connect();

String tablename = getVariable("TABLENAME");

logBasic("开始创建表:" + tablename);

if(tablename!=null && tablename.trim().length()>0)
{
String sql = db.getDDL(tablename, data.inputRowMeta);//${TABLENAME}

db.execStatement(sql.replace(";", ""));

logBasic(sql);
}
}
catch(Exception e)
{
logError("创建表出现异常",e);

}finally{
db.disconnect();
}
}
return false;
}

7.表数据迁移。

8.差不多就行了,本人使用mysql到mysql、oracle的测试是没有问题的不过在测试过程中,发现源表若存在有blob的表,会有问题,可能是由于表输出没有指定字段的原因,具体解决办法,也没有去多想,以后有时间在完善把。

上面的整套流程的是在kettle4.3下完成的,附件里面可下载完整流程。下载地址如下:

原文地址:

③ kettle执行SQL脚本日志怎么监控

我理解为你的问题就是如何保存日期


  1. 资源库

    转换属性中可以设置日志表

  2. 非资源库

    用命令行执行可以将日志输出至文件

④ kettle 可以做SQL SERVER 对 SQL SERVER的数据转换吗

当然可以了,开源ETL工具KETTLE不但能处理关系数据库,最新版本还能处理大数据。
KETTL可以通过ODBC、JDBC联接SQLSERVER
具体方法:分别创建A库和B库的数据源;创建转换,把数据源联接A库,然后添加必要的转换节点;数据输出时数据源选择B库;运行后。A库数据就经过转换,再加载到B库。

⑤ kettle 如何让执行sql脚本在最后执行

在转换里面各个【步骤】是并发执行的,数据流是按照顺序执行的,所以可以这样:
增加一个转换
把sq脚本放进去
并且把这个转换
放到悄想要执行在转换后面
就实现国在sql脚本在最后执行

⑥ 获取kettle在转换的过程中都执行了哪些sql语句

新建一个转换(执行SQL脚本--->>表输入--->>表输出)
执行SQL脚本:删除DS_ODS库中已经存在的数据
表输入:查询DS_ERP库中的数据
表输出:将“表输入”中的结果输出到DS_ODS库中

执行SQL脚本:删除DS_ODS库中已经存在的数据
${qy_table_name}:这个是参数,指同步的表名

表输入:查询DS_ERP库中的数据
${qy_table_name}:这个是参数,指同步的表名

表输出:将“表输入”中的结果输出到DS_ODS库中
${qy_table_name}:这个是参数,指同步的表名

⑦ kettle有什么特点

引言

作为资深的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数据库进行同步,在最新的v4.2.13已经支持mysql5.7以及阿里云提供的RDS数据库。小编已经在实际项目中使用。

Ottor特点

基于Canal开源产品,获取数据库增量日志数据。 (什么是Canal,详情查看https://github.com/alibaba/canal)。
典型管理系统架构,manager(web管理)+node(工作节点),manager运行时推送同步配置到node节点,node节点将同步状态反馈到manager上。
基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作.(otter node依赖于zookeeper进行分布式调度,需要安装一个zookeeper节点或者集群)。
Ottor运行原理

db : 数据源以及需要同步到的库
Canal : 用户获取数据库增量日志,目前主要支持mysql
manager :配置同步规则设置数据源同步源等
zookeeper : 协调node进行协调工作
node : 负责任务处理处理接受到的部分同步工作
四、ESF Database Migration

ESF Database Migration简介

ESF Database Convert是一款强大的商业数据库转换工具。支持常见数据库之间相互转换,目前网上能找到“免费”版本,如有不同数据库相互转的需求,可以用此工具解决你的问题。

官方地址为:https://www.easyfrom.net/

ESF Database Migration特点

它支持Oracle, MySQL, SQL Server, PostgreSQL, Visual Foxpro, FireBird, InterBase, Access, Excel, Paradox, Lotus, dBase, Text...之间互相转换

五、DB2DB

DB2DB简介

DB2DB 是目前经过测试速度最快、最稳定实现多种数据库之间进行数据转换的工具。支持 SQL Server、MySQL、SQLite、Access 等多种数据库类型,通过该工具可以把原来的系统,方便快速地部署在不同的数据库甚至是云端数据库下。在大数据情况下(千万级别以上),处理速度比国内外同类软件要高出300%以上。并针对云端数据库中使用最多的 MySQL 数据库进行优化,使得从源数据库复制到新数据库时保留更多的数据表属性设置。这样大大减少程序员、DBA、实施人员将大型数据库进行迁移时的等待、测试和调试时间,减少公司为了测试某系统转换到新数据库系统时的人力成本。

官方地址:http://www.szmesoft.com/DB2DB

DB2DB支持功能

任意类型数据库间进行转换;
数据库表结构自动同步;
数据表索引自动同步;
数据表字段默认值自动同步;
支持对二进制字段数据的同步;
支持各种数据库中自增型字段的处理;
支持同步前对数据表进行检查,避免出现由于数据库自身限制的原因而导致同步失败的情况;
支持把同步内容导出为 SQL 文件的功能;
支持自定义选择需要同步的数据表;
支持将配置保存为方案,以方便日后重新使用;
针对不同的机器配置,可以选择单线程或多线程同步方式。
通过灵活的方式(可按月/周/天/小时/分钟)设定程序不限次定时执行同步动作。
六、 Kettle

Kettle简介

Kettle是一款国外开源的ETL工具,使用突破性的元数据驱动方法提供强大的提取,转换和加载(ETL)功能。在Windows、Linux、Unix上均可运行,数据抽取高效稳定。Kettle 中文名称叫水壶,它凭借图形化,拖放式设计环境以及可扩展、数据集成等特点,越来越成为组织的选择。

Kettle特点

Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。

七、SyncNavigator

SyncNavigator简介

号称国内做的最好的数据库同步软件,傻瓜式同步数据库,只需要你设置好来源数据库和目标数据库的账号和密码,一键开启,后台自动同步,断点续传,增量同步,几乎不占内存和CPU资源。并且还支持异构数据库,也可以同步部分表或者部分字段,都可以进行更为精准的设置操作。

syncnavigator特点

是一款专业的SQLSERVER,MySQL数据库同步软件,它为你提供一种简单智能的方式完成复杂的数据库数据同步,分发操作。

支持同构数据库同步,异构数据库同步,定时同步,增量同步,断点续传
完整支持Microsoft SQL Server 2000,2005,2008
支持Mysql4.1,5.0,5.4,5.5
支持大容量数据库快速同步。
八、DataX3.0

DataX3.0特点

DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台,实现包括 MySQL、SQL Server、Oracle、PostgreSQL、HDFS、Hive、HBase、OTS、ODPS 等各种异构数据源之间高效的数据同步功能。

DataX3.0特点

DataX本身作为离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为Reader/Writer插件,纳入到整个同步框架中。

Reader:Reader 为数据采集模块,负责采集数据源的数据,将数据发送给Framework。
Writer: Writer为数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
Framework:Framework用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。

支持的数据库:

经过几年积累,DataX目前已经有了比较全面的插件体系,主流的RDBMS数据库、NOSQL、大数据计算系统都已经接入。DataX目前支持数据如下:

大家如有更好的工具推荐,欢迎在留言区补充~

⑧ kettle执行sql脚本删除数据

在kettle的控件目录里面有个脚本,里面有执行sql的控件,可直接在里面写delete语句来删除数据。

⑨ kettle里sql脚本怎么写才能进行判断从而选择执行下一个不同的路径

用switch case 那个组件吧,就可以区分下一个路径了

⑩ kettle可以建表吗

可以,将create table语句写好,放在kettle的执行sql脚本组件中,执行时会建表。