1. 程式人生 > >hive表資訊查詢

hive表資訊查詢

轉自:http://www.aboutyun.com/forum.php?mod=viewthread&tid=8590&highlight=hive

問題導讀: 1.如何檢視hive表結構? 2.如何查看錶結構資訊? 3.如何檢視分割槽資訊? 4.哪個命令可以模糊搜尋表

1.hive模糊搜尋表

  show tables like '*name*'; 2.查看錶結構資訊   desc formatted table_name;   desc table_name; 3.檢視分割槽資訊   show partitions table_name; 4.根據分割槽查詢資料   select table_coulm from table_name where partition_name = '2014-02-25'; 5.檢視hdfs檔案資訊   dfs -ls /user/hive/warehouse/table02; 6.從檔案載入資料進表(OVERWRITE覆蓋,追加不需要OVERWRITE關鍵字)   LOAD DATA LOCAL INPATH 'dim_csl_rule_config.txt' OVERWRITE into table dim.dim_csl_rule_config;   --從查詢語句給table插入資料   INSERT OVERWRITE TABLE test_h02_click_log PARTITION(dt) select *    from stage.s_h02_click_log where dt='2014-01-22' limit 100; 7.匯出資料到檔案   insert overwrite directory '/tmp/csl_rule_cfg' select a.* from dim.dim_csl_rule_config a;   hive -e "select day_id,pv,uv,ip_count,click_next_count,second_bounce_rate,return_visit,pg_type from tmp.tmp_h02_click_log_baitiao_ag_sum where day_id in ('2014-03-06','2014-03-07','2014-03-08','2014-03-09','2014-03-10');"> /home/jrjt/testan/baitiao.dat; 8.自定義udf函式   1.繼承UDF類   2.重寫evaluate方法   3.把專案打成jar包   4.hive中執行命令add jar /home/jrjt/dwetl/PUB/UDF/udf/GetProperty.jar;   5.建立函式create temporary function get_pro as 'jd.Get_Property'//jd.jd.Get_Property為類路徑; 9.查詢顯示列名 及 行轉列顯示    set hive.cli.print.header=true; // 列印列名   set hive.cli.print.row.to.vertical=true; // 開啟行轉列功能, 前提必須開啟列印列名功能   set hive.cli.print.row.to.vertical.num=1; // 設定每行顯示的列數 10.查看錶檔案大小,下載檔案到某個目錄,顯示多少行到某個檔案    dfs -du hdfs://BJYZH3-HD-JRJT-4137.jd.com:54310/user/jrjt/warehouse/stage.db/s_h02_click_log;    dfs -get /user/jrjt/warehouse/ods.db/o_h02_click_log_i_new/dt=2014-01-21/000212_0 /home/jrjt/testan/;    head -n 1000 檔名 > 檔名 11.殺死某個任務  不在hive shell中執行    hadoop job -kill job_201403041453_58315 12.hive-wui路徑    

http://172.17.41.38/jobtracker.jsp 13.刪除分割槽    alter table tmp_h02_click_log_baitiao drop partition(dt='2014-03-01');    alter table d_h02_click_log_basic_d_fact drop partition(dt='2014-01-17'); 14.hive命令列操作    執行一個查詢,在終端上顯示mapreduce的進度,執行完畢後,最後把查詢結果輸出到終端上,接著hive程序退出,不會進入互動模式。    hive -e 'select table_cloum from table'    -S,終端上的輸出不會有mapreduce的進度,執行完畢,只會把查詢結果輸出到終端上。這個靜音模式很實用,,通過第三方程式呼叫,第三方程式通過hive的標準輸出獲取結果集。    hive -S -e 'select table_cloum from table'    執行sql檔案    hive -f hive_sql.sql 15.hive上操作hadoop檔案基本命令     檢視檔案大小     dfs -du /user/jrjt/warehouse/tmp.db/tmp_h02_click_log/dt=2014-02-15;     刪除檔案     dfs -rm /user/jrjt/warehouse/tmp.db/tmp_h02_click_log/dt=2014-02-15; 16.插入資料sql、匯出資料sql     1.insert 語法格式為:     基本的插入語法:     INSERT OVERWRITE TABLE tablename [PARTITON(partcol1=val1,partclo2=val2)]select_statement FROM from_statement     insert overwrite table test_insert select * from test_table;     對多個表進行插入操作:     FROM fromstatte     INSERT OVERWRITE TABLE tablename1 [PARTITON(partcol1=val1,partclo2=val2)]select_statement1     INSERT OVERWRITE TABLE tablename2 [PARTITON(partcol1=val1,partclo2=val2)]select_statement2     from test_table                          insert overwrite table test_insert1      select key     insert overwrite table test_insert2     select value;     insert的時候,from子句即可以放在select 子句後面,也可以放在 insert子句前面。     hive不支援用insert語句一條一條的進行插入操作,也不支援update操作。資料是以load的方式載入到建立好的表中。資料一旦匯入就不可以修改。     2.通過查詢將資料儲存到filesystem     INSERT OVERWRITE [LOCAL] DIRECTORY directory SELECT.... FROM .....     匯入資料到本地目錄:     insert overwrite local directory '/home/zhangxin/hive' select * from test_insert1;     產生的檔案會覆蓋指定目錄中的其他檔案,即將目錄中已經存在的檔案進行刪除。     匯出資料到HDFS中:     insert overwrite directory '/user/zhangxin/export_test' select value from test_table;     同一個查詢結果可以同時插入到多個表或者多個目錄中:     from test_insert1     insert overwrite local directory '/home/zhangxin/hive' select *      insert overwrite directory '/user/zhangxin/export_test' select value; 17.mapjoin的使用 應用場景:1.關聯操作中有一張表非常小 2.不等值的連結操作     select /*+ mapjoin(A)*/ f.a,f.b from A t join B f  on ( f.a=t.a and f.ftime=20110802)  18.perl啟動任務    perl /home/jrjt/dwetl/APP/APP/A_H02_CLICK_LOG_CREDIT_USER/bin/a_h02_click_log_credit_user.pl     APP_A_H02_CLICK_LOG_CREDIT_USER_20140215.dir >& /home/jrjt/dwetl/LOG/APP/20140306/a_h02_click_log_credit_user.pl.4.log 19.檢視perl程序    ps -ef|grep perl 20.hive命令移動表資料到另外一張表目錄下並新增分割槽    dfs -cp /user/jrjt/warehouse/tmp.db/tmp_h02_click_log/dt=2014-02-18 /user/jrjt/warehouse/ods.db/o_h02_click_log/;    dfs -cp /user/jrjt/warehouse/tmp.db/tmp_h02_click_log_baitiao/* /user/jrjt/warehouse/dw.db/d_h02_click_log_baitiao_basic_d_fact/;--複製所有分割槽資料    alter table d_h02_click_log_baitiao_basic_d_fact add partition(dt='2014-03-11') location '/user/jrjt/warehouse/dw.db/d_h02_click_log_baitiao_basic_d_fact/dt=2014-03-11'; 21.匯出白條資料     hive -e "select day_id,pv,uv,ip_count,click_next_count,second_bounce_rate,return_visit,pg_type from tmp.tmp_h02_click_log_baitiao_ag_sum where day_id like '2014-03%';"> /home/jrjt/testan/baitiao.xlsx; 22.hive修改表名     ALTER TABLE o_h02_click_log_i RENAME TO o_h02_click_log_i_bk; 23.hive複製表結構    CREATE TABLE d_h02_click_log_baitiao_ag_sum LIKE tmp.tmp_h02_click_log_baitiao_ag_sum; 24.hive官網網址    
https://cwiki.apache.org/conflue ... ionandConfiguration
   http://www.360doc.com/content/12/0111/11/7362_178698714.shtml 25.hive新增欄位    alter table tmp_h02_click_log_baitiao_ag_sum add columns(current_session_timelenth_count bigint comment '頁面停留總時長');    ALTER TABLE tmp_h02_click_log_baitiao CHANGE current_session_timelenth current_session_timelenth bigint comment '當前會話停留時間'; 26.hive開啟簡單模式不啟用mr    set hive.fetch.task.conversion=more; 27.以json格式輸出執行語句會讀取的input table和input partition資訊    Explain dependency query