當前位置:首頁 » 編程語言 » 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腳本組件中,執行時會建表。