建立視圖

1.建立視圖,視圖是個虛表
create view v1 as select a.id aid,a.name,b.id bid,b.orderno from customers a left outer join default.ttt b on a.id=b.cid;//建立視圖字段不要重複,若是有重複須要b.id bid進行重複命名
2.查看視圖
show tables;
3.子查詢,將查詢出來的結果再進行一次過濾
select aid from v1 ;
4.笛卡爾積:兩個表之間不加任何成分作鏈接,express

map端鏈接:
$hive>set hive.auto.convert.join=true; //設置自動轉換鏈接,默認機試true
//使用mapjoin鏈接按時實現map鏈接
$hive> select /+mapjoin(customers)/ a.,b. from customers aleft outer join orders b on a.id = b.cid;
調優
-----------------------------
1.使用explain查看查詢計劃
OK
STAGE DEPENDENCIES:
Stage-1 is a root stage
Stage-0 depends on stages: Stage-1apache

STAGE PLANS:
Stage: Stage-1
Map Reduce
Map Operator Tree:
TableScan
alias: customers
Statistics: Num rows: 1 Data size: 38 Basic stats: COMPLETE Column stats: COMPLETE
Select Operator
Statistics: Num rows: 1 Data size: 38 Basic stats: COMPLETE Column stats: COMPLETE
Group By Operator
aggregations: count()
mode: hash
outputColumnNames: _col0
Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
Reduce Output Operator
sort order:
Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
value expressions: _col0 (type: bigint)
Reduce Operator Tree:
Group By Operator
aggregations: count(VALUE._col0)
mode: mergepartial
outputColumnNames: _col0
Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
File Output Operator
compressed: false
Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE
table:
input format: org.apache.hadoop.mapred.SequenceFileInputFormat
output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDeoop

Stage: Stage-0
Fetch Operator
limit: -1
Processor Tree:
ListSink優化

二、設置limit優化策略,避免所有查詢
hive>set hive.limit.optimize.enable=true;

設置本地模式運行
$hive>set mapred.job.tracker=local;
//設置爲自動本地模式
$hive>set hive.exec.mode.local.auto=true;
//並行執行
$hive>set hive.exec.parallel=true;    //設置並行查詢,只是執行不存在依賴關係的階段
//嚴格模式:至少指定一個靜態分區,不能都是動態的
$hive>set hive.mapred.mode =strict    //1.嚴格模式必定要指定分區表,不然不讓查詢
                                                            //2.order by時必須使用limit子句
                                                            //不容許笛卡爾積查詢
//設置MR的數量
相關文章
相關標籤/搜索