1. 項目背景
1.1. 項目背景
數據接口
API:應用程序接口(Application Program Interface)的簡稱,是實現計算機軟件之間數據通信的工具。同時API也是一種中間件,為各個平台提供數據共享。在大數據與物聯網發展的背景下,目前有大量的數據接口被提供或發掘出來,提供給開發者使用,應用到生活中的每一個細節中。本文旨在闡述kettle對於數據接口的監控、調用及其轉儲,更多詳細的數據接口內容不在此具體說明。
項目背景
本文旨在提供一種方法,以幫助同學們掌握Kettle對於數據接口的調用與轉儲,Kettle的配置方法和組件的使用具有多樣性,需要大家多多思考與發掘。
2. Kettle配置
本文使用的是Kettle 7.0版本,調用的接口為百度開發平台-百度地圖API,返回數據集為JSON格式或者XML格式,本次使用了兩種方式來存儲數據,一種是導出成EXCEL,一種是導出到關系數據庫進行存儲。
2.1. Kettle轉換的配置
總覽
總覽
校驗接口信息
我們首先拿到WebAPI的地址,測試連接的暢通,這里我使用了百度地圖的Place Suggestion API,輸入城市需要檢索的地點,返回建議值,效果如下:
這里我們測試接口URL的連通性。
這里我的接口是沒有校驗身份的,只需要輸入申請的AK就可以了。測試成功,返回的值為JSON字符串的格式。
接口信息接入
新建一個轉換,接口信息接入可以選擇EXCEL接入,文本接入,生成記錄,或者表輸入都行,視自己的情況而定,我這里因為只是測試,選用了生成記錄,並且參數值固定死,后期可以使用“${}”將參數替換出來。
利用HTTP客戶端解析數據
添加HttpClient組件,我們需要用到它作為客戶端來解析API,類似瀏覽器。
這里的URL地址我們選擇從前面的生成記錄里面獲取。注意字符集的設置,否則后面獲取到的接口數據會是亂碼。
判斷是否獲取到數據
這里添加過濾記錄組件,用來判斷是否成功從HTTP客戶端獲取到數據
解析JSON串
添加JSON輸入組件,這里從流中獲取到從API上獲取的結果作為源字段。
將JSON串解析成多個字段的形式,具體路徑需要自己先在過一下JSON串的格式,提前掌握這些信息。
嵌套循環解析JSON串
我們此次使用的JSON串,實際需要的數據實際是在其內曾的RESULT字段里面嵌套的JSON串里,所以我們需要再對RESULT字段進行解析。
輸出數據
我們這里使用了EXCEL輸出的方法,EXCEL輸出沒有特別需要強調的地方,主要需要注意的就是在這里我們只輸出需要的內部的地址信息,因為其他字段在流中也會繼承下來,這里合理選擇輸出的字段即可。
錯誤處理
錯誤處理一般來說都只是進行記錄,或者寫入日志,或者寫入日志表,或者發送報錯信息郵件到管理員郵箱。
這里不做具體講解,具體的選擇方案看項目需求而定。
運行結果
F9可執行改轉換,轉換沒有錯誤的話則進入上面一條線,並且輸出為EXCEL表格。
EXCEL展開如下圖:
3. 其他
本附件列出了一些配置過程中可能與遇到的一些問題以及解決方案。
3.1. 常見錯誤信息
在實驗過程中遇到一些錯誤在所難免,我這里提供了一些容易遇到的錯誤,給大家參考參考思路。
中文亂碼
解決方案:在使用HTTP客戶端接入的時候,需要正確選擇字符集,一般使用UTF-8是沒錯的,它能夠兼容大部分字符。在進行文本文件輸出的時候,需要正確選擇輸出的格式,盡量不在這一步做編碼轉換。
API接口無效
解決方案:在解析API接口URL路徑時,難免參數會帶上中文漢字,這里的漢字需要提前做好轉碼,這里教大家一個小技巧,使用Chome瀏覽器,把URL鏈接粘貼進去,瀏覽器會自動幫我們把編碼進行轉換。此時,再把URL地址粘貼出來即可。