hadoop資料容易出現錯誤的地方

2022-05-05 22:33:10 字數 3336 閱讀 7878

最近在搞關於資料分析的專案,做了一點總結。

下圖是系統的資料流向。

容易出現錯誤的地方。

1、資料進入hadoop倉庫

有四種**,這四種是最基本的資料,簡稱ods,original data source,後續 的資料都是有這些組合而來

a、日誌檔案

b、http介面

c、db查詢

d、建表指向

最後資料都是以hadoop檔案的形式存放在hadoop中。

日誌檔案:

http介面:

db:

建表指向:

2、hadoop檔案

hadoop.apache.org

3、hive

參考資料hive.apache.org

hive是基於hadoop的乙個資料倉儲工具,可以將結構化的資料檔案對映為一張資料庫表,並提供完整的sql查詢功能,可以將sql語句轉換為mapreduce任務進行執行。 其優點是學習成本低,可以通過類sql語句快速實現簡單的mapreduce統計,不必開發專門的mapreduce應用,十分適合資料倉儲的統計分析。

通過建立hive表,將資料load進入hive表。

drop table if exists rpt_crm_cube_kpi_reserve_room_gb_seq;

create external table rpt_crm_cube_kpi_reserve_room_gb_seq (

report_date string,

area_name string,

manager_name string,

manager_user_id string,

assistant_name string,

hotel_seq string,

hotel_name string,

hotel_grade string,

tree_code string,

city_name string,

confirmed bigint,

reserve_room bigint,

instant_confirmed bigint

) partitioned by (dt string)

*row format delimited*

* fields terminated by '\001'*

* collection items terminated by '\002'*

* map keys terminated by '\003'*

* lines terminated by '\n'*

*stored as inputformat*

* 'com.hadoop.mapred.deprecatedlzotextinputformat'*

*outputformat*

* 'org.apache.hadoop.hive.ql.io.hiveignorekeytextoutputformat'*

location '/user/qhstats/rpt/rpt_crm_cube_kpi_reserve_room_gb_seq';

* *標記的地方為約定好的,不能出錯,否則資料載入就會出錯 *

insert overwrite table rpt_crm_cube_kpi_gb_sales partition (dt = '$date', kpi = 'all_lose')

select

3 as target_id,

peer.report_date,

peer.area_name,

peer.tree_code,

peer.manager_name,

peer.manager_user_id,

peer.object,

peer.completed,

rank() over (partition by peer.tree_code order by if(peer.object = 0, -1, 1 - peer.completed * 1.0 / peer.object) desc) as peer_rank,

count(1) over (partition by peer.tree_code) as peer_count,

parent.peer_rank as parent_rank,

parent.peer_count as parent_count

from (

select

report_date,

area_name,

manager_name,

manager_user_id,

tree_code,

sum(1) as object,

sum(if(is_lose = 1, 0, 1)) as completed

from

rpt_crm_cube_kpi_lose_gb_seq

where

dt = '$date' and type='all'

group by report_date, area_name, manager_name, manager_user_id, tree_code

) peer

inner join (

select

*from

rpt_crm_cube_kpi_gb_tree_code

where

dt = '$date' and kpi = 'all_lose'

) parent

on peer.tree_code = parent.tree_code;

eof}

容易出錯的地方:

4、hive表匯入到db

hive的資料可以匯入到db

function export_to_crm_cube 

容易出錯的地方:

資料的準確性保證需要依賴一下幾點:

取數的正確性,從那些地方取資料。

資料邏輯的正確性,產品提供的資料邏輯是否正確。

資料的準確性,資料邏輯翻譯為**是否正確

前端的呈現,資料都吐正確了,前端是否正確的展現給使用者。

總結了資料從hadoop到使用者過程中,如意出錯的地方,知道那可以出錯了,就知道該怎麼應對了。

javascript程式設計容易出現的錯誤

var list document.getelementbyid list items one two three four el for var i 0 items i i document fragments 是乙個dom元素容器,可以使用它同時新增這些元素到頁面中。document fragm...

C 程式設計時容易出現的錯誤

1.動態建立二維陣列的方法 int arrry 4行五列 array new int 4 for int i 0 i 3 i array i new int 5 2.過載等號後,初始化第二個物件時可以用第乙個物件 3.比較字串a 20 與b 20 是否相等,用strcmp a,b 而不是if a 2...

pygame安裝以及容易出現的錯誤

注意 pygame的安裝版本一定要和python的一致 1 在cmd命令框中輸入 pip installpygame 1.9.6 cp37 cp37m win amd64.whl時提示這個檔案應該像乙個檔名 這時候在檔名前加上檔案路徑即可 2 在cmd命令框進入安裝路徑後可能會提示如下 這時可以根據...