目錄
- 序言
- 一 、kettle這壺能裝些啥
- 二、Access輸入
- 2.1 準備Acess資料庫和表
- 2.2 新建一個轉換并設定
- 2.3 啟動轉換預覽資料
- 三、CSV檔案輸入
- 3.1 準備csv檔案,并將csv輸入控制元件拖入作業區
- 3.2 csv輸入控制元件設定
- 3.3 預覽csv檔案內容
- 四、文本檔案輸入
- 4.1 準備txt格式文本檔案,并將控制元件拖入作業區
- 4.2 文本輸入控制元件設定
- 4.3 啟動步驟,瀏覽資料
- 五、Excel輸入
- 5.1 準備excel檔案,并將控制元件拖入作業區
- 5.2 Excel控制元件設定
- 5.3 啟動轉換,預覽資料
- 六 、json檔案輸入
- 6.1 json基本組成
- 6.2 JSON Path
- 6.3 實踐操作
- 6.3.1 準備json檔案,并將json input控制元件拖入作業區
- 6.3.2 JSON 控制元件設定
- 6.3.3 啟動轉換,預覽資料
- 七、xml 輸入
- 7.1 準備xml檔案
- 7.2 XPath
- 7.3 實踐操作
- 7.3.1 將xml輸入控制元件拖入作業區
- 7.3.2 xml控制元件設定
- 7.3.3 啟動轉換,預覽資料
- 八、表輸入
- 8.1 將表輸入控制元件拖入作業區
- 8.2 表輸入控制元件設定
- 8.3 啟動轉換,預覽表資料
- 九、 生成記錄
- 9.1 將生成記錄控制元件拖入作業區
- 9.2 生成記錄控制元件設定
- 9.3 啟動轉換,預覽資料
- 十、小結
序言
快速上手kettle開篇中,我們將kettle比作壺,并對這個壺做了簡單介紹,
而上一期中我們實作了①將csv檔案通過kettle轉換成excel檔案;
②將excel檔案通過kettle寫入到MySQL資料庫表中 這兩個案例,
相信大家跟我一樣,對kettle已經有了初步認識,并且對這強大的工具產生了興趣,
今天這小節,我們來看看kettle 這“壺”里面到底能放些啥東西?
一 、kettle這壺能裝些啥
啟動kettle,在轉換-->輸入下面有很多東西,如下截圖,有圖可以看出這kettle“真能裝”,
可以把各種五花八門的資料丟到這壺里,kettle也是來者不拒,我們日常能用到的資料基本都能往里面塞,
--kettle能裝的東西 | --kettle能裝的東西 |
---|---|
![]() |
![]() |
一眼望去,能看到不少“大熟人”,Access輸入、CSV檔案輸入、Excel輸入、JSON輸入、XML輸入、文本檔案輸入、YAML輸入、表輸入等等
不知道你對上面提到的“大熟人”了不了解,其實不了解也沒關系,
在后面的模塊中,會把這些“大熟人”分別介紹給你,并且保證你過目不忘,再次遇到就能“稱兄道弟”
二、Access輸入
Access是微軟公司開發的一個資料庫管理軟體.它像個保險柜,可以幫你存盤和管理各種各樣的資料,
Access是我們平常會用到資料庫,接下來我們就新建一個Access資料庫為例,來簡單說一說怎么使用Access這個輸入控制元件
2.1 準備Acess資料庫和表
新建一個access資料庫,并建一個云襄傳的表,然后往里面添加一些資料 |
---|
![]() |
2.2 新建一個轉換并設定
--①將Access輸入控制元件拖入作業區 | --②選擇2.1新建的云襄傳.accdb |
---|---|
![]() |
![]() |
--③添加檔案 | --④ 選擇資料庫中資料表 |
![]() |
![]() |
--④ 獲取欄位 | --⑤ 預覽資料 |
![]() |
![]() |
2.3 啟動轉換預覽資料
--①啟動轉換 | --②預覽資料 |
---|---|
![]() |
![]() |
注: 啟動執行轉換后,Preview date tab頁面如果加載出資料說明輸入控制元件配置是成功的
三、CSV檔案輸入
CSV檔案是一個用逗號分隔的固定格式的文本檔案,這種檔案后綴名為.csv,可以用Excel或者文本編輯器打開,
在日常作業中,我們經常會需要將CSV檔案轉換為其他格式的資料
3.1 準備csv檔案,并將csv輸入控制元件拖入作業區
3.2 csv輸入控制元件設定
3.3 預覽csv文件內容
可以在設定界面點擊【預覽】 按鈕查看csv資料,也可以啟動步驟預覽資料、
-- 預覽按鈕預覽資料 | --啟動步驟預覽csv檔案 |
---|---|
![]() |
![]() |
四、文本檔案輸入
我們經常需要將服務器上的日志檔案(文本檔案)資料或者其他文本資料提取出來,然后放到excel,這樣查看起來就很方便
4.1 準備txt格式文本檔案,并將控制元件拖入作業區
4.2 文本輸入控制元件設定
--①選擇txt文本檔案 | --②預覽檔案內容 |
---|---|
![]() |
![]() |
--③設定分割符 | --④ 獲取欄位 |
![]() |
![]() |
4.3 啟動步驟,瀏覽資料
五、Excel輸入
excel 對于我們來說并不陌生,時我們平常接觸到最多的檔案格式
5.1 準備excel檔案,并將控制元件拖入作業區
5.2 Excel控制元件設定
--① 選擇excel檔案 | --② 獲取作業表名稱 |
---|---|
![]() |
![]() |
-- ③ 獲取欄位,并設定資料格式 | --④ 預覽資料 |
![]() |
![]() |
5.3 啟動轉換,預覽資料
上一步【預覽記錄】 如果有資料顯示出來,基本上excel設定時成功的了
當然我們可以啟動轉換,然后預覽excel檔案中的資料
六 、json檔案輸入
json 可以算是現在市面上用的比較多的資料結構了,是JavaScript物件,是一種輕量級的資料交換格式,
可以很方便的在不同語言之間傳遞
6.1 json基本組成
- 物件:{ }
- 陣列:[ ]
- 屬性:key:value
6.2 JSON Path
JSON Path 用來定位json節點資料
Json Path 包含兩種寫法
-
點記法:$.store.book[0].title
-
括號記法:$ [ ‘ store ’ ] [ ‘ book ’ ] [ 0 ] [ ‘title’ ]
使用程序中一些常用符號 含義
--符號 | --描述 |
---|---|
$ |
查詢根節點物件,用于表示一個json資料,可以陣列或物件 |
@ |
表示當前節點物件,類似于Java中的this物件 |
* |
可以表示一個數字或字符 |
'' |
類似于遞回搜索 |
.<name> |
表示一個子節點 |
['<name>'(,'<name>')] |
表示一個或多個子節點 |
[<number>(,<number>)] |
表示一個或多個陣列下標 |
[start:end] |
陣列片段,區間為(start,end) 不包含end |
[?(<expression>)] |
過濾器運算式,結果為Boolean型別 |
上面說了一些常用符號的使用,我們就以實際的json為例,來看看json里的節點怎么取
{
"data":{
"longSeason":[
{ "actor":"范偉",
"role":"王響",
"sex":"男",
"age":56
},
{ "actor":"秦昊",
"role":"龔彪",
"sex":"男",
"age":40
},
{ "actor":"李庚希",
"role":"沈默",
"sex":"女",
"age":18
},
{ "actor":"陳明昊",
"role":"馬德勝",
"sex":"男",
"age":55
}
],
"surname":[
{ "actor":"陳曉",
"role":"云襄",
"sex":"男",
"age":28
},
{ "actor":"毛曉彤",
"role":"舒亞男",
"sex":"女",
"age":18
},
{ "actor":"許齡月",
"role":"柯夢蘭",
"sex":"女",
"age":18
},
{
"actor":"劉冠麟",
"role":"金十兩",
"sex":"男",
"age":35
},
{ "actor":"唐曉天",
"role":"蘇鳴玉",
"sex":"男",
"age":25
}
]
}
}
--取出漫長季節中所有演員 | --結果 |
---|---|
$.data.longSeason[*].actor | ["范偉","秦昊","李庚希","陳明昊"] |
$..longSeason..actor | ["范偉","秦昊","李庚希","陳明昊"] |
6.3 實踐操作
6.3.1 準備json檔案,并將json input控制元件拖入作業區
6.3.2 JSON 控制元件設定
--① 選擇json檔案并添加 | --② 選擇欄位 |
---|---|
![]() |
![]() |
-- ③ 查看運算式 | -- ④ 預覽節點資料 |
![]() |
![]() |
6.3.3 啟動轉換,預覽資料
七、xml 輸入
xml是一種可擴展標記語言,XML 和上面說的json一樣用來傳輸和存盤資料
7.1 準備xml檔案
我們后面的演示都用下面的xml為例子
<data>
<longSeason>
<actor>范偉</actor>
<role>王響</role>
<sex>男</sex>
<age>56</age>
</longSeason>
<longSeason>
<actor>秦昊</actor>
<role>龔彪</role>
<sex>男</sex>
<age>40</age>
</longSeason>
<longSeason>
<actor>李庚希</actor>
<role>沈默</role>
<sex>女</sex>
<age>18</age>
</longSeason>
<longSeason>
<actor>陳明昊</actor>
<role>馬德勝</role>
<sex>男</sex>
<age>55</age>
</longSeason>
<surname>
<actor>陳曉</actor>
<role>云襄</role>
<sex>男</sex>
<age>28</age>
</surname>
<surname>
<actor>毛曉彤</actor>
<role>舒亞男</role>
<sex>女</sex>
<age>18</age>
</surname>
<surname>
<actor>許齡月</actor>
<role>柯夢蘭</role>
<sex>女</sex>
<age>18</age>
</surname>
<surname>
<actor>劉冠麟</actor>
<role>金十兩</role>
<sex>男</sex>
<age>35</age>
</surname>
<surname>
<actor>唐曉天</actor>
<role>蘇鳴玉</role>
<sex>男</sex>
<age>25</age>
</surname>
</data>
7.2 XPath
在說json輸入控制元件中,我么介紹了JSON Path, 這里是xml輸入控制元件,也有類似XPath 來定位xml中節點的位置
--運算式 | --描述 |
---|---|
nodename | 選取此節點的所有節點 |
/ | 從根節點選取 |
// | 從匹配選擇的當前節點選擇檔案中的節點,而不考慮他們的位置 |
. | 選取當前節點 |
.. | 選取當前節點的父節點 |
@ | 屬性 |
--取出漫長季節中所有演員 | --結果 |
---|---|
/data/longSeason/actor | ["范偉","秦昊","李庚希","陳明昊"] |
7.3 實踐操作
7.3.1 將xml輸入控制元件拖入作業區
7.3.2 xml控制元件設定
--① 選擇xml檔案并添加 | -- ② 獲取xml檔案讀取路徑 |
---|---|
![]() |
![]() |
-- ③ 獲取欄位 | -- ④ 預覽 |
![]() |
![]() |
7.3.3 啟動轉換,預覽資料
八、表輸入
由于涉及到資料庫表相關操作,所以我們新建轉換之后需要先建立DB連接,
建立DB連接的方式我們在上一小節小試牛刀中已經提過,這里就不展開了,我們還是以MySQL為例子來說表輸入,
8.1 將表輸入控制元件拖入作業區
8.2 表輸入控制元件設定
-- ①獲取SQL查詢陳述句 | -- ② 點擊【預覽】按鈕預覽表資料 |
---|---|
![]() |
![]() |
8.3 啟動轉換,預覽表資料
九、 生成記錄
在日常作業中我們經常需要批量造一些測驗資料,通過生成記錄這個輸入控制元件就可以完成,
9.1 將生成記錄控制元件拖入作業區
9.2 生成記錄控制元件設定
-- ① 填寫需要資料的相關資訊 | -- ② 預覽生成的資料 |
---|---|
![]() |
![]() |
9.3 啟動轉換,預覽資料
到此,10條測驗資料就造好了
十、小結
本篇文章我們主要是說了九個kettle的常用輸入控制元件(kettle壺里能放寫啥東西進去),
kettle的輸入控制元件就代表著kettle能處理一些什么格式的資料,其實它還有其他輸入控制元件,這里就不一一例舉了,
大家如果感興趣,可以將輸入下面的每個控制元件都去試試,
本期內容到此就結束了,希望對你有所幫助,
這一期說了輸入控制元件,那下一期就到了輸出控制元件了
我們下一期再見 (●'?'●)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/554301.html
標籤:其他
上一篇:Django遷移資料庫編碼錯誤
下一篇:返回列表