5- ABC遷移大數據1

從這部份開始,我們整體從ABC的ORACLE環境,遷移到大數據的HIVE環境,並且讓系統自動調度,定時進行數據的計算。

本節我們遷移基礎表的數據,主要是構建我們的ODS數據同步,另一個是邏輯的遷移,主要是從ORACLE的語法,遷移到HIVE的語法。

ABC遷移大數據倉庫架構圖:

本節具體腳本可以參見:https://github.com/blt328/abc_hive

1.表結構遷移見:5-ABC遷移大數據1_建表.sql文件

drop table if exists ods_subj_acco;

create external table ods_subj_acco

(

month_code                   string comment '月份',

dept_code                    string comment '機構代碼',

subj_code                    string comment '科目代碼',

subj_name                    string comment '科目名稱',

post_name                    string comment '崗位名',

car_no                       string comment '車牌號',

amt                          double comment '金額',

load_tm                      string comment '加載時間'

)comment 'ODS財務成本接口表'

PARTITIONED BY  (hq_month_code string)

row format delimited fields terminated by '\001'

location '/dm/blt/bsl/ods_subj_acco';

 

--手動增加分區並指定目錄

alter table ods_subj_acco add partition (hq_month_code='201905') location '/dm/blt/bsl/ods_subj_acco/201905';

alter table ods_subj_acco add partition (hq_month_code='201906') location '/dm/blt/bsl/ods_subj_acco/201906';

 

--刪除分區

alter table ods_subj_acco drop partition (hq_month_code='201905');

--刪除DFS上的目錄

dfs -rm -r -f /dm/blt/bsl/ods_subj_acco/hq_month_code=201905;

注意:因這個表是ODS層級的表,需要從源頭同步數據過來,所以我們需要手動建立分區並指定目錄,如果是在HIVE生成的數據,我們在建表的時候可以不用手動建立分區,HIVE會自動建立分區目錄。

 

2.ETL數據同步見:5-ABC遷移大數據1_ETL.sql文件

sqoop import --connect "jdbc:oracle:thin:@192.168.1.102:1521:orcl" --username "blt" --password "orcl" --query "select * from ods_subj_acco WHERE \$CONDITIONS and 1=1 and month_code='201905'" --null-string '\\N' --null-non-string '\\N'  --target-dir /dm/blt/bsl/ods_subj_acco/201905 --fields-terminated-by '\001' --hive-drop-import-delims  --split-by month_code -m 8 --delete-target-dir

我們從源頭做數據同步到HIVE數據倉庫上。

 

3.程序遷移見:5-ABC遷移大數據1_p_abc_fct_reso_list.hql文件

在linux環境下創建我們的項目目錄:

目錄名

說明

/blt/abc/reso

ABC資源目錄

/blt/abc/log

ABC日誌目錄

 

 

 

Hql腳本樣例如下:

4.調度腳本見:5-ABC遷移大數據1_p_abc_fct_reso_list.sh

腳本:

執行腳本:sh /blt/abc/reso/5-ABC遷移大數據1_p_abc_fct_reso_list.sh >/blt/abc/log/ABC遷移大數據1_p_abc_fct_reso_list.log

執行完後可以看到日誌信息:

更多技術文章請關注公衆號BLT328(長按後點識別圖中二維碼):

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章