日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hive相对于oracle的优点,【Hive】Hive面试题

發布時間:2025/3/21 编程问答 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hive相对于oracle的优点,【Hive】Hive面试题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、hive的join有幾種方式,怎么實現join的?

left join

--以左表為基準,不符合的值以null值顯示

--工作中以left join 居多,大表加載小表的形式

select empno,ename,emp.deptno,dname from emp left join dept on

emp.deptno=dept.deptno;

right join

--以右表為基準,不符合的值以null值顯示

select empno,ename,emp.deptno,dept.deptno from emp right join

dept on emp.deptno=dept.deptno;

full join

select empno,ename,emp.deptno,dept.deptno from emp full join

dept on emp.deptno=dept.deptno;

===============================================

2、hive內部表與外部表的區別

Hive

創建內部表時,會將數據移動到數據倉庫指向的路徑;若創建外部表,僅記錄數據所在的路徑,不對數據的位置做任何改變。

在刪除表的時候,內部表的元數據和數據會被一起刪除,而外部表只刪除元數據,不刪除數據。這樣外部表相對來說更加安全些,數據組織也更加靈活,方便共享源數據。

1、在導入數據到外部表,數據并沒有移動到自己的數據倉庫目錄下,也就是說外部表中的數據并不是由它自己來管理的!而表則不一樣;

2、在刪除表的時候,Hive將會把屬于表的元數據和數據全部刪掉;而刪除外部表的時候,Hive僅僅刪除外部表的元數據,數據是不會刪除的!

===========================================================

3、hive表關聯要注意什么,任意兩張表都可以關聯么?

===========================================================

4、hive是如何實現分區的?

Hive中的分區就是分目錄,把一個大的數據集根據業務需要分割成更小的數據集。

===========================================================

5、hive支持not in 么?

hive在0.13版本后已經支持in和not in了!hive已經越來越像我們平時使用的關系型數據庫了!

===============================================

6、 Hive有那些方式保存元數據的,各有那些特點。

1) 內存數據庫derby,較小,不常用

2) 本地mysql,較常用

3) 遠程mysql,不常用

===============================================

7、hive如何優化,列舉說明

hive查詢操作優化

-------group by 優化---------

set hive.groupby.skewindata=true 如果是group

by過程出現傾斜應該設置為true;

set hive.groupby.mapaggr.checkintenval=1000000;

這個是group的鍵對應的記錄條數超過這個值則會進行優化

-----------join優化-------------------

set

hive.optimize.skewjoin=true;如果是join過程出現傾斜 應該設置為true

set

hive.skewjoin.key=1000000;--這個是join的鍵對應的記錄條數超過這個值則會進行優化

-----------mapjoin-----------------

當表小于25mb的時候,小表自動注入內存

set hive.auto.convert.join=true;

set

hive.mapjoin.smalltable.filesize=25mb;?默認值是25mb

===========================================================

8、hive底層與數據庫交互原理

Hive的查詢功能是由hdfs + mapreduce結合起來實現的

Hive與mysql的關系:只是借用mysql來存儲hive中的表的元數據信息,稱為metastore

===========================================================

9、hive如何權限控制?

Hive從0.10版本(包含0.10版本)以后可以通過元數據來控制權限,Hive-0.10之前的版本對權限的控制主要是通過Linux的用戶和用戶組來控制,不能對Hive表的CREATE、SELECT、DROP等操作進行控制,當然Hive基于元數據來控制權限也不是完全安全的,目的就是為了防止用戶不小心做了不該做的操作

===========================================================

10、hive能像關系型數據庫那樣,建多個庫么?

===========================================================

11、hive中sort by和order by的區別?

使用order by會引發全局排序

使用distribute和sort進行分組排序

===========================================================

12、hive中的壓縮格式各有什么區別?

RCFile

RCFile是Hive推出的一種專門面向列的數據格式。

它遵循“先按列劃分,再垂直劃分”的設計理念。當查詢過程中,針對它并不關心的列時,它會在IO上跳過這些列。需要說明的是,RCFile在map階段從

遠端拷貝仍然是拷貝整個數據塊,并且拷貝到本地目錄后RCFile并不是真正直接跳過不需要的列,并跳到需要讀取的列,

而是通過掃描每一個row group的頭部定義來實現的,但是在整個HDFS Block 級別的頭部并沒有定義每個列從哪個row

group起始到哪個row

group結束。所以在讀取所有列的情況下,RCFile的性能反而沒有SequenceFile高。

TextFile:

Hive默認格式,數據不做壓縮,磁盤開銷大,數據解析開銷大。

可結合Gzip、Bzip2、Snappy等使用(系統自動檢查,執行查詢時自動解壓),但使用這種方式,hive不會對數據進行切分,從而無法對數據進行并行操作。

SequenceFile:

SequenceFile是Hadoop API

提供的一種二進制文件,它將數據以的形式序列化到文件中。這種二進制文件內部使用Hadoop 的標準的Writable

接口實現序列化和反序列化。它與Hadoop API中的MapFile 是互相兼容的。Hive 中的SequenceFile

繼承自Hadoop API 的SequenceFile,不過它的key為空,使用value 存放實際的值, 這樣是為了避免MR

在運行map 階段的排序過程

===========================================================

13、hive的兩張表關聯,使用mapreduce是怎么寫的?

===========================================================

14、hive相對于Oracle來說有哪些優點?

hive 是數據倉庫,oracle是數據庫,hive

能夠存儲海量數據,hive還有更重要的作用就是數據分析,最主要的是免費。

1

hive表關聯查詢,如何解決數據傾斜的問題?

傾斜原因:

map輸出數據按key

Hash的分配到reduce中,由于key分布不均勻、業務數據本身的特、建表時考慮不周、等原因造成的reduce

上的數據量差異過大。

1)、key分布不均勻;

2)、業務數據本身的特性;

3)、建表時考慮不周;

4)、某些SQL語句本身就有數據傾斜;

如何避免:對于key為空產生的數據傾斜,可以對其賦予一個隨機值。

解決方案

1>.參數調節:

hive.map.aggr = true

hive.groupby.skewindata=true

有數據傾斜的時候進行負載均衡,當選項設定位true,生成的查詢計劃會有兩個MR Job。第一個MR

Job中,Map的輸出結果集合會隨機分布到Reduce中,每個Reduce做部分聚合操作,并輸出結果,這樣處理的結果是相同的Group

By Key有可能被分發到不同的Reduce中,從而達到負載均衡的目的;第二個MR Job再根據預處理的數據結果按照Group By

Key 分布到 Reduce 中(這個過程可以保證相同的 Group By Key

被分布到同一個Reduce中),最后完成最終的聚合操作。

2>.SQL 語句調節:

1)、選用join key分布最均勻的表作為驅動表。做好列裁剪和filter操作,以達到兩表做join

的時候,數據量相對變小的效果。

2)、大小表Join:

使用map join讓小的維度表(1000 條以下的記錄條數)先進內存。在map端完成reduce.

4)、大表Join大表:

把空值的key變成一個字符串加上隨機數,把傾斜的數據分到不同的reduce上,由于null

值關聯不上,處理后并不影響最終結果。

5)、count distinct大量相同特殊值:

count distinct 時,將值為空的情況單獨處理,如果是計算count

distinct,可以不用處理,直接過濾,在最后結果中加1。如果還有其他計算,需要進行group

by,可以先將值為空的記錄單獨處理,再和其他計算結果進行union。

2.

請談一下hive的特點是什么?hive和RDBMS有什么異同?

hive是基于Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,并提供完整的sql查詢功能,可以將sql語句轉換為MapReduce任務進行運行。其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合數據倉庫的統計分析。

3. 請把下一語句用hive方式實現?

SELECT a.key,a.value

FROM a

WHERE a.key not in (SELECT b.key FROM b)

答案:

select a.key,a.value from a where a.key not exists (select b.key

from b)

4. Multi-group by

是hive的一個非常好的特性,請舉例說明

from A

insert overwrite table B

select A.a, count(distinct A.b) group by A.a

insert overwrite table C

select A.c, count(distinct A.b) group by A.c

5. 請說明hive中 Sort By,Order By,Cluster

By,Distrbute By各代表什么意思。

order

by:會對輸入做全局排序,因此只有一個reducer(多個reducer無法保證全局有序)。只有一個reducer,會導致當輸入規模較大時,需要較長的計算時間。

sort by:不是全局排序,其在數據進入reducer前完成排序。

distribute by:按照指定的字段對數據進行劃分輸出到不同的reduce中。

cluster by:除了具有 distribute by 的功能外還兼具 sort by 的功能。

6.簡要描述數據庫中的

null,說出null在hive底層如何存儲,并解釋selecta.* from t1 a left outer join t2 b

on a.id=b.id where b.id is null; 語句的含義

null與任何值運算的結果都是null, 可以使用is null、is not null函數指定在其值為null情況下的取值。

null在hive底層默認是用'\N'來存儲的,可以通過alter table test SET

SERDEPROPERTIES('serialization.null.format' = 'a');來修改。

查詢出t1表中與t2表中id相等的所有信息。

7.寫出hive中split、coalesce及collect_list函數的用法(可舉例)。

Split將字符串轉化為數組。

split('a,b,c,d' , ',') ==> ["a","b","c","d"]

COALESCE(T v1, T v2, …) 返回參數中的第一個非空值;如果所有值都為 NULL,那么返回NULL。

collect_list列出該字段所有的值,不去重?select collect_list(id)

from table;

8.寫出將 text.txt 文件放入 hive 中 test

表‘2016-10-10’ 分區的語句,test 的分區字段是 l_date。

LOAD DATA LOCAL INPATH '/your/path/test.txt' OVERWRITE INTO TABLE

test PARTITION (l_date='2016-10-10')

總結

以上是生活随笔為你收集整理的hive相对于oracle的优点,【Hive】Hive面试题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 法国空姐在线观看视频 | 久久久噜噜噜久久久 | 成年人视屏 | caopor超碰| 国产午夜精品免费一区二区三区视频 | 理论片琪琪午夜电影 | 制服丝袜一区 | 国产一区二区三区四区 | 2019国产在线 | av三级 | 亚洲涩涩视频 | 亚洲精品aⅴ中文字幕乱码 国产精品调教视频 | 久草精品在线观看视频 | 亚洲国产午夜 | 欧美日韩在线一区二区三区 | 成人h视频 | 中文字幕精品一区久久久久 | 久在线观看视频 | 国产美女av在线 | 男女av免费| 天天舔天天射 | 欧美国产不卡 | 少妇人妻一区二区 | 伊人久久精品 | 加勒比在线免费视频 | 日韩中文字幕在线看 | 国产黄a三级三级三级看三级男男 | 精品电影在线观看 | 免费一区二区三区 | 久久精品亚洲精品国产欧美 | 色牛av| 国产精品一色哟哟哟 | 成人欧美视频 | 国产精品偷伦视频免费看 | 午夜在线免费观看视频 | 国产极品久久 | 激情都市一区二区 | 无码一区二区三区 | 青青草欧美 | 午夜高潮视频 | 亚洲国产一区在线 | 天天爱天天色 | 亚洲视频成人 | 久久久久香蕉 | 国产精品美女一区二区 | 小小姑娘电影大全免费播放 | 久久久久久久久久久福利 | 青青草精品视频 | 91久久久久一区二区 | 人人妻人人澡人人爽精品日本 | 中文字字幕在线中文乱码电影 | 中文字幕五码 | 婷婷综合在线观看 | 欧美性猛交xxxx免费看久久久 | 久久精品牌麻豆国产大山 | 国产亚洲精品久久久久久打不开 | 中文日韩字幕 | 一区二区三区四区日韩 | 午夜婷婷色 | 国产精品麻豆一区二区 | 国产传媒欧美日韩 | 欧美aaaaaa | _级黄色片 | 狠狠爱综合 | 91在线精品秘密一区二区 | 国产在线观看精品 | 天堂在线免费观看视频 | 亚洲天堂中文字幕在线观看 | 成人乱码一区二区三区av | 国产精品无码一区二区三区三 | 欧美日韩一二三 | 色av网| 日韩美女黄色片 | 精品国自产拍在线观看 | 欧美 日韩 国产 在线 | 黄色三级视频网站 | 久久免费观看视频 | 毛片免费一区二区三区 | www.youjizz.com在线观看 | wwwxx国产| 国产精品三区在线观看 | 欧美片网站免费 | 久久8| 日韩中文字幕高清 | 色峰视频 | 秋霞国产 | 波多野结衣在线播放 | 就爱操av | 日韩69视频 | 亚洲精品18 | 成人久久国产 | 香港黄色网 | 蜜桃视频中文字幕 | a级片在线 | avtt在线播放 | 国产成人精品一区在线播放 | 黄色大全免费看 | 姐姐你真棒插曲快来救救我电影 | 精品欧美一区二区三区 |