利用Kettle轉儲接口數據


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,輸入城市需要檢索的地點,返回建議值,效果如下:

 

http://api.map.baidu.com/place/v2/suggestion?query=%E6%98%A5%E7%86%99%E8%B7%AF&region=%E6%88%90%E9%83%BD%E5%B8%82&output=json&ak=n0lHarpY3QZx6xXXIaWMFLxj

這里我們測試接口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地址粘貼出來即可。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM