国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

大數(shù)據(jù) ETL 處理工具之 Kettle

這篇具有很好參考價(jià)值的文章主要介紹了大數(shù)據(jù) ETL 處理工具之 Kettle。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

第1章 Kettle概述

1.1 ETL簡介

1.2 Kettle簡介

1.2.1 Kettle是什么

1.2.2 Kettle的兩種設(shè)計(jì)

1.2.3 Kettle的核心組件

1.2.4 Kettle特點(diǎn)

第2章 Kettle安裝部署

2.1 Kettle下載

2.1.1 下載地址

2.1.2 ?Kettle目錄說明

2.1.3 ?Kettle文件說明

2.2 Kettle安裝部署

2.2.1 概述

2.2.2 安裝

2.3 Kettle界面簡介

2.3.1 首頁

2.3.2 轉(zhuǎn)換

2.3.3 作業(yè)

2.4 Kettle轉(zhuǎn)換初次體驗(yàn)

?2.5 Kettle核心概念

2.5.1 可視化編程

2.5.2 轉(zhuǎn)換

2.5.3 步驟(Step)

?2.5.4 跳(Hop)

2.5.5 元數(shù)據(jù)

2.5.6 數(shù)據(jù)類型

2.5.7 并行

2.5.8 作業(yè)

第3章 Kettle轉(zhuǎn)換

3.1 Kettle輸入控件

3.1.1 CSV文件輸入

3.1.3 Excel輸入

3.1.4 XML輸入

3.1.5 JSON輸入

3.1.6 表輸入

3.2 Kettle輸出控件

? ? ? ? ?3.2.1 Excel 輸出

3.2.2 文本文件輸出

3.2.3 SQL文件輸出

3.2.4 表輸出

3.2.5 更新&插入/更新

3.2.6 刪除

3.3 Kettle轉(zhuǎn)換控件

3.3.1 Concat?fields

3.3.2 值映射

3.3.3 增加常量&增加序列

3.3.4 字段選擇

3.3.5 計(jì)算器

3.3.6 字符串剪切&替換&操作

3.3.7 排序記錄&去除重復(fù)記錄

3.3.8 唯一行(哈希值)

3.3.9 拆分字段

3.3.10 列拆分為多行

3.3.11 行扁平化

3.3.12 列轉(zhuǎn)行

3.3.13 行轉(zhuǎn)列

3.4 Kettle應(yīng)用控件

3.4.1 替換NULL值

3.4.2 寫日志

3.5 Kettle流程控件

3.5.1 Switch/case

3.5.2 過濾記錄

3.5.3 空操作

3.5.3 中止

3.6 Kettle查詢控件

3.6.1 數(shù)據(jù)庫查詢

3.6.2 流查詢

3.7 Kettle連接控件

3.7.1 合并記錄

3.7.2 記錄集連接

3.8?Kettle統(tǒng)計(jì)控件

3.8.1 分組

3.9 Kettle映射控件

3.9.1 映射

3.10 Kettle腳本控件

3.10.1執(zhí)行SQL腳本

第4章 Kettle作業(yè)

4.1 作業(yè)簡介

4.1.1?作業(yè)項(xiàng)

4.1.2 作業(yè)跳

4.2 作業(yè)初體驗(yàn)

第5章 Kettle使用案例

5.1 轉(zhuǎn)換案例

5.2 作業(yè)案例

5.3 Hive-HDFS案例

5.4 HDFS-Hbase案例

第6章 Kettle資源庫

6.1 數(shù)據(jù)庫資源庫

6.2 文件資源庫

第7章 Kettle調(diào)優(yōu)

第8章??Kettle在Linux中的操作

8.1 Liunx中搭建jdk

8.1.1 Linux中jdk安裝

8.1.2 配置環(huán)境變量

8.2?Linux中搭建Kettle

8.2.1 Linux中Kettle安裝

8.2.2 配置Kettle連數(shù)據(jù)庫的jar包

8.3?Linux中連接Spoon中的資源庫

8.3.1 配置repositories.xml

8.3.2 執(zhí)行資源庫中的.ktr 和 .kjb 文件

8.3.3 Linux中操作Kettle可能使用到的指令

第9章? 綜合案例

9.1 創(chuàng)建對應(yīng)的轉(zhuǎn)換和Job作業(yè)

9.1.1 轉(zhuǎn)換file_to_saTable2

9.1.2 轉(zhuǎn)換saTable_to_scTable2

9.1.3?轉(zhuǎn)換scTable_to_MicrosoftExcel2

9.1.4?jobFileTotabletotabletoExcel2

9.2?調(diào)試

9.2.1 本地Windows系統(tǒng)調(diào)試

9.2.2 Linux系統(tǒng)調(diào)試


第1章 Kettle概述

1.1 ETL簡介

ETL(Extract-Transform-Load的縮寫,即數(shù)據(jù)抽取、轉(zhuǎn)換、裝載的過程),對于企業(yè)或行業(yè)應(yīng)用來說,我們經(jīng)常會遇到各種數(shù)據(jù)的處理,轉(zhuǎn)換,遷移,所以了解并掌握一種ETL工具的使用,必不可少。
市面上常用的ETL工具有很多,比如Kettle,Sqoop,DataX,Talend等,作為一個(gè)大數(shù)據(jù)工程師,我們最好要掌握其中的兩到三種,這里我們要學(xué)習(xí)的ETL工具是Kettle!

1.2 Kettle簡介 1.2.1 Kettle是什么

Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上運(yùn)行,綠色無需安裝,數(shù)據(jù)抽取高效穩(wěn)定。
Kettle 中文名稱叫水壺,該項(xiàng)目的主程序員MATT 希望把各種數(shù)據(jù)放到一個(gè)壺里,然后以一種指定的格式流出。
Kettle這個(gè)ETL工具集,它允許你管理來自不同數(shù)據(jù)庫的數(shù)據(jù),通過提供一個(gè)圖形化的用戶環(huán)境來描述你想做什么,而不是你想怎么做。
Kettle中有兩種腳本文件,transformation和job,transformation完成針對數(shù)據(jù)的基礎(chǔ)轉(zhuǎn)換,job則完成整個(gè)工作流的控制。
Kettle(現(xiàn)在已經(jīng)更名為PDI,Pentaho Data Integration-Pentaho數(shù)據(jù)集成)。

大數(shù)據(jù)kettle,大數(shù)據(jù)

1.2.2 Kettle的兩種設(shè)計(jì)

大數(shù)據(jù)kettle,大數(shù)據(jù)

1.2.3 Kettle的核心組件

大數(shù)據(jù)kettle,大數(shù)據(jù)

?1.2.4 Kettle特點(diǎn)

大數(shù)據(jù)kettle,大數(shù)據(jù)

第2章 Kettle安裝部署

2.1 Kettle下載


2.1.1 下載地址


官網(wǎng)地址
https://community.hitachivantara.com/docs/DOC-1009855
下載地址
https://sourceforge.net/projects/pentaho/files/Data%20Integration/


2.1.2 ?Kettle目錄說明

大數(shù)據(jù)kettle,大數(shù)據(jù)

2.1.3 ?Kettle文件說明

大數(shù)據(jù)kettle,大數(shù)據(jù)

2.2 Kettle安裝部署

2.2.1 概述

在實(shí)際企業(yè)開發(fā)中,都是在本地Windows環(huán)境下進(jìn)行kettle的job和Transformation開發(fā)的,可以在本地運(yùn)行,也可以連接遠(yuǎn)程機(jī)器運(yùn)行

2.2.2 安裝

1) 安裝jdk,版本建議1.8及以上
2) 下載kettle壓縮包,因kettle為綠色軟件,解壓縮到任意本地路徑即可
3) 雙擊Spoon.bat,啟動(dòng)圖形化界面工具,就可以直接使用了

2.3 Kettle界面簡介

2.3.1 首頁

大數(shù)據(jù)kettle,大數(shù)據(jù)

2.3.2 轉(zhuǎn)換

大數(shù)據(jù)kettle,大數(shù)據(jù)

2.3.3 作業(yè)

大數(shù)據(jù)kettle,大數(shù)據(jù)

2.4 Kettle轉(zhuǎn)換初次體驗(yàn)


體驗(yàn)案例:將csv文件用Kettle轉(zhuǎn)換成excel文件

大數(shù)據(jù)kettle,大數(shù)據(jù)
1)在Kettle中新建一個(gè)轉(zhuǎn)換,然后選擇轉(zhuǎn)換下面的“csv文件輸入”和“Excel輸出”控件

大數(shù)據(jù)kettle,大數(shù)據(jù)

2)雙擊CSV文件輸入文件控件,在彈出的設(shè)置框里找到對應(yīng)的csv文件(尚硅谷大數(shù)據(jù)技術(shù)之Kettle\5.數(shù)據(jù)\input\01_kettle快速體驗(yàn).csv),然后點(diǎn)擊下面的獲取字段按鈕,將我們需要的字段加載到kettle中

大數(shù)據(jù)kettle,大數(shù)據(jù)

3)按住鍵盤SHIFT鍵,并且點(diǎn)擊鼠標(biāo)左鍵將兩個(gè)控件鏈接起來,鏈接時(shí)選擇“主輸出步驟”

大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)??

4)雙擊Excel輸出控件,在彈出的設(shè)置框里設(shè)置文件輸出路徑和文件名稱,然后點(diǎn)擊上面的字段框,依次點(diǎn)擊下面的獲取字段和最小寬度,獲取到輸出字段。
??大數(shù)據(jù)kettle,大數(shù)據(jù)??大數(shù)據(jù)kettle,大數(shù)據(jù)
5)點(diǎn)擊左上角的啟動(dòng)按鈕,在彈出的設(shè)置框里點(diǎn)擊啟動(dòng),執(zhí)行該轉(zhuǎn)換。

?大數(shù)據(jù)kettle,大數(shù)據(jù)

6)查看kettle下方執(zhí)行結(jié)果日志以及輸出路徑的Excel文件內(nèi)容

大數(shù)據(jù)kettle,大數(shù)據(jù)

2.5 Kettle核心概念

2.5.1 可視化編程

Kettle可以被歸類為可視化編程語言(Visula Programming Languages,VPL),因?yàn)镵ettle可以使用圖形化的方式定義復(fù)雜的ETL程序和工作流。
可視化編程一直是Kettle里的核心概念,它可以讓你快速構(gòu)建復(fù)雜的ETL作業(yè)和減低維護(hù)工作量。它通過隱藏很多技術(shù)細(xì)節(jié),使IT領(lǐng)域更貼近于商務(wù)領(lǐng)域。
Kettle里的代碼就是轉(zhuǎn)換和作業(yè)。

2.5.2 轉(zhuǎn)換

轉(zhuǎn)換(transaformation)負(fù)責(zé)數(shù)據(jù)的輸入、轉(zhuǎn)換、校驗(yàn)和輸出等工作。Kettle 中使用轉(zhuǎn)換完成數(shù)據(jù) ETL 全部工作。轉(zhuǎn)換由多個(gè)步驟 (Step) 組成,如文本文件輸入,過濾輸出行,執(zhí)行 SQL 腳本等。各個(gè)步驟使用跳 (Hop) 來鏈接。 跳定義了一個(gè)數(shù)據(jù)流通道,即數(shù)據(jù)由一個(gè)步驟流 (跳) 向下一個(gè)步驟。在 Kettle 中數(shù)據(jù)的最小單位是數(shù)據(jù)行(row),數(shù)據(jù)流中流動(dòng)其實(shí)是緩存的行集 (RowSet) 。?

?大數(shù)據(jù)kettle,大數(shù)據(jù)

2.5.3 步驟(Step)

步驟(控件)是轉(zhuǎn)換里的基本的組成部分,快速入門的案例中就存在兩個(gè)步驟,“CSV文件輸入”和“Excel輸出”。
一個(gè)步驟有如下幾個(gè)關(guān)鍵特性:
①步驟需要有一個(gè)名字,這個(gè)名字在同一個(gè)轉(zhuǎn)換范圍內(nèi)唯一。
②每個(gè)步驟都會讀、寫數(shù)據(jù)行(唯一例外是“生成記錄”步驟,該步驟只寫數(shù)據(jù))。
③步驟將數(shù)據(jù)寫到與之相連的一個(gè)或多個(gè)輸出跳(hop),再傳送到跳的另一端的步驟。
④大多數(shù)的步驟都可以有多個(gè)輸出跳。一個(gè)步驟的數(shù)據(jù)發(fā)送可以被設(shè)置為分發(fā)和復(fù)制,分發(fā)是目標(biāo)步驟輪流接收記錄,復(fù)制是所有的記錄被同時(shí)發(fā)送到所有的目標(biāo)步驟。

大數(shù)據(jù)kettle,大數(shù)據(jù)??大數(shù)據(jù)kettle,大數(shù)據(jù)
? ? ? ? ? ? ?
2.5.4 跳(Hop)

?跳就是步驟之間帶箭頭的連線,跳定義了步驟之間的數(shù)據(jù)通路。

大數(shù)據(jù)kettle,大數(shù)據(jù)

?跳實(shí)際上是兩個(gè)步驟之間的被稱之為行集的數(shù)據(jù)行緩存,行集的大小可以在轉(zhuǎn)換的設(shè)置里定義。當(dāng)行集滿了,向行集寫數(shù)據(jù)的步驟將停止寫入,直到行集里又有了空間。當(dāng)行集空了,從行集讀取數(shù)據(jù)的步驟停止讀取,直到行集里又有可讀的數(shù)據(jù)行。

?大數(shù)據(jù)kettle,大數(shù)據(jù)

2.5.5 元數(shù)據(jù)

每個(gè)步驟在輸出數(shù)據(jù)行時(shí)都有對字段的描述,這種描述就是數(shù)據(jù)行的元數(shù)據(jù)。
通常包含下面一些信息。
①名稱:數(shù)據(jù)行里的字段名是唯一的。
②數(shù)據(jù)類型:字段的數(shù)據(jù)類型。
③格式:數(shù)據(jù)顯示的方式,如Integer的#、0.00。
④長度:字符串的長度或者BigNumber類型的長度。
⑤精度:BigNumber數(shù)據(jù)類型的十進(jìn)制精度。
⑥貨幣符號:¥
⑦小數(shù)點(diǎn)符號:十進(jìn)制數(shù)據(jù)的小數(shù)點(diǎn)格式。不同文化背景下小數(shù)點(diǎn)符號是不同的,一般是點(diǎn)(.)或逗號(,)。
⑧分組符號:數(shù)值類型數(shù)據(jù)的分組符號,不同文化背景下數(shù)字里的分組符號也是不同的,一般是點(diǎn)(.)或逗號(,)或單引號(’)

大數(shù)據(jù)kettle,大數(shù)據(jù)

2.5.6 數(shù)據(jù)類型

數(shù)據(jù)以數(shù)據(jù)行的形式沿著步驟移動(dòng)。一個(gè)數(shù)據(jù)行是零到多個(gè)字段的集合,字段包含下面幾種數(shù)據(jù)類型。
①String:字符類型數(shù)據(jù)
②Number:雙精度浮點(diǎn)數(shù)。
③Integer:帶符號長整型(64位)。
④BigNumber:任意精度數(shù)據(jù)。
⑤Date:帶毫秒精度的日期時(shí)間值。
⑥Boolean:取值為true和false的布爾值。
⑦Binary:二進(jìn)制字段可以包含圖像、聲音、視頻及其他類型的二進(jìn)制數(shù)據(jù)。

大數(shù)據(jù)kettle,大數(shù)據(jù)

2.5.7 并行

跳的這種基于行集緩存的規(guī)則允許每個(gè)步驟都是由一個(gè)獨(dú)立的線程運(yùn)行,這樣并發(fā)程度最高。這一規(guī)則也允許數(shù)據(jù)以最小消耗內(nèi)存的數(shù)據(jù)流的方式來處理。在數(shù)據(jù)倉庫里,我們經(jīng)常要處理大量數(shù)據(jù),所以這種高并發(fā)低消耗的方式也是ETL工具的核心需求。
對于kettle的轉(zhuǎn)換,不能定義一個(gè)執(zhí)行順序,因?yàn)樗胁襟E都以并發(fā)方式執(zhí)行:當(dāng)轉(zhuǎn)換啟動(dòng)后,所有步驟都同時(shí)啟動(dòng),從它們的輸入跳中讀取數(shù)據(jù),并把處理過的數(shù)據(jù)寫到輸出跳,直到輸入跳里不再有數(shù)據(jù),就中止步驟的運(yùn)行。當(dāng)所有的步驟都中止了,整個(gè)轉(zhuǎn)換就中止了。?
如果你想要一個(gè)任務(wù)沿著指定的順序執(zhí)行,那么就要使用下面所講的“作業(yè)”!

2.5.8 作業(yè)

作業(yè)?(Job),負(fù)責(zé)定義一個(gè)完成整個(gè)工作流的控制,比如將轉(zhuǎn)換的結(jié)果發(fā)送郵件給相關(guān)人員。因?yàn)檗D(zhuǎn)換(transformation)以并行方式執(zhí)行,所以必須存在一個(gè)串行的調(diào)度工具來執(zhí)行轉(zhuǎn)換,這就是 Kettle中的作業(yè)。

第3章 Kettle轉(zhuǎn)換

3.1 Kettle輸入控件

大數(shù)據(jù)kettle,大數(shù)據(jù)

由于Kettle中自帶的輸入控件比較多,本文只挑出開發(fā)中經(jīng)常使用的幾個(gè)輸入控件來進(jìn)行講解,詳情如下圖。

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.1.1 CSV文件輸入

CSV文件是一個(gè)用逗號分隔的固定格式的文本文件,這種文件后綴名為.csv,可以用Excel或者文本編輯器打開。在企業(yè)里面一般最常見的ETL需求就是將csv文件轉(zhuǎn)換為excel文件,如果用Kettle來做這個(gè)ETL工作,就需要用到本章節(jié)講解的CSV文件輸入控件。

本章節(jié)任務(wù):熟悉CSV文件輸入控件,并嘗試將CSV文件轉(zhuǎn)換成Excel文件(可參考上面的快速體驗(yàn)案例)。

大數(shù)據(jù)kettle,大數(shù)據(jù)

  • ①步驟名稱:可以修改,但是在同一個(gè)轉(zhuǎn)換里面要保證唯一性,見名知意;
  • ②文件名:選擇對應(yīng)的csv文件;
  • ③列分隔符:默認(rèn)是逗號;
  • ④封閉符:結(jié)束行數(shù)據(jù)的讀寫;
  • ⑤NIO緩存大?。何募绻袛?shù)過多,需要調(diào)整此參數(shù);
  • ⑥包含列頭行:意思是文件中第一行是字段名稱行,表頭不進(jìn)行讀寫;
  • ⑦行號字段:如果文件第一行不是字段名稱或者需要從某行開始讀寫,可在此輸入行號。
  • ⑧并發(fā)運(yùn)行?:選擇并發(fā),可提高讀寫速度;
  • ⑨字段中有回車換行?:不要選擇,會將換行符做數(shù)據(jù)讀出;
  • ⑩文件編碼:如果預(yù)覽數(shù)據(jù)出現(xiàn)亂碼,可更換文件編碼;

3.1.2 文本文件輸入

提取服務(wù)器上的日志信息是公司里ETL開發(fā)很常見的操作,日志信息基本上都是文本類型,因此文本文件輸入控件是kettle中常用的一個(gè)輸入控件。使用文本文件輸入控件步驟:

  1. 添加需要轉(zhuǎn)換的日志文件
  2. 按照日志文件格式,指定分隔符?
  3. 獲取下字段,并給字段設(shè)置合適的格式
  4. 最后點(diǎn)下預(yù)覽記錄,看看能否讀到數(shù)據(jù)

?大數(shù)據(jù)kettle,大數(shù)據(jù)

?大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

本章節(jié)任務(wù):熟悉文本文件輸入控件,并新建轉(zhuǎn)換,將txt日志文件轉(zhuǎn)換為Excel文件?

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.1.3 Excel輸入

Excel輸入控件也是很常用的輸入控件,一般企業(yè)里會用此控件對大量的Excel文件進(jìn)行ETL操作。使用Excel輸入控件步驟如下:
1)按照讀取的源文件格式指定對應(yīng)的表格類型為xls還是xlsx
2)選擇并添加對應(yīng)的excel文件
3)獲取excel的sheet工作表
4)獲取字段,并給每個(gè)字段設(shè)置合適的格式
5)預(yù)覽數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

本章節(jié)任務(wù):熟悉Excel輸入控件,將excel文件的兩個(gè)sheet表格的數(shù)據(jù)重新寫到一個(gè)新的excel文件中

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.1.4 XML輸入

1)XML簡介
XML-可擴(kuò)展標(biāo)記語言eXtensible Markup Language,由W3C組織發(fā)布,目前推薦遵守的是W3C組織于2000年發(fā)布的XML1.0規(guī)范。XML用來傳輸和存儲數(shù)據(jù),就是以一個(gè)統(tǒng)一的格式,組織有關(guān)系的數(shù)據(jù),為不同平臺下的應(yīng)用程序服務(wù)。

大數(shù)據(jù)kettle,大數(shù)據(jù)

2)XPath簡介
XPath即為XML路徑語言(XML Path Language),它是一種用來確定XML文檔中某部分位置的語言。XPath基于XML的樹狀結(jié)構(gòu),提供在數(shù)據(jù)結(jié)構(gòu)樹中找尋節(jié)點(diǎn)的能力。
XPath 使用路徑表達(dá)式在 XML 文檔中選取節(jié)點(diǎn)。下面列出了最有用的路徑表達(dá)式:

大數(shù)據(jù)kettle,大數(shù)據(jù)

3)XML輸入控件
了解XML和XPath概念以后,我們要開始學(xué)習(xí)Kettle的XML輸入控件,企業(yè)里經(jīng)常用此控件進(jìn)行XML文件的ETL操作。
1.瀏覽獲取xml文件,將xml文件添加到kettle中
2.獲取xml文檔的所有路徑,設(shè)置合適的循環(huán)讀取路徑
3.獲取字段,獲得自己想要讀取的所有字段,并且設(shè)置適當(dāng)?shù)母袷?br> 4.預(yù)覽數(shù)據(jù),看看能否讀取到自己想要的數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

?本章節(jié)任務(wù):熟悉XML輸入控件,將XML文件的學(xué)生數(shù)據(jù)寫到excel文件中

大數(shù)據(jù)kettle,大數(shù)據(jù)

?3.1.5 JSON輸入

1)JSON簡介

JSON(JavaScript Object Notation, JS 對象簡譜) 是一種輕量級的數(shù)據(jù)交換格式。JSON對象本質(zhì)上就是一個(gè)JS對象,但是這個(gè)對象比較特殊,它可以直接轉(zhuǎn)換為字符串,在不同語言中進(jìn)行傳遞,通過工具又可以轉(zhuǎn)換為其他語言中的對象。

JSON核心概念:數(shù)組、對象、屬性。

數(shù)組:[ ]

對象:{ }

屬性:key:value

2)JSON Path

JSONPath類似于XPath在xml文檔中的定位,JsonPath表達(dá)式通常是用來路徑檢索或設(shè)置Json的。其表達(dá)式可以接受“dot–notation”(點(diǎn)記法)和“bracket–notation”(括號記法)格式

點(diǎn)記法:$.store.book[0].title

括號記法:$[‘store’][‘book’][0][‘title’]

大數(shù)據(jù)kettle,大數(shù)據(jù)

  1. JSON輸入控件

了解JSON格式和JSON Path以后,我們要學(xué)習(xí)使用JSON輸入控件,JSON控件也是企業(yè)里做ETL常用的控件之一。

  1. 瀏覽獲取JSON文件,將json文件獲取到kettle中
  2. 根據(jù)JSON Path點(diǎn)記法,獲取到需要的字段,并且設(shè)置合適格式

大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

?本章節(jié)任務(wù):獲取到JSON文件里面的id,field,value字段,寫到excel文件中大數(shù)據(jù)kettle,大數(shù)據(jù)

3.1.6 表輸入

1)創(chuàng)建數(shù)據(jù)庫連接

表輸入可以說是kettle中用到最多的一種輸入控件,因?yàn)槠髽I(yè)中大部分的數(shù)據(jù)都會存在數(shù)據(jù)庫中。kettle可以連接市面上常見的各種數(shù)據(jù)庫,比如Oracle,Mysql,SqlServer等。但是在連接各個(gè)數(shù)據(jù)庫之前,我們需要先配置好對應(yīng)的數(shù)據(jù)庫驅(qū)動(dòng),本教程以mysql為例,給大家講解kettle連接mysql數(shù)據(jù)庫的過程。

首先我們要將對應(yīng)版本的mysql連接驅(qū)動(dòng)放到kettle安裝目錄下面的lib文件夾下,然后重啟kettle的客戶端Spoon

?大數(shù)據(jù)kettle,大數(shù)據(jù)

重啟Spoon客戶端以后,我們就可以創(chuàng)建對應(yīng)的數(shù)據(jù)庫連接了,在轉(zhuǎn)換視圖的主對象樹目錄下,有個(gè)DB連接,右鍵然后選擇新建,在打開數(shù)據(jù)庫連接框里,填寫正確的數(shù)據(jù)庫信息,然后測試,測試無誤后,可以保存此數(shù)據(jù)庫連接。

大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

數(shù)據(jù)庫連接默認(rèn)只對本轉(zhuǎn)換有效,換一個(gè)轉(zhuǎn)換以后,這個(gè)連接就沒法用了,還需要新建數(shù)據(jù)庫連接,所以我們需要將建好的這個(gè)數(shù)據(jù)庫連接進(jìn)行共享下,共享以后,其他的轉(zhuǎn)換也能用我們提前建好的這個(gè)數(shù)據(jù)庫連接了。?

?大數(shù)據(jù)kettle,大數(shù)據(jù)

?2)表輸入

創(chuàng)建好數(shù)據(jù)庫連接以后,我們就可以使用表輸入控件了,雙擊表輸入控件,選擇剛剛創(chuàng)建的數(shù)據(jù)庫連接,然后在SQL框里輸入合適的查詢語句,然后點(diǎn)擊預(yù)覽按鈕,看能否預(yù)覽到我們期望的數(shù)據(jù)。

大數(shù)據(jù)kettle,大數(shù)據(jù)大數(shù)據(jù)kettle,大數(shù)據(jù)

?本章節(jié)任務(wù):根據(jù)自己的集群環(huán)境,創(chuàng)建數(shù)據(jù)庫連接,然后使用表輸入控件將student表的數(shù)據(jù)寫到excel中。

?大數(shù)據(jù)kettle,大數(shù)據(jù)

3.2 Kettle輸出控件

輸出是轉(zhuǎn)換里面的第二個(gè)分類,輸出控件也是轉(zhuǎn)換中的第二大控件,用來存儲數(shù)據(jù)。輸出是ETL里面的L(Load),主要做數(shù)據(jù)加載的工作。

由于Kettle中自帶的輸出控件比較多,本文只挑出開發(fā)中經(jīng)常使用的幾個(gè)輸出控件來進(jìn)行講解,詳情如下圖。

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.2.1 Excel輸出

Kettle中自帶了兩個(gè)Excel輸出,一個(gè)Excel輸出,另一個(gè)是Microsoft?Excel輸出。

Excel輸出只能輸出xls文件(適合Excel2003),Microsoft?Excel輸出可以輸出xls和xlsx文件(適合Excel2007及以后)

Excel輸出大家已經(jīng)很熟悉了,本章不再贅述,接下來給大家講下Microsoft?Excel輸出。

  1. 選擇合適的擴(kuò)展名
  2. 點(diǎn)擊瀏覽,補(bǔ)全輸出文件的路徑已經(jīng)文件名

大數(shù)據(jù)kettle,大數(shù)據(jù)

本章任務(wù):使用表輸入控件,將student表的數(shù)據(jù),以復(fù)制的方式輸出到xls和xlsx文件中?

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.2.2 文本文件輸出

文本文件輸出控件,顧名思義,這是一個(gè)能將數(shù)據(jù)輸出成文本的控件,比較簡單,在企業(yè)里面也比較常用。

  1. 設(shè)置對應(yīng)的目錄和文件名
  2. 設(shè)置合適的擴(kuò)展名,比如txt,csv等
  3. 在內(nèi)容框里設(shè)置合適的分隔符,比如分號,逗號,TAB等
  4. 在字段框里獲取字段,并且給每個(gè)字段設(shè)置合適的格式

大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

本章節(jié)任務(wù):將student表的數(shù)據(jù)復(fù)制兩份,導(dǎo)出成txt和csv文件?

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.2.3 SQL文件輸出

SQL文件輸出一般跟表輸入做連接,然后將數(shù)據(jù)庫表的表結(jié)構(gòu)和數(shù)據(jù)以sql文件的形式導(dǎo)出,然后做數(shù)據(jù)庫備份的這么一個(gè)工作。

  1. 選擇合適的數(shù)據(jù)庫連接
  2. 選擇目標(biāo)表
  3. 勾選增加創(chuàng)建表語句和每個(gè)語句另起一行
  4. 填寫輸出文件的路徑和文件名
  5. 擴(kuò)展名默認(rèn)為sql,這個(gè)不需要更改

?大數(shù)據(jù)kettle,大數(shù)據(jù)

本章節(jié)任務(wù):將student表的表結(jié)構(gòu)和數(shù)據(jù)利用kettle導(dǎo)出成sql文件備份?

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.2.4 表輸出

表輸出控件可以將kettle數(shù)據(jù)行中的數(shù)據(jù)直接寫入到數(shù)據(jù)庫中的表中,企業(yè)里做ETL工作會經(jīng)常用到此控件。

  1. 選擇合適的數(shù)據(jù)庫連接
  2. 選擇目標(biāo)表,目標(biāo)表可以提前在數(shù)據(jù)庫中手動(dòng)創(chuàng)建好,也可以輸入一個(gè)數(shù)據(jù)庫不存在的表,然后點(diǎn)擊下面的SQL按鈕,利用kettle現(xiàn)場創(chuàng)建
  3. 如果目標(biāo)表的表結(jié)構(gòu)和輸入的數(shù)據(jù)結(jié)構(gòu)不一致,還可以自己指定數(shù)據(jù)庫字段

?大數(shù)據(jù)kettle,大數(shù)據(jù)

本章節(jié)任務(wù):熟悉表輸出控件,然后將student表的數(shù)據(jù)導(dǎo)入到student2表中,要求利用kettle現(xiàn)場創(chuàng)建student2表?

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.2.5 更新&插入/更新

更新和插入/更新,這兩個(gè)控件是kettle提供的將數(shù)據(jù)庫已經(jīng)存在的記錄與數(shù)據(jù)流里面的記錄進(jìn)行對比的控件。企業(yè)級ETL經(jīng)常會用到這兩個(gè)控件來進(jìn)行數(shù)據(jù)庫更新的操作

兩者區(qū)別:

更新是將數(shù)據(jù)庫表中的數(shù)據(jù)和數(shù)據(jù)流中的數(shù)據(jù)做對比,如果不同就更新,如果數(shù)據(jù)流中的數(shù)據(jù)比數(shù)據(jù)庫表中的數(shù)據(jù)多,那么就報(bào)錯(cuò)。

插入/更新的功能和更新一樣,只不過優(yōu)化了數(shù)據(jù)不存在就插入的功能,因此企業(yè)里更多的也是使用插入/更新。

大數(shù)據(jù)kettle,大數(shù)據(jù)大數(shù)據(jù)kettle,大數(shù)據(jù)

  1. 選擇正確的數(shù)據(jù)庫連接
  2. 選擇目標(biāo)表
  3. 輸入兩個(gè)表來進(jìn)行比較的字段,一般來說都是用主鍵來進(jìn)行比較
  4. 輸入要更新的字段

本章節(jié)任務(wù):手動(dòng)修改下student表的數(shù)據(jù)(修改和新增),然后用修改后的數(shù)據(jù)和student2來進(jìn)行對比,分別嘗試更新和插入/更新控件的區(qū)別

大數(shù)據(jù)kettle,大數(shù)據(jù)?大數(shù)據(jù)kettle,大數(shù)據(jù)

3.2.6 刪除

刪除控件可以刪除數(shù)據(jù)庫表中指定條件的數(shù)據(jù),企業(yè)里一般用此控件做數(shù)據(jù)庫表數(shù)據(jù)刪除或者跟另外一個(gè)表數(shù)據(jù)做對比,然后進(jìn)行去重的操作。

  1. 選擇數(shù)據(jù)庫連接
  2. 選擇目標(biāo)表
  3. 設(shè)置數(shù)據(jù)流跟目標(biāo)表要?jiǎng)h除數(shù)據(jù)的對應(yīng)字段

?大數(shù)據(jù)kettle,大數(shù)據(jù)

?本章節(jié)任務(wù):刪除student2表格中student表里面已有的數(shù)據(jù)(按照student表對student2表數(shù)據(jù)進(jìn)行去重)

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.3 Kettle轉(zhuǎn)換控件

轉(zhuǎn)換控件是轉(zhuǎn)換里面的第四個(gè)分類,轉(zhuǎn)換控件也是轉(zhuǎn)換中的第三大控件,用來轉(zhuǎn)換數(shù)據(jù)。轉(zhuǎn)換是ETL里面的T(Transform),主要做數(shù)據(jù)轉(zhuǎn)換,數(shù)據(jù)清洗的工作。ETL整個(gè)過程中,Transform的工作量最大,耗費(fèi)的時(shí)間也比較久,大概可以占到整個(gè)ETL的三分之二。

由于Kettle中自帶的轉(zhuǎn)換控件比較多,本文只挑出開發(fā)中經(jīng)常使用的幾個(gè)轉(zhuǎn)換控件來進(jìn)行講解,詳情如下圖。

?大數(shù)據(jù)kettle,大數(shù)據(jù)

3.3.1 Concat?fields

轉(zhuǎn)換控件Concat fields,顧名思義,就是將多個(gè)字段連接起來形成一個(gè)新的字段。

?大數(shù)據(jù)kettle,大數(shù)據(jù)

本章節(jié)任務(wù):將staff表的firstname和lastname拼接起來,形成name字段,然后再將數(shù)據(jù)插入到新表emp中

提示:如果涉及到中文亂碼問題,請參考資料:Mysql中文亂碼問題.docx

?大數(shù)據(jù)kettle,大數(shù)據(jù)

3.3.2 值映射

值映射就是把字段的一個(gè)值映射成其他的值。在數(shù)據(jù)質(zhì)量規(guī)范上使用非常多,比如很多系統(tǒng)對應(yīng)性別sex字段的定義不同。所以我們需要利用此控件,將同一個(gè)字段的不同的值,映射轉(zhuǎn)換成我們需要的值。

  1. 選擇映射的字段
  2. 還可以自定義映射完以后的新字段名
  3. 可以設(shè)置不匹配時(shí)的默認(rèn)值
  4. 設(shè)置映射的值

大數(shù)據(jù)kettle,大數(shù)據(jù)

本章節(jié)任務(wù):將staff表的sex字段,映射成男or女,然后再插入到emp表中?

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.3.3 增加常量&增加序列

增加常量就是在本身的數(shù)據(jù)流里面添加一列數(shù)據(jù),該列的數(shù)據(jù)都是相同的值。

增加序列是給數(shù)據(jù)流添加一個(gè)序列字段,可以自定義該序列字段的遞增步長。

?大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

本章節(jié)任務(wù):給表staff的數(shù)據(jù)加一列固定值slary和一個(gè)遞增的number序列,在控制臺預(yù)覽下數(shù)據(jù)即可,不用輸出。

?大數(shù)據(jù)kettle,大數(shù)據(jù)

3.3.4 字段選擇

字段選擇是從數(shù)據(jù)流中選擇字段、改變名稱、修改數(shù)據(jù)類型。

大數(shù)據(jù)kettle,大數(shù)據(jù)

?大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

本章節(jié)任務(wù):在上一章節(jié)的轉(zhuǎn)換之后,添加字段選擇控件,移除掉firstname字段,并且將lastname重命名為name,將slary重命名為money,然后再次預(yù)覽數(shù)據(jù),查看數(shù)據(jù)的變化?

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.3.5 計(jì)算器

計(jì)算器是一個(gè)函數(shù)集合創(chuàng)建新的字段,還可以設(shè)置字段是否移除臨時(shí)字段)。我們可以通過計(jì)算器里面的多個(gè)計(jì)算函數(shù)對已有字段進(jìn)行計(jì)算,得出新字段。

?大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

本章節(jié)任務(wù):在上一節(jié)的任務(wù)基礎(chǔ)之上,添加計(jì)算器控件對money和number字段進(jìn)行相乘,得出新字段acount,然后預(yù)覽數(shù)據(jù)。?

大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.3.6 字符串剪切&替換&操作

轉(zhuǎn)換控件中有三個(gè)關(guān)于字符串的控件,分別是剪切字符串,字符串操作,字符串替換

剪切字符串是指定輸入流字段裁剪的位置剪切出新的字段。

大數(shù)據(jù)kettle,大數(shù)據(jù)

字符串替換是指定搜索內(nèi)容和替換內(nèi)容,如果輸入流的字段匹配上搜索內(nèi)容就進(jìn)行替換生成新字段。?

大數(shù)據(jù)kettle,大數(shù)據(jù)

字符串操作是去除字符串兩端的空格和大小寫切換,并生成新的字段。?

大數(shù)據(jù)kettle,大數(shù)據(jù)

本章節(jié)任務(wù):在上一節(jié)任務(wù)之后,添加剪切字符串,字符串替換,字符串操作三個(gè)控件,利用這三個(gè)控件分別對sex字段進(jìn)行剪切,替換,操作(去空格,轉(zhuǎn)大小寫)?

大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.3.7 排序記錄&去除重復(fù)記錄

去除重復(fù)記錄是去除數(shù)據(jù)流里面相同的數(shù)據(jù)行。但是此控件使用之前要求必須先對數(shù)據(jù)進(jìn)行排序,對數(shù)據(jù)排序用的控件是排序記錄,排序記錄控件可以按照指定字段的升序或者降序?qū)?shù)據(jù)流進(jìn)行排序。因此排序記錄+去除重復(fù)記錄控件常常配合組隊(duì)使用。

大數(shù)據(jù)kettle,大數(shù)據(jù)大數(shù)據(jù)kettle,大數(shù)據(jù)

本章節(jié)任務(wù):利用excel輸入控件讀取input目錄下的06_去除重復(fù)記錄.xlsx,然后對里面重復(fù)的數(shù)據(jù)進(jìn)行按照id排序并去重?

?大數(shù)據(jù)kettle,大數(shù)據(jù)

?3.3.8 唯一行(哈希值)

唯一行(哈希值)就是刪除數(shù)據(jù)流重復(fù)的行。此控件的效果和(排序記錄+去除重復(fù)記錄)的效果是一樣的,但是實(shí)現(xiàn)的原理不同。排序記錄+去除重復(fù)記錄對比的是每兩行之間的數(shù)據(jù),而唯一行(哈希值)是給每一行的數(shù)據(jù)建立哈希值,通過哈希值來比較數(shù)據(jù)是否重復(fù),因此唯一行(哈希值)去重效率比較高,也更建議大家使用。

大數(shù)據(jù)kettle,大數(shù)據(jù)

?本章節(jié)任務(wù):利用唯一行(哈希值)控件對06_去除重復(fù)記錄.xlsx去重,并且查看最后輸出的數(shù)據(jù)跟上個(gè)任務(wù)有何區(qū)別

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.3.9 拆分字段

拆分字段是把字段按照分隔符拆分成兩個(gè)或多個(gè)字段。需要注意的是,字段拆分以后,原字段就會從數(shù)據(jù)流中消失。

?大數(shù)據(jù)kettle,大數(shù)據(jù)

?本章節(jié)任務(wù):將07_拆分字段.xlsx里面的NBA球星的姓名,拆分成姓跟名。

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.3.10 列拆分為多行

列拆分為多行就是把指定字段按指定分隔符進(jìn)行拆分為多行,然后其他字段直接復(fù)制。具體效果如下圖:

?大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

  1. 選擇要拆分的字段
  2. 設(shè)置合適的分割符
  3. 設(shè)置分割以后的新字段名
  4. 選擇是否輸出新數(shù)據(jù)的排列行號,行號是否重置

?大數(shù)據(jù)kettle,大數(shù)據(jù)

本章節(jié)任務(wù):對08_列拆分為多行.xlsx的數(shù)據(jù)按照hobby字段進(jìn)行拆分為多行,然后將新數(shù)據(jù)輸出到excel文件中,查看數(shù)據(jù)。?

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.3.11 行扁平化

行扁平化就是把同一組的多行數(shù)據(jù)合并成為一行,可以理解為列拆分為多行的逆向操作。但是需要注意的是行扁平化控件使用有兩個(gè)條件:

  1. 使用之前需要對數(shù)據(jù)進(jìn)行排序
  2. 每個(gè)分組的數(shù)據(jù)條數(shù)要保證一致,否則數(shù)據(jù)會有錯(cuò)亂

?大數(shù)據(jù)kettle,大數(shù)據(jù)

  1. 選擇扁平化的字段
  2. 填寫目標(biāo)字段,字段個(gè)數(shù)跟每個(gè)分組的數(shù)據(jù)一致

本章節(jié)任務(wù):將09_行扁平化.xlsx的數(shù)據(jù)按照hobby字段進(jìn)行扁平化

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.3.12 列轉(zhuǎn)行

列轉(zhuǎn)行,顧名思義多列轉(zhuǎn)一行,就是如果數(shù)據(jù)一列有相同的值,按照指定的字段,將其中一列的字段內(nèi)容變成不同的列,然后把多行數(shù)據(jù)轉(zhuǎn)換為一行數(shù)據(jù)的過程。具體效果如下圖:

大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

注意:列轉(zhuǎn)行之前數(shù)據(jù)流必須按照分組字段進(jìn)行排序,否則數(shù)據(jù)會錯(cuò)亂!?

大數(shù)據(jù)kettle,大數(shù)據(jù)

  1. 關(guān)鍵字段:從數(shù)據(jù)內(nèi)容變成列名的字段
  2. 分組字段:列轉(zhuǎn)行,轉(zhuǎn)變以后的分組字段
  3. 目標(biāo)字段:增加的列的列名字段
  4. 數(shù)據(jù)字段:目標(biāo)字段的數(shù)據(jù)字段
  5. 關(guān)鍵字值:數(shù)據(jù)字段查詢時(shí)的關(guān)鍵字,也可以理解為key
  6. 類型:要給目標(biāo)字段設(shè)置合適的類型,否則會報(bào)錯(cuò)

本章節(jié)任務(wù):將input目錄下的10_列轉(zhuǎn)行.xlsx的數(shù)據(jù)進(jìn)行列轉(zhuǎn)行,熟悉列轉(zhuǎn)行控件的使用

?大數(shù)據(jù)kettle,大數(shù)據(jù)

3.3.13 行轉(zhuǎn)列

行轉(zhuǎn)列,一行轉(zhuǎn)多列,就是把數(shù)據(jù)字段的字段名轉(zhuǎn)換為一列,把數(shù)據(jù)行變?yōu)?strong>數(shù)據(jù)列。我們也可以簡單理解為行轉(zhuǎn)列控件是列轉(zhuǎn)行控件的逆向操作。具體如下圖:

?大數(shù)據(jù)kettle,大數(shù)據(jù)

?大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

  1. Key字段:行轉(zhuǎn)列,生成的列名字段名
  2. 字段名稱:原本數(shù)據(jù)流中的字段名
  3. Key值:Key字段的值,這個(gè)是自己自定義的,一般都跟前面的字段名稱一樣
  4. Value字段:對應(yīng)的Key值的數(shù)據(jù)列的列名

本章節(jié)任務(wù):將input目錄下的11_行轉(zhuǎn)列.xlsx用excel控件輸入,然后行轉(zhuǎn)列,熟悉行轉(zhuǎn)列控件的使用。

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.4 Kettle應(yīng)用控件

應(yīng)用是轉(zhuǎn)換控件里面的第五個(gè)分類,這個(gè)分類下是Kettle給我們自帶的一些工具類

3.4.1 替換NULL

替換NULL值,顧名思義就是將數(shù)據(jù)里面的null值替換成其他的值,此控件比較簡單,但是在企業(yè)里面也會經(jīng)常用到。

  1. 可以選擇替換數(shù)據(jù)流中所有字段的null值
  2. 也可以選擇字段,在下面的字段框里面,根據(jù)不同的字段,將null值替換成不同的值

?大數(shù)據(jù)kettle,大數(shù)據(jù)

?本章節(jié)任務(wù):替換excel數(shù)據(jù)12_替換NULL值.xlsx的bonus列的null值為0

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.4.2 寫日志

寫日志控件主要是調(diào)試的時(shí)候使用,此控件可以將數(shù)據(jù)流的每行數(shù)據(jù)打印到控制臺,方便我們調(diào)試整個(gè)程序。

  1. 選擇日志級別
  2. 可以輸入自定義輸出的語句
  3. 選擇要輸出打印的字段

?大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

本章節(jié)任務(wù):在上個(gè)任務(wù)的基礎(chǔ)之上,添加寫日志控件,在控制臺輸出查看數(shù)據(jù)。大數(shù)據(jù)kettle,大數(shù)據(jù)?

3.5 Kettle流程控件

流程是轉(zhuǎn)換里面的第六個(gè)分類,流程分類下的控件主要用來控制數(shù)據(jù)流程和數(shù)據(jù)流向。

3.5.1 Switch/case

Switch/case控件,最典型的數(shù)據(jù)分類控件,可以利用某一個(gè)字段的數(shù)據(jù)的不同的值,讓數(shù)據(jù)流從一路到多路。

?大數(shù)據(jù)kettle,大數(shù)據(jù)

  1. 選擇需要判斷的字段
  2. 選擇判斷字段的值的類型
  3. 填寫分類數(shù)據(jù)的判斷條件和目標(biāo)步驟

本章節(jié)任務(wù):將excel:13_Switch-Case.xlsx的數(shù)據(jù)按照部門字段進(jìn)行分類,將同一個(gè)部門的數(shù)據(jù)輸出到一個(gè)excel中

?大數(shù)據(jù)kettle,大數(shù)據(jù)

3.5.2 過濾記錄

和Switch/case做對比的話,過濾記錄相當(dāng)于if-else,可以自定義輸入一個(gè)判斷條件,然后將數(shù)據(jù)流中的數(shù)據(jù)一路分為兩路。

大數(shù)據(jù)kettle,大數(shù)據(jù)

  1. 在下面先填寫數(shù)據(jù)的判斷條件
  2. 然后再上面選擇下判斷條件為true或者false的輸出步驟

本章節(jié)任務(wù):將excel:13_Switch-Case.xlsx的數(shù)據(jù)按照工資字段進(jìn)行判斷,將工資在20000及以上的數(shù)據(jù)輸出到一個(gè)excel中,將工資小于20000的輸出到另外一個(gè)excel中。

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.5.3 空操作

空操作,顧名思義就是什么也不做,此控件一般作為數(shù)據(jù)流的終點(diǎn)。

大數(shù)據(jù)kettle,大數(shù)據(jù)

本章節(jié)任務(wù):修改上節(jié)的轉(zhuǎn)換任務(wù),將工資大于等于20000的數(shù)據(jù)輸出,小于20000的數(shù)據(jù)直接丟棄,熟悉空操作控件的使用。?

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.5.3 中止

中止是數(shù)據(jù)流的終點(diǎn),如果有數(shù)據(jù)流到此控件處,整個(gè)轉(zhuǎn)換程序?qū)⒅兄?,并且在控制臺輸出報(bào)錯(cuò)信息。此控件一般用來校驗(yàn)數(shù)據(jù),或者調(diào)試程序。

?大數(shù)據(jù)kettle,大數(shù)據(jù)

?本章節(jié)任務(wù):使用中止控件判斷上節(jié)任務(wù)中是否有人的工資低于20000,如果發(fā)現(xiàn)有人的工資低于20000的話,中止程序,并在控制臺輸出信息。

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.6 Kettle查詢控件

查詢是轉(zhuǎn)換里面的第九個(gè)分類,查詢控件是用來查詢數(shù)據(jù)源里面的數(shù)據(jù),并合并到主數(shù)據(jù)流中。

3.6.1 數(shù)據(jù)庫查詢

數(shù)據(jù)庫查詢就是從數(shù)據(jù)庫里面查詢出數(shù)據(jù),然后跟數(shù)據(jù)流中的數(shù)據(jù)進(jìn)行左連接的一個(gè)過程。左連接的意思是數(shù)據(jù)流中原本的數(shù)據(jù)全部有,但是數(shù)據(jù)庫查詢控件查詢出來的數(shù)據(jù)不一定全部會列出,只能按照輸入的匹配條件來進(jìn)行關(guān)聯(lián)。

?大數(shù)據(jù)kettle,大數(shù)據(jù)

  1. 選擇合適的數(shù)據(jù)庫鏈接
  2. 輸入要去數(shù)據(jù)庫里面查詢的表名
  3. 輸入兩個(gè)表進(jìn)行左連接的連接條件
  4. 獲取返回字段,得到查詢表返回的值

本章節(jié)任務(wù):利用表輸入控件獲取到staff表的數(shù)據(jù),然后利用數(shù)據(jù)庫查詢控件查詢到department表的數(shù)據(jù),然后對兩個(gè)表按照dept_id字段進(jìn)行左連接,并預(yù)覽數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.6.2 流查詢

流查詢控件就是查詢兩條數(shù)據(jù)流中的數(shù)據(jù),然后按照指定的字段做等值匹配。注意:流查詢在查詢前把數(shù)據(jù)都加載到內(nèi)存中,并且只能進(jìn)行等值查詢。

大數(shù)據(jù)kettle,大數(shù)據(jù)

  1. 輸入查詢的數(shù)據(jù)流
  2. 輸入兩個(gè)流進(jìn)行匹配的字段(等值匹配)
  3. 輸入查詢出的字段

本章節(jié)任務(wù):用流查詢控件,將staff和department的數(shù)據(jù)按照dept_id字段進(jìn)行關(guān)聯(lián)起來

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.7 Kettle連接控件

連接是轉(zhuǎn)換里面的第十個(gè)分類,連接分類下的控件一般都是將多個(gè)數(shù)據(jù)集通過關(guān)鍵字進(jìn)行連接起來,形成一個(gè)數(shù)據(jù)集的過程。

3.7.1 合并記錄

合并記錄是用于將兩個(gè)不同來源的數(shù)據(jù)合并,這兩個(gè)來源的數(shù)據(jù)分別為舊數(shù)據(jù)新數(shù)據(jù),該步驟將舊數(shù)據(jù)和新數(shù)據(jù)按照指定的關(guān)鍵字匹配、比較、合并。注意舊數(shù)據(jù)和新數(shù)據(jù)需要事先按照關(guān)鍵字段排序,并且舊數(shù)據(jù)和新數(shù)據(jù)要有相同的字段名稱。

合并后的數(shù)據(jù)將包括舊數(shù)據(jù)來源和新數(shù)據(jù)來源里的所有數(shù)據(jù),對于變化的數(shù)據(jù),使用新數(shù)據(jù)代替舊數(shù)據(jù),同時(shí)在結(jié)果里用一個(gè)標(biāo)示字段,來指定新舊數(shù)據(jù)的比較結(jié)果。

大數(shù)據(jù)kettle,大數(shù)據(jù)

  1. 舊數(shù)據(jù)源:選擇舊數(shù)據(jù)來源的步驟
  2. 新數(shù)據(jù)源:選擇新數(shù)據(jù)來源的步驟
  3. 標(biāo)志字段:設(shè)置標(biāo)志字段的名稱,標(biāo)志字段用于保存比較的結(jié)果,比較結(jié)果有下列幾種
    • “identical” – 舊數(shù)據(jù)和新數(shù)據(jù)一樣
    • “changed” – 數(shù)據(jù)發(fā)生了變化;
    • “new” – 新數(shù)據(jù)中有而舊數(shù)據(jù)中沒有的記錄
    • “deleted” –舊數(shù)據(jù)中有而新數(shù)據(jù)中沒有的記錄
  4. 關(guān)鍵字段:用于定位判斷兩個(gè)數(shù)據(jù)源中的同一條記錄的字段。
  5. 比較字段:對于兩個(gè)數(shù)據(jù)源中的同一條記錄,指定需要比較的字段

本章節(jié)任務(wù):利用合并記錄控件比較合并記錄-新舊excel的數(shù)據(jù),并預(yù)覽數(shù)據(jù),查看標(biāo)志字段的內(nèi)容

?大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.7.2 記錄集連接

記錄集連接可以對兩個(gè)步驟中的數(shù)據(jù)流進(jìn)行左連接,右連接,內(nèi)連接,外連接。此控件功能比較強(qiáng)大,企業(yè)做ETL開發(fā)會經(jīng)常用到此控件,但是需要注意在進(jìn)行記錄集連接之前,需要對記錄集的數(shù)據(jù)進(jìn)行排序,并且排序的字段還一定要選兩個(gè)表關(guān)聯(lián)的字段,否則數(shù)據(jù)錯(cuò)亂,出現(xiàn)null值。

?大數(shù)據(jù)kettle,大數(shù)據(jù)

  1. 選擇需要連接的兩個(gè)數(shù)據(jù)流的步驟
  2. 選擇連接類型,一共有四個(gè):INNER,LEFT OUTER,RIGHT OUTER,F(xiàn)ULL OUTER
  3. 從兩個(gè)數(shù)據(jù)流步驟里面選出連接字段

本章節(jié)任務(wù):使用記錄集連接控件對數(shù)據(jù)庫表satff和department按照部門id分別進(jìn)行內(nèi)連接,左連接,右連接,外連接,查看數(shù)據(jù)的不同

注意:兩個(gè)表進(jìn)行排序記錄的時(shí)候,排序的字段一定要選擇部門id,否則數(shù)據(jù)會不正確

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.8?Kettle統(tǒng)計(jì)控件

統(tǒng)計(jì)是轉(zhuǎn)換里面的第十三個(gè)分類,統(tǒng)計(jì)控件可以提供數(shù)據(jù)的采樣和統(tǒng)計(jì)功能。

3.8.1 分組

分組控件的功能類似于GROUP BY,可以按照指定的一個(gè)或者幾個(gè)字段進(jìn)行分組,然后其余字段可以按照聚合函數(shù)進(jìn)行合并計(jì)算。注意,在進(jìn)行分組之前,數(shù)據(jù)最好先進(jìn)行排序。

?大數(shù)據(jù)kettle,大數(shù)據(jù)

  1. 選擇分組字段
  2. 給其余字段選擇合適的聚合函數(shù)進(jìn)行計(jì)算

本章節(jié)任務(wù):給表staff的數(shù)據(jù)按照部門進(jìn)行分組,求出各部門人數(shù)以及各部門員工的平均年齡。

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.9 Kettle映射控件

映射是轉(zhuǎn)換里面的第十八個(gè)分類,映射可以用來定義子轉(zhuǎn)換,方便代碼封裝和重用。

3.9.1 映射

映射(子轉(zhuǎn)換)是用來配置子轉(zhuǎn)換,對子轉(zhuǎn)換進(jìn)行調(diào)用的一個(gè)步驟。

大數(shù)據(jù)kettle,大數(shù)據(jù)

映射輸入規(guī)范是輸入字段,由調(diào)用的轉(zhuǎn)換輸入。?

大數(shù)據(jù)kettle,大數(shù)據(jù)

?映射輸出規(guī)范是向調(diào)用的轉(zhuǎn)換輸出所有列,不做任何處理。大數(shù)據(jù)kettle,大數(shù)據(jù)

本章節(jié)任務(wù):封裝一個(gè)子轉(zhuǎn)換能夠通過dept_id求出dept_name,然后使用另外一個(gè)轉(zhuǎn)換調(diào)用此子轉(zhuǎn)換,求出數(shù)據(jù)庫staff表id=3的員工的姓名,年齡,部門id,部門姓名,并輸出到控制臺。?

大數(shù)據(jù)kettle,大數(shù)據(jù)

3.10 Kettle腳本控件

腳本是轉(zhuǎn)換的第七個(gè)分類,腳本就是直接通過寫程序代碼完成一些復(fù)雜的操作。

3.10.1執(zhí)行SQL腳本

執(zhí)行sql腳本控件就是連接到數(shù)據(jù)庫里面,然后執(zhí)行自己寫的一些sql語句

?大數(shù)據(jù)kettle,大數(shù)據(jù)

  1. 選擇合適的數(shù)據(jù)庫連接
  2. 填入要執(zhí)行的sql語句

本章節(jié)任務(wù):利用執(zhí)行sql腳本控件將student表數(shù)據(jù)的atguigu的年齡更新為18。

?大數(shù)據(jù)kettle,大數(shù)據(jù)

第4章 Kettle作業(yè)

4.1 作業(yè)簡介

大多數(shù)ETL項(xiàng)目都需要完成各種各樣的維護(hù)工作。例如,如何傳送文件;驗(yàn)證數(shù)據(jù)庫表是否存在等等。而這些操作都是按照一定順序完成。因?yàn)檗D(zhuǎn)換以并行方式執(zhí)行,就需要一個(gè)可以串行執(zhí)行的作業(yè)來處理這些操作。

一個(gè)作業(yè)包含一個(gè)或者多個(gè)作業(yè)項(xiàng),這些作業(yè)項(xiàng)以某種順序來執(zhí)行。作業(yè)執(zhí)行順序由作業(yè)項(xiàng)之間的跳(job hop)和每個(gè)作業(yè)項(xiàng)的執(zhí)行結(jié)果來決定。

4.1.1?作業(yè)項(xiàng)

作業(yè)項(xiàng)是作業(yè)的基本構(gòu)成部分。如同轉(zhuǎn)換的步驟,作業(yè)項(xiàng)也可以使用圖標(biāo)的方式圖形化展示。但是,作業(yè)項(xiàng)和轉(zhuǎn)換步驟有下面幾點(diǎn)不同:

  1. 轉(zhuǎn)換步驟與步驟之間是數(shù)據(jù)流,作業(yè)項(xiàng)之間是步驟流。
  2. 轉(zhuǎn)換啟動(dòng)以后,所有步驟一起并行啟動(dòng)等待數(shù)據(jù)行的輸入,而作業(yè)項(xiàng)是嚴(yán)格按照執(zhí)行順序啟動(dòng),一個(gè)作業(yè)項(xiàng)執(zhí)行完以后,再執(zhí)行下一個(gè)作業(yè)項(xiàng)。
  3. 在作業(yè)項(xiàng)之間可以傳遞一個(gè)結(jié)果對象(result object)。這個(gè)結(jié)果對象里面包含了數(shù)據(jù)行,它們不是以數(shù)據(jù)流的方式來傳遞的。而是等待一個(gè)作業(yè)項(xiàng)執(zhí)行完了,再傳遞個(gè)下一個(gè)作業(yè)項(xiàng)。
  4. 因?yàn)樽鳂I(yè)順序執(zhí)行作業(yè)項(xiàng),所以必須定義一個(gè)起點(diǎn)。有一個(gè)叫“開始”的作業(yè)項(xiàng)就定義了這個(gè)點(diǎn)。一個(gè)作業(yè)只能定一個(gè)開始作業(yè)項(xiàng)。

4.1.2 作業(yè)跳

作業(yè)的跳是作業(yè)項(xiàng)之間的連接線,他定義了作業(yè)的執(zhí)行路徑。作業(yè)里每個(gè)作業(yè)項(xiàng)的不同運(yùn)行結(jié)果決定了做作業(yè)的不同執(zhí)行路徑。作業(yè)跳一共分為下面三種情況:

①無條件執(zhí)行:不論上一個(gè)作業(yè)項(xiàng)執(zhí)行成功還是失敗,下一個(gè)作業(yè)項(xiàng)都會執(zhí)行。這是一種藍(lán)色的連接線,上面有一個(gè)鎖的圖標(biāo)。

?大數(shù)據(jù)kettle,大數(shù)據(jù)

②當(dāng)運(yùn)行結(jié)果為真時(shí)執(zhí)行:當(dāng)上一個(gè)作業(yè)項(xiàng)的執(zhí)行結(jié)果為真時(shí),執(zhí)行下一個(gè)作業(yè)項(xiàng)。通常在需要無錯(cuò)誤執(zhí)行的情況下使用。這是一種綠色的連接線,上面有一個(gè)對鉤號的圖標(biāo)。?

?大數(shù)據(jù)kettle,大數(shù)據(jù)

?③當(dāng)運(yùn)行結(jié)果為假時(shí)執(zhí)行:當(dāng)上一個(gè)作業(yè)項(xiàng)的執(zhí)行結(jié)果為假或者沒有成功執(zhí)行是,執(zhí)行下一個(gè)作業(yè)項(xiàng)。這是一種紅色的連接線,上面有一個(gè)紅色的停止圖標(biāo)。

?大數(shù)據(jù)kettle,大數(shù)據(jù)

在圖標(biāo)上單擊就可以對跳進(jìn)行設(shè)置。

4.2 作業(yè)初體驗(yàn)

作業(yè)案例:將3.10.1章節(jié)的轉(zhuǎn)換嵌入作業(yè)中執(zhí)行,執(zhí)行成功或者失敗都發(fā)送郵件提醒

?????1)點(diǎn)擊左上角的文件,新建一個(gè)作業(yè)

? ? ??大數(shù)據(jù)kettle,大數(shù)據(jù)

2)按照下圖設(shè)置作業(yè)項(xiàng)和作業(yè)跳

??大數(shù)據(jù)kettle,大數(shù)據(jù)

??

3)轉(zhuǎn)換作業(yè)項(xiàng)設(shè)置,選擇要嵌入的轉(zhuǎn)換文件

? ? ? ?大數(shù)據(jù)kettle,大數(shù)據(jù)

4)發(fā)送郵件作業(yè)項(xiàng)設(shè)置,
?大數(shù)據(jù)kettle,大數(shù)據(jù)大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)大數(shù)據(jù)kettle,大數(shù)據(jù)
?
5)分別嘗試作業(yè)執(zhí)行成功和失敗,查看kettle發(fā)送的郵件信息

第5章 Kettle使用案例

5.1 轉(zhuǎn)換案例


案例一:把stu1的數(shù)據(jù)按id同步到stu2,stu2有相同id則更新數(shù)據(jù)
(1)在mysql中創(chuàng)建兩張表

mysql> create database kettle;
mysql> use kettle;
mysql> create table stu1(id int,name varchar(20),age int);
mysql> create table stu2(id int,name varchar(20));

(2)往兩張表中插入一些數(shù)據(jù)

mysql> insert into stu1 values(1001,'zhangsan',20),(1002,'lisi',18), (1003,'wangwu',23);
mysql> insert into stu2 values(1001,'wukong');

(3)在kettle中新建轉(zhuǎn)換

? ??大數(shù)據(jù)kettle,大數(shù)據(jù)

(4)分別在輸入和輸出中拉出表輸入和插入/更新

??大數(shù)據(jù)kettle,大數(shù)據(jù)

(5)雙擊表輸入對象,填寫相關(guān)配置,測試是否成功

大數(shù)據(jù)kettle,大數(shù)據(jù)
(6)雙擊 更新/插入對象,填寫相關(guān)配置

大數(shù)據(jù)kettle,大數(shù)據(jù)


(7)保存轉(zhuǎn)換,啟動(dòng)運(yùn)行,去mysql表查看結(jié)果
注意:如果需要連接mysql數(shù)據(jù)庫,需要先將mysql的連接驅(qū)動(dòng)包復(fù)制到kettle的根目錄下的lib目錄中,否則會報(bào)錯(cuò)找不到驅(qū)動(dòng)。

大數(shù)據(jù)kettle,大數(shù)據(jù)

5.2 作業(yè)案例


案例二:使用作業(yè)執(zhí)行上述轉(zhuǎn)換,并且額外在表stu2中添加一條數(shù)據(jù),整個(gè)作業(yè)運(yùn)行成功的話發(fā)郵件提醒?
(1)新建一個(gè)作業(yè)

?大數(shù)據(jù)kettle,大數(shù)據(jù)

(2) 按圖示拉取組件?

?大數(shù)據(jù)kettle,大數(shù)據(jù)

?(3)雙擊Start編輯Start

大數(shù)據(jù)kettle,大數(shù)據(jù)

?(4)雙擊轉(zhuǎn)換,選擇案例1保存的文件

?大數(shù)據(jù)kettle,大數(shù)據(jù)

(5)雙擊SQL,編輯SQL語句?

?大數(shù)據(jù)kettle,大數(shù)據(jù)

?(6)雙擊發(fā)送郵件,編輯發(fā)送郵件的設(shè)置信息

大數(shù)據(jù)kettle,大數(shù)據(jù)大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

(7)保存作業(yè)并執(zhí)行,然后去mysql查看結(jié)果和郵件信息

5.3 Hive-HDFS案例

案例三:將hive表的數(shù)據(jù)輸出到hdfs

(1)因?yàn)樯婕暗絟ive和hbase的讀寫,需要先修改相關(guān)配置文件。

修改kettle安裝目錄下的data-integration\plugins\pentaho-big-data-plugin下的plugin.properties,設(shè)置active.hadoop.configuration=hdp26,并將如下配置文件拷貝到data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\hdp26下

?大數(shù)據(jù)kettle,大數(shù)據(jù)

?(2)啟動(dòng)hdfs,yarn,zookeeper,hbase集群的所有進(jìn)程,啟動(dòng)hiveserver2服務(wù)

[atguigu@hadoop102 ~]$ hadoop.sh start    //自己寫的hadoop啟動(dòng)腳本
[atguigu@hadoop102 ~]$ zk.sh start 		//自己寫的zookeeper啟動(dòng)腳本
[atguigu@hadoop102 ~]$ /opt/module/hbase-1.3.1/bin/start-hbase.sh
[atguigu@hadoop102 ~]$ /opt/module/hive/bin/hiveserver2

(3)進(jìn)入beeline,查看10000端口開啟情況

[atguigu@hadoop102 ~]$ /opt/module/hive/bin/beeline
Beeline version 1.2.1 by Apache Hive
beeline> !connect jdbc:hive2://hadoop102:10000(回車)
Connecting to jdbc:hive2://hadoop102:10000
Enter username for jdbc:hive2://hadoop102:10000: atguigu(輸入atguigu)
Enter password for jdbc:hive2://hadoop102:10000:(直接回車)
Connected to: Apache Hive (version 1.2.1)
Driver: Hive JDBC (version 1.2.1)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://hadoop102:10000>(到了這里說明成功開啟10000端口)

(4)創(chuàng)建兩張表dept和emp

CREATE TABLE dept(deptno int, dname string,loc string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t';

CREATE TABLE emp(
empno int,
ename string,
job string,
mgr int,
hiredate string,
sal double,
comm int,
deptno int)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t';

(5)插入數(shù)據(jù)

insert into dept values(10,'accounting','NEW YORK'),(20,'RESEARCH','DALLAS'),(30,'SALES','CHICAGO'),(40,'OPERATIONS','BOSTON');

insert into emp values
(7369,'SMITH','CLERK',7902,'1980-12-17',800,NULL,20),
(7499,'ALLEN','SALESMAN',7698,'1980-12-17',1600,300,30),
(7521,'WARD','SALESMAN',7698,'1980-12-17',1250,500,30),
(7566,'JONES','MANAGER',7839,'1980-12-17',2975,NULL,20);

(6)按下圖建立流程圖

大數(shù)據(jù)kettle,大數(shù)據(jù)

(7)設(shè)置表輸入,連接hive?

大數(shù)據(jù)kettle,大數(shù)據(jù)

?大數(shù)據(jù)kettle,大數(shù)據(jù)

(8)設(shè)置排序?qū)傩?

大數(shù)據(jù)kettle,大數(shù)據(jù)

(9)設(shè)置連接屬性?

大數(shù)據(jù)kettle,大數(shù)據(jù)

?(10)設(shè)置字段選擇

大數(shù)據(jù)kettle,大數(shù)據(jù)

?(11)設(shè)置文件輸出,點(diǎn)擊瀏覽按鈕

大數(shù)據(jù)kettle,大數(shù)據(jù)

選擇存儲路徑為HDFS,并且新建一個(gè)Hadoop?Cluster連接?

大數(shù)據(jù)kettle,大數(shù)據(jù)

?按照集群配置輸入對應(yīng)的參數(shù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

選擇創(chuàng)建好的大數(shù)據(jù)集群連接

大數(shù)據(jù)kettle,大數(shù)據(jù)

然后再依次設(shè)置文本文件輸出控件的文件,內(nèi)容,字段三個(gè)設(shè)置頁,注意一定要獲取字段?

大數(shù)據(jù)kettle,大數(shù)據(jù)大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

(12)保存并運(yùn)行轉(zhuǎn)換,然后查看hdfs?

?大數(shù)據(jù)kettle,大數(shù)據(jù)

5.4 HDFS-Hbase案例

案例四:讀取hdfs文件并將sal大于1000的數(shù)據(jù)保存到hbase中

(1) 在HBase中創(chuàng)建一張表用于存放數(shù)據(jù)

[atguigu@hadoop102 ~]$ /opt/module/hbase-1.3.1/bin/hbase shell
hbase(main):004:0> create 'people','info'

(2)按下圖建立流程圖

大數(shù)據(jù)kettle,大數(shù)據(jù)

(3)設(shè)置文件輸入,連接hdfs?

大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

注意千萬別忘記獲取字段,然后給字段設(shè)置格式?

大數(shù)據(jù)kettle,大數(shù)據(jù)

(4)設(shè)置過濾記錄?

大數(shù)據(jù)kettle,大數(shù)據(jù)

(5)設(shè)置HBase?output控件

1.選擇一個(gè)大數(shù)據(jù)集群連接

2.選擇上面復(fù)制過來的hbase-site.xml

3.去第二個(gè)配置頁面創(chuàng)建映射,然后保存映射(選擇rowkey字段)

4.再回第一個(gè)配置頁選擇Hbase表以及剛剛創(chuàng)建好的映射

大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

?注意:若報(bào)錯(cuò)沒有權(quán)限往hdfs寫文件,在Spoon.bat中第119行添加參數(shù)

"-DHADOOP_USER_NAME=atguigu" "-Dfile.encoding=UTF-8"
(6)保存轉(zhuǎn)換并運(yùn)行,然戶去hbase里面查看數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

第6章 Kettle資源庫

6.1 數(shù)據(jù)庫資源庫

數(shù)據(jù)庫資源庫是將作業(yè)和轉(zhuǎn)換相關(guān)的信息存儲在數(shù)據(jù)庫中,執(zhí)行的時(shí)候直接去數(shù)據(jù)庫讀取信息,很容易跨平臺使用

1)點(diǎn)擊右上角connect,選擇Other?Resporitory

大數(shù)據(jù)kettle,大數(shù)據(jù)

2) 選擇Database?Repository?

大數(shù)據(jù)kettle,大數(shù)據(jù)

3)?建立新連接

大數(shù)據(jù)kettle,大數(shù)據(jù)

大數(shù)據(jù)kettle,大數(shù)據(jù)

4) 填好之后,點(diǎn)擊finish,會在指定的庫中創(chuàng)建很多表,至此數(shù)據(jù)庫資源庫創(chuàng)建完成?

大數(shù)據(jù)kettle,大數(shù)據(jù)

5) 連接資源庫,默認(rèn)賬號密碼為admin?

大數(shù)據(jù)kettle,大數(shù)據(jù)

6)?將之前做過的轉(zhuǎn)換導(dǎo)入資源庫

(1)選擇從xml文件導(dǎo)入

大數(shù)據(jù)kettle,大數(shù)據(jù)

?(2)隨便選擇一個(gè)轉(zhuǎn)換

?大數(shù)據(jù)kettle,大數(shù)據(jù)

(3)點(diǎn)擊保存,選擇存儲位置及文件名

大數(shù)據(jù)kettle,大數(shù)據(jù)

(4)打開資源庫查看保存結(jié)果

大數(shù)據(jù)kettle,大數(shù)據(jù)

6.2 文件資源庫

將作業(yè)和轉(zhuǎn)換相關(guān)的信息存儲在指定的目錄中,其實(shí)和XML的方式一樣,創(chuàng)建方式跟創(chuàng)建數(shù)據(jù)庫資源庫步驟類似,只是不需要用戶密碼就可以訪問,跨平臺使用比較麻煩

1)選擇connect

大數(shù)據(jù)kettle,大數(shù)據(jù)

2)點(diǎn)擊add后點(diǎn)擊Other?Repositories?

大數(shù)據(jù)kettle,大數(shù)據(jù)

3)選擇File?Repository?

大數(shù)據(jù)kettle,大數(shù)據(jù)

?4)填寫信息

大數(shù)據(jù)kettle,大數(shù)據(jù)

第7章 Kettle調(diào)優(yōu)

1、調(diào)整JVM大小進(jìn)行性能優(yōu)化,修改Kettle根目錄下的Spoon腳本。

大數(shù)據(jù)kettle,大數(shù)據(jù)

參數(shù)參考:

-Xmx2048m:設(shè)置JVM最大可用內(nèi)存為2048M。

-Xms1024m:設(shè)置JVM促使內(nèi)存為1024m。此值可以設(shè)置與-Xmx相同,以避免每次垃圾回收完成后JVM重新分配內(nèi)存。

-Xmn2g:設(shè)置年輕代大小為2G。整個(gè)JVM內(nèi)存大小=年輕代大小 + 年老代大小 + 持久代大小。持久代一般固定大小為64m,所以增大年輕代后,將會減小年老代大小。此值對系統(tǒng)性能影響較大,Sun官方推薦配置為整個(gè)堆的3/8。

-Xss128k:設(shè)置每個(gè)線程的堆棧大小。JDK5.0以后每個(gè)線程堆棧大小為1M,以前每個(gè)線程堆棧大小為256K。更具應(yīng)用的線程所需內(nèi)存大小進(jìn)行調(diào)整。在相同物理內(nèi)存下,減小這個(gè)值能生成更多的線程。但是操作系統(tǒng)對一個(gè)進(jìn)程內(nèi)的線程數(shù)還是有限制的,不能無限生成,經(jīng)驗(yàn)值在3000~5000左右。

2、 調(diào)整提交(Commit)記錄數(shù)大小進(jìn)行優(yōu)化,Kettle默認(rèn)Commit數(shù)量為:1000,可以根據(jù)數(shù)據(jù)量大小來設(shè)置Commitsize:1000~50000

3、盡量使用數(shù)據(jù)庫連接池;

4、盡量提高批處理的commit size;

5、盡量使用緩存,緩存盡量大一些(主要是文本文件和數(shù)據(jù)流);

6、Kettle是Java做的,盡量用大一點(diǎn)的內(nèi)存參數(shù)啟動(dòng)Kettle;

7、可以使用sql來做的一些操作盡量用sql;

Group , merge , stream lookup,split field這些操作都是比較慢的,想辦法避免他們.,能用sql就用sql;

8、插入大量數(shù)據(jù)的時(shí)候盡量把索引刪掉;

9、盡量避免使用update , delete操作,尤其是update,如果可以把update變成先delete, ?后insert;

10、能使用truncate table的時(shí)候,就不要使用deleteall row這種類似sql合理的分區(qū),如果刪除操作是基于某一個(gè)分區(qū)的,就不要使用delete row這種方式(不管是deletesql還是delete步驟),直接把分區(qū)drop掉,再重新創(chuàng)建;

11、盡量縮小輸入的數(shù)據(jù)集的大?。ㄔ隽扛乱彩菫榱诉@個(gè)目的);

12、?盡量使用數(shù)據(jù)庫原生的方式裝載文本文件(Oracle的sqlloader, mysql的bulk loader步驟)。

第8章??Kettle在Linux中的操作

Kettle在Linux上操作,也和本地Windows類似。是需要下載相關(guān)的軟件,配置相關(guān)的休息,用以完成Kettle運(yùn)行所需要的環(huán)境的搭建。

8.1 Liunx中搭建jdk

安裝jdk并配置對應(yīng)的環(huán)境變量。

8.1.1 Linux中jdk安裝

1、下載JDK安裝包

官網(wǎng)下載:https://www.oracle.com/java/technologies/downloads/#java8

? ? Java Downloads | Oracle

大數(shù)據(jù)kettle,大數(shù)據(jù)

2、創(chuàng)建jdk安裝目錄(該/usr/local/src 目錄是空的,最好把我們自己下載的放到這,容易區(qū)分)

[root@VM_0_4_centos src]# mkdir -p /usr/local/src/jdk

3、查看安裝程序

[root@VM_0_4_centos src]# rpm -qa | grep -i jdk

若之前安裝過jdk,下次安裝一定把之前的刪除干凈

8.1.2 配置環(huán)境變量

1、解壓

將下載好的安裝包上傳至Linux系統(tǒng),再將其解壓

[root@VM_0_4_centos jdk]# tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/local

2、配置環(huán)境變量

[root@VM_0_4_centos jdk]# vim /etc/profile

可以看到這個(gè)文件的內(nèi)容,profile文件有點(diǎn)類似于windows系統(tǒng)里面的環(huán)境變量的配置,

shift + g 定位到最后一行

這個(gè)時(shí)候按一下a或i鍵,進(jìn)入編輯模式

中間用紅色的線圈起來的就是需要加的( JAVA_HOME ?是jdk安裝目錄,和在Windows下配置一樣 )

大數(shù)據(jù)kettle,大數(shù)據(jù)

export JAVA_HOME=/usr/local/jdk1.8.0_221

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar

3、退出文件,保存

按Esc鍵 ??輸入:wq ??保存并退出

4、查看是否配置成功??

[root@VM_0_4_centos jdk]# java -version ??

若出現(xiàn)jdk版本號,則安裝并配置環(huán)境變量成功。

8.2?Linux中搭建Kettle

8.2.1 Linux中Kettle安裝

可以直接使用傳輸工具軟件,將本地Windows系統(tǒng)中的kettle安裝包 pci-ce-7.1.00-12 直接上傳至Linux的相關(guān)路徑下,然后使用解壓指令將其解壓。

8.2.2 配置Kettle連數(shù)據(jù)庫的jar包

在將kettle安裝包解壓之后,還要將需要使用的 mysql-connector-java-5.1.5-bin.jar、ojdbc8.jar 上傳至/data-integration/lib 路徑下。也可以將本地的解壓后且已經(jīng)配置過mysql-connector-java-5.1.5-bin.jar、ojdbc8.jar 的文件直接上傳至Linux。

其中,

mysql-connector-java-5.1.5-bin.jar:MySQL 驅(qū)動(dòng),連接MySQL數(shù)據(jù)庫時(shí)需要使用。

ojdbc8.jar:Oracle 驅(qū)動(dòng),連接Oracle數(shù)據(jù)庫的時(shí)候需要使用。

兩者可以二選一,也可以同時(shí)使用。比如Spoon資源庫本身連接的是MySQL數(shù)據(jù)庫,而資源庫中的 .ktr 轉(zhuǎn)換文件 和 .kjb 工作文件中有使用到連接Oracle數(shù)據(jù)庫的組件。就需要同時(shí)配置這兩個(gè)數(shù)據(jù)庫驅(qū)動(dòng)包。

8.3?Linux中連接Spoon中的資源庫

8.3.1 配置repositories.xml

將本地Windows系統(tǒng)中的 repositories.xml 文件拖拽至 Linux系統(tǒng)的/home/kettle/.kettle/ 目錄下。

8.3.2 執(zhí)行資源庫中的.ktr 和 .kjb 文件

在Linux中可以通過指令,直接執(zhí)行Spoon資源庫中的 .ktr 轉(zhuǎn)換文件 和 .kjb 工作文件。而不再需要將對應(yīng)的 .ktr文件 和 .kjb文件上傳至Linux系統(tǒng)中。

方式一:

通過cd 指令,進(jìn)入到Linux系統(tǒng)中的 /home/kettle/tools/pdi-ce-7.1.00-12/data-integration 目錄中執(zhí)行以下指令:

----------------------------------------------------------------------------------------------------------------------

./kitchen.sh ?-rep=kettle_sit_mysql ?-user=admin ?-pass=admin ?-dir=/kjbs ?-job=jobfiletotabletotable2 ?-param:reveive=/home/kettle/kettle_Receive ?-parame:target=/home/kettle/kettle_Target ?-param:zktr=/ktrs

----------------------------------------------------------------------------------------------------------------------

指令的注釋為:

./kitchen.sh ?-rep=資源庫名稱 ?-user=資源庫的用戶名 ?-pass=資源庫的密碼 ?-dir=在資源庫中的目錄路徑 ?-job=job作業(yè)名稱 ?-param:receive文件在Linux系統(tǒng)中的存放路徑 ?-parame:target文件在Linux系統(tǒng)中的存放路徑 ?-param:job中所引用的轉(zhuǎn)換在資源庫中的存放路徑。

方式二:

直接在Linux的任何當(dāng)前路徑下執(zhí)行以下指令

----------------------------------------------------------------------------------------------------------------------

/home/kettle/tools/pdi-ce-7.1.0.0-12/data-integration/kitchen.sh ?-rep=kettle_sit_mysql ?-user=admin ?-pass=admin ?-dir=/kjbs ?-job=jobfiletotabletotable2 ?-param:reveive=/home/kettle/kettle_Receive ?-parame:target=/home/kettle/kettle_Target ?-param:zktr=/ktrs

----------------------------------------------------------------------------------------------------------------------

指令的注釋為:

Kettle安裝包在Linux系統(tǒng)中的解壓路徑/data-integration/kitchen.sh ?-rep=資源庫名稱 ?-user=資源庫的用戶名 ?-pass=資源庫的密碼 ?-dir=在資源庫中的目錄路徑 ?-job=job作業(yè)名稱 ?-param:receive文件在Linux系統(tǒng)中的存放路徑 ?-parame:target文件在Linux系統(tǒng)中的存放路徑 ?-param:job中所引用的轉(zhuǎn)換在資源庫中的存放路徑。

8.3.3 Linux中操作Kettle可能使用到的指令

在Linux中通過指令,執(zhí)行Spoon資源庫中的 .ktr 轉(zhuǎn)換文件 和 .kjb 工作文件

1.)若執(zhí)行 pan.sh 時(shí)提示沒有執(zhí)行權(quán)限,執(zhí)行如下命令:
chmod +x ?/home/kettle/tools/pdi-ce-7.1.0.0-12/data-integration/pan.sh?
若執(zhí)行 kitchen.sh 時(shí)提示沒有執(zhí)行權(quán)限,執(zhí)行如下命令:
chmod +x ?/home/kettle/tools/pdi-ce-7.1.0.0-12/data-integration/kitchen.sh
歸納為:chmod +x /usr/soft/kettle/dist/*.sh


2.)若本地連接數(shù)據(jù)庫時(shí)是正常的,而在Linux中連接同一個(gè)數(shù)據(jù)庫卻連不上,
?ping 數(shù)據(jù)庫的IP結(jié)果是不通的。

第9章? 綜合案例

將file.txt中的數(shù)據(jù)導(dǎo)入到庫1表test_sa中;將庫1表test_sa中數(shù)據(jù)導(dǎo)入到庫2表test_sc中;將庫2表test_sc中數(shù)據(jù)到出到Excel文件中。

9.1 創(chuàng)建對應(yīng)的轉(zhuǎn)換和Job作業(yè)

9.1.1 轉(zhuǎn)換file_to_saTable2

大數(shù)據(jù)kettle,大數(shù)據(jù)

?file的文件輸入中使用的不是絕對路徑,而是用了全局變量 ${receivePath}\file.txt。

?大數(shù)據(jù)kettle,大數(shù)據(jù)

全局變量的設(shè)置需要修改kettle.properties文件,然后在重啟kettle。?

大數(shù)據(jù)kettle,大數(shù)據(jù)

注意:在kettle.propertiesz文件中配置路徑相關(guān)的全局變量的時(shí)候要使用“/”而不是“\”,而且要保證每一個(gè)路徑的末尾不含空格。?

9.1.2 轉(zhuǎn)換saTable_to_scTable2

大數(shù)據(jù)kettle,大數(shù)據(jù)

其中的select value組件是為了設(shè)置兩個(gè)表中不同字段的對應(yīng)關(guān)系。?因?yàn)閮蓮埍碇械淖侄尾灰欢ㄍ耆荒R粯印?/p>

大數(shù)據(jù)kettle,大數(shù)據(jù)

清理存量數(shù)據(jù)所要執(zhí)行的SQL為: truncate table test_sc; 即每次新導(dǎo)入到test_sc表之前都要先將其中的數(shù)據(jù)清除,和勾選中 裁剪表的效果是一樣的。

9.1.3?轉(zhuǎn)換scTable_to_MicrosoftExcel2

大數(shù)據(jù)kettle,大數(shù)據(jù)

本地調(diào)式的時(shí)候,如果之前有生成過MicrosoftExcel.xlsx文件,且本地將次Excel文件打開了,會報(bào)錯(cuò)。所以在本地調(diào)式之前要保證先將此MicrosoftExcel.xlsx文件關(guān)閉。?

大數(shù)據(jù)kettle,大數(shù)據(jù)

9.1.4?jobFileTotabletotabletoExcel2

將以上的轉(zhuǎn)換串接起來,本地調(diào)式即可。

大數(shù)據(jù)kettle,大數(shù)據(jù)

控制臺上沒有報(bào)錯(cuò)日志,還得檢驗(yàn)下對應(yīng)庫中關(guān)聯(lián)到的表中的數(shù)據(jù)是否有發(fā)生期望的變化,對應(yīng)的輸出文件是否有生成,輸出文件中的內(nèi)容是否正確。?

9.2?調(diào)試

9.2.1 本地Windows系統(tǒng)調(diào)試

本地調(diào)式只需要按上文中的操作,檢驗(yàn)即可。本地調(diào)試可以直接使用資源庫中的.ktr和.kjb文件。

9.2.2 Linux系統(tǒng)調(diào)試

需要修改Linux系統(tǒng)中的kettle.propertis文件

大數(shù)據(jù)kettle,大數(shù)據(jù)

?本地調(diào)式的可以直接使用資源庫中的文件,Linux系統(tǒng)中的調(diào)式當(dāng)然也是直接使用資源庫中的文件。兩者的區(qū)別就是各自系統(tǒng)中修改kettle.propertis的全局變量中的路徑值要根據(jù)各自的情況具體填寫。

在Linux系統(tǒng)中使用指令執(zhí)行資源庫中的job文件:

/home/kettle/tools/pdi-ce-7.1.0.0-12/data-integration/kitchen.sh ?-rep=kettle_sit_mysql ?-user=admin ?-pass=admin ?-dir=/kjbs ?-jobs=jobfiletotabletotable2

/home/kettle/tools/pdi-ce-7.1.0.0-12/data-integration/kitchen.sh  -rep=kettle_sit_mysql  -user=admin  -pass=admin  -dir=/kjbs  -jobs=jobfiletotabletotable2

大數(shù)據(jù)kettle,大數(shù)據(jù)

控制臺日志如下:

大數(shù)據(jù)kettle,大數(shù)據(jù)

?job執(zhí)行結(jié)束后,檢驗(yàn)時(shí)除了查看日志是否有報(bào)錯(cuò),還要看各自庫中對應(yīng)的表數(shù)據(jù)是否有做正確的變更,導(dǎo)出文件是否有生成,導(dǎo)出文件的內(nèi)容是否正確。

------------------------------------------------------------------ 我是低調(diào)的分隔線 ?----------------------------------------------------------------------

大數(shù)據(jù)kettle,大數(shù)據(jù)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?吾欲之南海,一瓶一缽足矣...文章來源地址http://www.zghlxwxcb.cn/news/detail-679327.html

到了這里,關(guān)于大數(shù)據(jù) ETL 處理工具之 Kettle的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 你還在用Kettle嗎?試試這款ETL工具

    你還在用Kettle嗎?試試這款ETL工具

    當(dāng)今時(shí)代,數(shù)字化轉(zhuǎn)型已經(jīng)成為企業(yè)發(fā)展的必由之路。數(shù)字化轉(zhuǎn)型不僅可以提高企業(yè)的效率和生產(chǎn)力,還可以提高企業(yè)的競爭力和市場份額。在數(shù)字化轉(zhuǎn)型的過程中,數(shù)據(jù)集成是至關(guān)重要的一步,可以幫助企業(yè)在數(shù)字化轉(zhuǎn)型中實(shí)現(xiàn)更高效和可靠的數(shù)據(jù)服務(wù)。 在國內(nèi)沒有更好的

    2024年02月09日
    瀏覽(20)
  • Springboot整合ETL引擎Kettle的使用

    Springboot整合ETL引擎Kettle的使用

    ETL 是英文Extract-Transform-Load的縮寫,用來描述將數(shù)據(jù)從源端經(jīng)過抽取(extract)、轉(zhuǎn)換(transform)、加載(load)至目的端的過程,它能夠?qū)Ω鞣N分布的、異構(gòu)的源數(shù)據(jù)(如關(guān)系數(shù)據(jù))進(jìn)行抽取,按照預(yù)先設(shè)計(jì)的規(guī)則將不完整數(shù)據(jù)、重復(fù)數(shù)據(jù)以及錯(cuò)誤數(shù)據(jù)等“臟\\\"數(shù)據(jù)內(nèi)容進(jìn)行清洗,得到符合

    2024年02月14日
    瀏覽(23)
  • kettle從入門到精通 第五十三課 ETL之kettle MQTT/RabbitMQ consumer實(shí)戰(zhàn)

    kettle從入門到精通 第五十三課 ETL之kettle MQTT/RabbitMQ consumer實(shí)戰(zhàn)

    1、上一節(jié)課我們學(xué)習(xí)了MQTT producer 生產(chǎn)者步驟,MQTT consumer消費(fèi)者步驟。該步驟可以從支持MRQTT協(xié)議的中間件獲取數(shù)據(jù),該步驟和kafka consumer 一樣可以處理實(shí)時(shí)數(shù)據(jù)交互,如下圖所示: ?2、雙擊步驟打開MQTT consumer 配置窗口,如下圖所示: Step name: 自定義步驟名稱。 Transformat

    2024年04月28日
    瀏覽(40)
  • 關(guān)于Kettle ETL java腳本編寫遇到的一些問題記錄

    關(guān)于Kettle ETL java腳本編寫遇到的一些問題記錄

    使用方法**logBasic()**參數(shù)必須是字符串 這部分內(nèi)容會在ETL的日志窗口顯示 1.獲取上個(gè)節(jié)點(diǎn)傳輸?shù)臄?shù)據(jù) 可以直接在左側(cè)雙擊獲取 2.全局參數(shù)獲取 在啟動(dòng)運(yùn)行的變量設(shè)置參數(shù) 在java代碼中獲取方式 3.獲取當(dāng)前節(jié)點(diǎn)參數(shù) 在當(dāng)前窗口下方有個(gè) 參數(shù) Tab頁,在這里設(shè)置 在java代碼中獲取

    2024年02月12日
    瀏覽(24)
  • 【數(shù)據(jù)預(yù)處理】基于Kettle的字符串?dāng)?shù)據(jù)清洗、Kettle的字段清洗、Kettle的使用參照表集成數(shù)據(jù)

    【數(shù)據(jù)預(yù)處理】基于Kettle的字符串?dāng)?shù)據(jù)清洗、Kettle的字段清洗、Kettle的使用參照表集成數(shù)據(jù)

    ?? 本文選自專欄:AI領(lǐng)域?qū)?從基礎(chǔ)到實(shí)踐,深入了解算法、案例和最新趨勢。無論你是初學(xué)者還是經(jīng)驗(yàn)豐富的數(shù)據(jù)科學(xué)家,通過案例和項(xiàng)目實(shí)踐,掌握核心概念和實(shí)用技能。每篇案例都包含代碼實(shí)例,詳細(xì)講解供大家學(xué)習(xí)。 ??????本專欄

    2024年02月03日
    瀏覽(31)
  • kettle工具下載、安裝、數(shù)據(jù)遷移、定時(shí)任務(wù)詳解

    kettle工具下載、安裝、數(shù)據(jù)遷移、定時(shí)任務(wù)詳解

    篇幅有點(diǎn)長,將這五個(gè)內(nèi)容放在了一篇文章里,其中最主要的是數(shù)據(jù)遷移和定時(shí)任務(wù) 目錄 目錄 一、簡單介紹 二、下載 三、安裝 四、數(shù)據(jù)遷移:包括單表整體數(shù)據(jù)遷移,單表存在字段不同情況的數(shù)據(jù)遷移,簡單批量數(shù)據(jù)遷移 五、定時(shí)任務(wù) kettle 是一個(gè)ETL工具,ETL(Extract-T

    2024年02月06日
    瀏覽(21)
  • Kettle Local引擎使用記錄(一)(基于Kettle web版數(shù)據(jù)集成開源工具data-integration源碼)

    Kettle Local引擎使用記錄(一)(基于Kettle web版數(shù)據(jù)集成開源工具data-integration源碼)

    在前面對 data-integration 做了一些簡單了解,從部署到應(yīng)用,今天嘗試把后端運(yùn)行作業(yè)代碼拎出來,去真正運(yùn)行一下,只有實(shí)操之后才會有更深刻的認(rèn)識,有些看著簡單的功能,實(shí)操過程中會遇到很多問題,這個(gè)時(shí)候你的想法也會發(fā)生改變,所以很多時(shí)候?yàn)槭裁撮_發(fā)人員痛恨做

    2024年02月02日
    瀏覽(30)
  • kettle安裝、MySQL數(shù)據(jù)庫連接、報(bào)錯(cuò)處理

    kettle安裝、MySQL數(shù)據(jù)庫連接、報(bào)錯(cuò)處理

    ? 目錄 1.環(huán)境配置? 2.安裝kettle 3.連接數(shù)據(jù)庫 4.連接數(shù)據(jù)庫報(bào)錯(cuò)處理 報(bào)錯(cuò)一? ?報(bào)錯(cuò)二 前言:跟kettle斗智斗勇的一下午,下面是我踩過的一些坑,希望對大家在安裝配置kettle時(shí)有所幫助,首先放一張我成功的截圖: ? 在安裝使用kettle時(shí)需要配置Java環(huán)境; jdk官網(wǎng)下載連接如下

    2024年02月07日
    瀏覽(24)
  • kettle開發(fā)-Day38-超好用自定義數(shù)據(jù)處理組件

    kettle開發(fā)-Day38-超好用自定義數(shù)據(jù)處理組件

    目錄 前言: 一、半斤八兩,都不太行 ? ? ? ? 1、表輸入,速度快,但不穩(wěn)妥 ????????2、穩(wěn)的一批,但是慢的像蝸牛? 二、各訴衷腸,合作共贏 ?????????1、表輸入,高效數(shù)據(jù)插入 ? ????????2、插入更新,一個(gè)都不能少 三、表輸入的高效+插入更新的完整性 ? ?

    2024年02月09日
    瀏覽(17)
  • kettle工具連接elasticsearch 7并導(dǎo)入MySQL表數(shù)據(jù)-簡述

    kettle工具連接elasticsearch 7并導(dǎo)入MySQL表數(shù)據(jù)-簡述

    一、簡述 工作中需要利用kettle開源ETL工具將MySQL數(shù)據(jù)庫中表數(shù)據(jù)同步到elasticsearch集群中。為此特記錄一下操作方式,留作記錄和學(xué)習(xí)。 二、環(huán)境 kettle工具:kettle 9.2 elasticsearch集群:7.11.1 集群配置信息: 集群名稱:my-application 集群節(jié)點(diǎn):192.168.172.200(node-1)、192.168.172.201(node

    2024年02月01日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包