1. 程式人生 > 其它 >hive常用基本操作(同步表,建立檢視,修復元資料metastore)

hive常用基本操作(同步表,建立檢視,修復元資料metastore)

1,建立(外部)表:

CREATE EXTERNAL TABLE `hive_user_reader`(
`read_src` string COMMENT '閱讀來源',
`source_id` string COMMENT '來源ID',
`app_version` string COMMENT '端版本號')
COMMENT '閱讀書籍表'
PARTITIONED BY (
`dt` string COMMENT '時間-天',
`log_flag` string COMMENT '日誌標記')
STORED AS PARQUET

2 ,對hive表的修改(改為內部表,新增欄位,修改欄位

 

:設定為內表
alter table hive_user_reader set TBLPROPERTIES('EXTERNAL'='false')

:新增欄位
alter table hive_user_reader add columns (欄位名 欄位型別 comment '欄位描述') cascade;
eg:
alter table table_name add columns (now_time varchar(300) comment '當前時間');



:修改欄位
alter table hive_user_reader change id app_version varchar(300);


:刪除app_version列 
ALTER TABLE hive_user_reader REPLACE COLUMNS (
read_src,source_id)

:修復分割槽表
msck repair table bi_hive_db.hive_user_reader 

  

3,拷貝表從遠端叢集到本地(跨叢集),拷貝完後記得修復分割槽表【如果沒有佇列則不要:-Dmapred.job.queue.name=root.bi_qipu.p1】

hadoop distcp -Dmapred.job.queue.name=root.bi_qipu.p1 hdfs://namenode02-jj:8020/hive/warehouse/jin_warehouse_dwd.db/hive_user_reader /hive/warehouse/jin_warehouse_dwd.db/hive_user_reader

4,拷貝從遠端叢集到本地(同叢集),拷貝完後記得修復分割槽表 【如果沒有佇列則不要:-Dmapred.job.queue.name=root.bi_qipu.p1】

拷貝 jin_warehouse_dim.db/hive_user_reader/ 下的所有分割槽 到  jin_warehouse_dwd.db/hive_user_reader/ 下
hadoop distcp -Dmapred.job.queue.name=root.bi_qipu.p1  /hive/warehouse/jin_warehouse_dim.db/hive_user_reader/ /hive/warehouse/jin_warehouse_dwd.db/hive_user_reader/

  

5,建立檢視

CREATE or REPLACE VIEW bi_hive_bi_al_v.hive_user_reader_view  COMMENT '使用者實體資料' AS 
SELECT
*
FROM bi_hive_db.hive_user_reader;