hive導(dǎo)出數(shù)據(jù)到db2和td

公司近期搭建了hadoop集群,改造前后的體系架構(gòu)如下:

http://www.itdecent.cn/writer#/notebooks/9498314/notes/8936965/writing

?????? 從圖中可以看出用hive庫,替代了db2和td中的cdr層,也就是業(yè)務(wù)處理邏輯層,之后再把匯總數(shù)據(jù)抽取到db2和td,在此聊聊抽取到兩個庫中的用法。

??????? 由于本次抽取需要生成落地文件,所以并沒有用sqoop直接抽取到傳統(tǒng)的數(shù)據(jù)庫,而是采用insert?overwrite locat導(dǎo)出文件到本地系統(tǒng),之后load裝載到db2

》抽取hive匯總層數(shù)據(jù),生成文件

???? ? insert overwrite local在沒有設(shè)置hive配置的時,導(dǎo)出的文件是壓縮文件,所以這里需要添加配置,語法如下:

hive?-e?"set?mapred.job.queue.name=app;set?hive.exec.compress.output=false;set?hive.exec.compress.intermediate=false;insert?overwrite?local?directory?'/data8/demo'?row?format?delimited?fields?terminated?by?'^'??select?*?from?test_hive_table where?op_month= 201701 and?op_time= 20170111 and?op_hour= 2017011111 ;?"

??????? 其中生成了文件000000_0,定義生成的文件按照^分隔,所以采用:row?format?delimited?fields?terminated?by?'^'

??????? 在有安裝hive客戶端的crt上執(zhí)行以上語法,會在本地文件目錄/data8/demo中把查詢語句的數(shù)據(jù)生成不壓縮文件,存儲到目錄中

???????? 注意查詢條件按照分區(qū)查詢,這樣比較快,因為在hadoop中存儲hdfs文件是按照分區(qū)建立的目錄

》把文件裝載到db2

db2文件導(dǎo)入:

db2?"load?client?from /data8/demo/000000_0of?del?modified?by?coldel0x5E?codepage=1208?fastparse?anyorder?warningcount?1?messages/data8/log/load.log?insert?into?gzdb.test_hive_table NONRECOVERABLE"

或者不生成db2日志裝載:

db2?"load?client?from /data8/demo/000000_0of?del?modified?by?coldel0x5E?codepage=1208?replace?into?gzdb.test_hive_table NONRECOVERABLE"

》td裝載

td采用公司封裝的命令,在此不與論述

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容