基於Sqoop和Hadoop的資料質量分析報告

2021-06-11 01:00:23 字數 1076 閱讀 1176

乙個系統的資料質量不高通常是軟體本身做的不夠好,資料從源頭就出現了問題。所以 有人說,搞軟體開發做什麼都不要做inte***ce,因為即使是再久遠的inte***ce,都會時不時的給你來個ssc,而且他們還會把你5個字母的名字拼錯4個。。。

為了能夠持續歸總inte***ce資料質量報告,來完善系統流程,我們就需要定量定性的分析源頭資料。

首先,我們為了能夠更好的support產品issue,上游系統的訊息以及處理之後的回饋資訊,都會被儲存在關聯式資料庫裡,對於我們來說,可以簡單分析處理後的回饋資訊,按照訊息型別,訊息源系統來分類,解析message,抽取error code,最後歸總報告。

流程很清晰,但是落實到**,如果簡單利用cursor一行行讀出來處理的話,效率肯定極其低下,怎麼辦? 平行計算!可以利用mapreduce來處理。但是我們應該如何將儲存在oracle中message匯入hadoop的hdfs中呢?

sqoop ! sqoop 是乙個開源框架,用來實現hadoop和關聯式資料庫之間的資料遷移,使用截圖如下:

從執行資料遷移時的截圖可以看出sqoop本身也是基於mapreduce設計的,所以他支援並行匯入/匯出資料,更為給力的是,在匯入條件裡,你可以用sql來進行資料過濾,只匯入/匯出你關心的行或者列。但是sqoop在大資料量遷移的時候效能不是很好,尤其在oracle和hadoop之間,不過不用擔心,我們可以使用開源外掛程式來提公升sqoop資料遷移效能,比如quest connector。其實oracle本身也有類似的外掛程式,但是第一,它只支援從hadoop到oracle的資料遷移,第二,它要license。

在資料被正確匯入到hdfs之後,我們就可以開始編寫mapreduce函式了,首先在map函式裡根據訊息型別,case by case的進行text ->xml object的轉換,然後擷取反饋資訊(error code),接著在reduce函式裡面按照源系統進行分割槽,彙總,最後再利用sqoop匯入oracle。

定期的分析彙總已經結束,然後就需要持續follow了,就像每週的art報告一樣,需要定期檢視最近的介面資料質量,來持續完成系統的改進和優化。

hadoop 八 sqoop安裝與使用

一.sqoop安裝 安裝在一台節點上就可以了。1.使用winscp上傳sqoop 2.安裝和配置 新增sqoop到環境變數 將資料庫連線驅動mysql connector 5.1.8.jar拷貝到 sqoop home lib裡 二.sqoop的使用 第一類 資料庫中的資料匯入到hdfs上 sqoo...

hadoop 八 sqoop安裝與使用

一.sqoop安裝 安裝在一台節點上就能夠了。1.使用winscp上傳sqoop 2.安裝和配置 加入sqoop到環境變數 將資料庫連線驅動mysql connector 5.1.8.jar複製到 sqoop home lib裡 二.sqoop的使用 第一類 資料庫中的資料匯入到hdfs上 sqoo...

hadoop 16 sqoop匯入oracle資料

sqoop sql hadoop 1,系統方面的準備 scp ojdbc6.jar root server 1 usr hdp 2.6.0.3 8 sqoop lib scp ojdbc6.jar root server 2 usr hdp 2.6.0.3 8 sqoop lib cd usr hd...