ETL工具kettle設定全域性變數

2021-09-01 17:06:22 字數 882 閱讀 5781

昨天讓kettle傳入的引數搞的很鬱悶,從網上查一些資訊,大多講的是每個transformation內部傳遞引數,要麼就是講在job中把引數傳進transformation,而且還不正確。

大家最常碰到的問題恐怕就是要做增量抽取了吧,增量抽取不可避免要碰到時間戳,那麼我們假如每天晚上需要抽取當天新增的資料到目標庫,這就需要乙個變數來操作。

要是每個transformation都用乙個單獨控制項來記錄這個變數,貌似沒什麼意義,所以總想有沒有能統一管理乙個引數,然後讓所有的transformation和job都可以讀到呢?

有。首先,開啟.kettle\kettle.properties,直接在裡面定義,比如:

v_yes_date=to_char(sysdate,'yyyymmdd')

這裡支援資料庫函式,說的更直白點,就是這裡定義是個啥,那麼在transformation裡邊取到的它就是啥。

定義之後,儲存,重啟spoon。

在需要的地方,直接%%v_yes_date%%,或者$就可以得到。

舉例:select

name

, ***

from testtable

where

to_char(cdate,'yyyymmdd')=$

或者select

name

, ***

from testtable

where

to_char(cdate,'yyyymmdd')=%%v_yes_date%%

也有人說${}這種方式是在linux下的,%%%%是在windows下的,反正我在windows下這兩種寫法均可。

kettle資料只能說是太少了,就這麼點事折騰我一天了。。。

哦對了,別忘了把那個替換sql語句裡的變數這個勾上。。。

開源ETL工具kettle 資料遷移

由於專案的需求,需要將資料從oracle遷移到mssql,不是簡單的資料複製,而是表結構和欄位名都不一樣,甚至需要處理編碼規範不一致的情況,如下圖所示 注意 oracle和mssql中的同名表的欄位名是不相同的 如果要是採用手工sql語句操作的話會很麻煩,需要考慮 oracle和mssql sql語...

關於使用ETL工具Kettle的簡單介紹(二)

該篇主要描述已實現的一種 etl過程 環境描述 由於源端的表結構和正式庫的表結構大部分是一一對應的,所以對於這大部分表進行設計了一套通用的過程進行轉換。現在先來描述該套設計,對於一對多和多對一的過程下章進行描述。設計概述 主要需要設計幾個所需的表,n 第乙個表 該表是用來配置源端表結構與目的端表結構...

開源ETL工具 kettle的使用入門介紹

首先,給大家介紹一寫關於etl的基本知識。etl是由三個詞組成的。分別是extract,transform,load 也就是抽取,轉換和載入。在現代網際網路企業中使用時比較頻繁的,在商業智慧型bi中也是很受歡迎的。常用的etl工具也有很多,比如infomatia,datastage,kettle,t...