1. 程式人生 > >實習3個月大資料開發的一點理解

實習3個月大資料開發的一點理解

     大資料是什麼呢?對於我剛進去的我來說只知道資料量大,但還不清楚資料量大有什麼影響。在接下來我接手了公司的專案有了更深刻的瞭解。

     一般的專案中,後臺一般都會有增刪改查,資料都是直接返回給頁面的,處理的資料量也不是很大,能很快返回。但是到了大資料專案,前臺的BI要求不僅僅是直接返回資料了,而是具體到實際應用。比如說我想知道成績表中,60以下,60-70,70-80,80-90,90-100,各個成績的人數是多少;我想知道每一個學院不及格人數對比前年的不及格人數增加了還是減少了等等實際的問題。如果在Java的邏輯層中直接返回資料庫中的資料在對資料做相應的篩選和合並,結果需要非常久的時間,因為成績表一學期大概就有80萬條。如果每一種具體的實際業務都用後臺來處理,頁面資料載入將會非常的慢,而且對於Mysql的壓力會非常的大。

      在企業當中一般會使用Hive來對資料進行儲存,用Hadoop來構建分散式計算。這樣就能夠處理快速的處理大量的資料,並且得到頁面所需要的資料。

        其實對於大資料專案而已,後臺只是做查詢和某些資料的合併返回給前臺。大部分的業務邏輯都放在離線計算上。一般而言都是用SQL語句對Hive資料庫進行資料的抽取和轉換和計算,然後插入到Mysql當中。

        其中資料轉換或者叫資料清洗是最為複雜和煩惱的過程,我遇到比較多的情況是在業務系統中往往出現大量的空欄位和資料的格式不符合要求。往往是經過計算後,得出的結果不正確,又要回頭去尋找哪些資料為空或者出現數據不正確。