版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
學(xué)習(xí)知識(shí)點(diǎn)后請(qǐng)完成以下練習(xí)題
1)數(shù)據(jù)倉(cāng)庫(kù)是為分析數(shù)據(jù)而設(shè)計(jì),它的兩個(gè)基本的元素是維度表和事實(shí)表。維是看問(wèn)題的
角度,比如時(shí)間,部門,維度表放的就是這些東西的定義,事實(shí)表里放著要查詢的數(shù)據(jù),
同時(shí)有維的ID。
A.正確
B.錯(cuò)誤
2)下面哪個(gè)不是數(shù)據(jù)倉(cāng)庫(kù)的特點(diǎn)()。(單選)
A.面向主題
B.集成
C.不可更新
D.規(guī)范化
3)數(shù)據(jù)倉(cāng)庫(kù)主要是為決策分析提供數(shù)據(jù),所涉及的操作主要是數(shù)據(jù)的查詢。數(shù)據(jù)倉(cāng)庫(kù)的數(shù)
據(jù)以只讀格式保存,且不隨時(shí)間改變,但是數(shù)據(jù)量會(huì)增加。
A.正確
B.錯(cuò)誤
4)數(shù)據(jù)倉(cāng)庫(kù)和。ds的數(shù)據(jù)源通常都是多樣化,有數(shù)據(jù)庫(kù)、文本、WebSocket接口、消息
隊(duì)列等,涉及的字段多且雜,所以元數(shù)據(jù)也需保存,即將描述數(shù)據(jù)的數(shù)據(jù)保存起來(lái)。
A.正確
B.錯(cuò)誤
5)關(guān)于MyBatis描述錯(cuò)誤的是()。(單選)
A.大量字段的POJO進(jìn)行部分映射時(shí)比較困難
B.用邏輯標(biāo)簽控制動(dòng)態(tài)SQL的拼接
C.sql語(yǔ)句與代碼分離,存放于xml配置文件中
D.查詢的結(jié)果集與java對(duì)象自動(dòng)映射
6)數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)是一個(gè)信息提供平臺(tái),他從業(yè)務(wù)處理系統(tǒng)獲得數(shù)據(jù),主要以星型模型和雪
花模型進(jìn)行數(shù)據(jù)組織,并為用戶提供各種手段從數(shù)據(jù)中獲取信息和知識(shí)。從功能結(jié)構(gòu)劃
分,數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)至少應(yīng)該包含數(shù)據(jù)獲取、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)訪問(wèn)三個(gè)關(guān)鍵部分.而Hive
作為一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,對(duì)于這個(gè)三個(gè)部分的實(shí)現(xiàn)都提供了相應(yīng)的支持。
A.正確
B.錯(cuò)誤
學(xué)習(xí)知識(shí)點(diǎn)后請(qǐng)完成以下練習(xí)題
7)從傳統(tǒng)的在線交易系統(tǒng)轉(zhuǎn)換為基于主題的數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng),就涉及到從傳統(tǒng)的第三范式設(shè)
計(jì)到星型模型、雪花模型構(gòu)建的過(guò)程,以及數(shù)據(jù)的抽取、轉(zhuǎn)換、加載的過(guò)程,這個(gè)過(guò)程
就是數(shù)據(jù)倉(cāng)庫(kù)的分層設(shè)計(jì)架構(gòu)。
A.正確
B.錯(cuò)誤
8)數(shù)據(jù)分層是一套讓我們的數(shù)據(jù)體系更有序的行之有效的數(shù)據(jù)組織和管理方法,同時(shí):數(shù)
據(jù)分層就了有一套行之有效的標(biāo)準(zhǔn)。
A.正確
B.錯(cuò)誤
9)下面哪個(gè)不是數(shù)據(jù)分層的優(yōu)點(diǎn)()。(單選)
A.數(shù)據(jù)結(jié)構(gòu)化更清晰
B.統(tǒng)一數(shù)據(jù)口徑
C.增強(qiáng)數(shù)據(jù)復(fù)用能力
D.實(shí)時(shí)提供信息供決策
10)關(guān)于ODS描述錯(cuò)誤的是()。(單選)
A.是最接近數(shù)據(jù)源中數(shù)據(jù)的一層,數(shù)據(jù)源中的數(shù)據(jù),經(jīng)過(guò)抽取、洗凈、傳輸,也就說(shuō)傳
說(shuō)中的ETL之后,裝入本層;一般來(lái)說(shuō)ODS層的數(shù)據(jù)和源系統(tǒng)的數(shù)據(jù)是同構(gòu)的,主要
目的是簡(jiǎn)化后續(xù)數(shù)據(jù)加工處理的工作。
B.從數(shù)據(jù)粒度上來(lái)說(shuō)ODS層的數(shù)據(jù)粒度是最細(xì)的。
C.ODS層是滿足多個(gè)業(yè)務(wù)系統(tǒng)獲取數(shù)據(jù)并制作操作型報(bào)表的需求,保留半年以內(nèi)的明細(xì)
準(zhǔn)實(shí)時(shí)數(shù)據(jù)
D.ODS層只用于存儲(chǔ)當(dāng)前需要加載的數(shù)據(jù)。
11)關(guān)于數(shù)據(jù)倉(cāng)庫(kù)層描述錯(cuò)誤的是()。(單選)
A.數(shù)據(jù)倉(cāng)庫(kù)層是我們?cè)谧鰯?shù)據(jù)倉(cāng)庫(kù)時(shí)要核心設(shè)計(jì)的一層,本層將從ODS層中獲得的數(shù)
據(jù)按照主題建立各種數(shù)據(jù)模型,每一個(gè)主題對(duì)應(yīng)一個(gè)宏觀的分析領(lǐng)域,數(shù)據(jù)倉(cāng)庫(kù)層排除
對(duì)決策無(wú)用的數(shù)據(jù),提供特定主題的簡(jiǎn)明視圖。在DW層會(huì)保存BI系統(tǒng)中所有的歷史
數(shù)據(jù),例如保存1。年的數(shù)據(jù)。
B.在實(shí)際構(gòu)建過(guò)程中,業(yè)界也在不斷探索和完善數(shù)據(jù)分層架構(gòu),將DW層又細(xì)分為數(shù)據(jù)
明細(xì)層、數(shù)據(jù)中間層和數(shù)據(jù)服務(wù)層。
C.數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)都還是在Hive指定的目錄里(默認(rèn)是HDFS上的/user/hive/ware
house),分層一般就是創(chuàng)建不同的database。
D.數(shù)據(jù)倉(cāng)庫(kù)分層的層名、表名都有具體標(biāo)準(zhǔn),比如ODS層database命名為ods,ODS
層表命名為ods_表名等。
學(xué)習(xí)知識(shí)點(diǎn)后請(qǐng)完成以下練習(xí)題
12)某一張員工表的字段構(gòu)成為:?jiǎn)T工id(主鍵),姓名,性別,年齡,所屬部門,部門經(jīng)
理姓名,部門電話,違反了哪一范式()。(單選)
A.第一范式
B.第二范式
C.第三范式
D.第一、二范式
13)關(guān)于數(shù)據(jù)建模目標(biāo)描述錯(cuò)誤的是()。(單選)
A.數(shù)據(jù)倉(cāng)庫(kù)建模的目標(biāo)是通過(guò)建模的方法更好的組織、存儲(chǔ)數(shù)據(jù),以便在訪問(wèn)性能、數(shù)
據(jù)與計(jì)算成本、使用效率和數(shù)據(jù)質(zhì)量之間找到最佳平衡點(diǎn)。
B.數(shù)據(jù)質(zhì)量是指整合所有數(shù)據(jù)源的數(shù)據(jù),改善數(shù)據(jù)統(tǒng)計(jì)口徑的不一致性,減少數(shù)據(jù)計(jì)算
錯(cuò)誤的可能性,提供高質(zhì)量的、一致的數(shù)據(jù)訪問(wèn)平臺(tái)。
C.數(shù)據(jù)倉(cāng)庫(kù)建模的目標(biāo)是存在沖突的,比如為了提高訪問(wèn)性能,可能會(huì)提高數(shù)據(jù)冗余(減
少Join),這樣會(huì)降低計(jì)算成本,但是會(huì)導(dǎo)致數(shù)據(jù)存儲(chǔ)成本很高,并且由于數(shù)據(jù)的冗
余,會(huì)提高數(shù)據(jù)統(tǒng)計(jì)口徑不一致的風(fēng)險(xiǎn)。
D.以上不全對(duì)
14)關(guān)于下圖描述不正確的是()。(單選)
選修M間
(學(xué)4g卜-----------'
—學(xué)生<——?課程-----
11M
(r------------------JL---------
、一選性
A.這是一個(gè)ER模型
B.學(xué)生表與課程表是實(shí)體表,選修表是關(guān)系表
C.學(xué)生與課程的關(guān)系是l:n
D.以上不全對(duì)
15)關(guān)于下圖描述不正確的是()。(單選)
A.這是一個(gè)維度模型中的星型模式
B.Order_factl為周期性型事實(shí)表
C.Area_diml有維度冗余,反3NF
D.以上說(shuō)法不全對(duì)
16)關(guān)于事實(shí)表與維度表說(shuō)法錯(cuò)誤的是()?(單選)
A.事實(shí)表用來(lái)存儲(chǔ)事實(shí)的度量(measure)及指向各個(gè)維的外鍵值、事件描述信息。
B.存儲(chǔ)隨著業(yè)務(wù)發(fā)生不斷產(chǎn)生變化(更新,新增)數(shù)據(jù)的表是周期型事實(shí)表
C.維度表的范圍很寬(具有多個(gè)屬性、列比較多);跟事實(shí)表相比,行數(shù)相對(duì)較?。和?/p>
常<10萬(wàn)條;內(nèi)容固定不變,又稱編碼表。
D.以上說(shuō)法不全對(duì)
17)關(guān)于建模說(shuō)法錯(cuò)誤的是()。(單選)
A.ER模型以及維度模型是當(dāng)前主流的建模方法。ER模型常用于OLTP數(shù)據(jù)庫(kù)建模,
應(yīng)用到構(gòu)建數(shù)倉(cāng)時(shí)更偏重?cái)?shù)據(jù)整合,站在企業(yè)整體考慮,將各個(gè)系統(tǒng)的數(shù)據(jù)按相似性、
一致性合并處理,為數(shù)據(jù)分析、決策服務(wù),但并不便于直接用來(lái)支持分析。
B.維度建模是面向分析場(chǎng)景而生,針對(duì)分析場(chǎng)景構(gòu)建數(shù)倉(cāng)模型;重點(diǎn)關(guān)注快速、靈活的
解決分析需求,同時(shí)能夠提供大規(guī)模數(shù)據(jù)的快速響應(yīng)性能。針對(duì)性強(qiáng),主要應(yīng)用于數(shù)據(jù)
倉(cāng)庫(kù)構(gòu)建和OLAP引擎低層數(shù)據(jù)模型。
C.維度建模里的事實(shí)表就是ER模型里的關(guān)系表,維度表就是ER模型的實(shí)體表
D.以上說(shuō)法不全對(duì)
18)關(guān)于維度模型的模式選擇說(shuō)法錯(cuò)誤的是()。(單選)
A.雪花模式與星型模式都屬于維度模型,因?yàn)樗麄兊氖聦?shí)表一般會(huì)不滿足規(guī)范化設(shè)計(jì)。
B.雪花模式與星型模式的區(qū)別是雪花模式的維度表符合3NF,而星型模式不滿足。
C.Hive的分析通過(guò)MapReduce實(shí)現(xiàn),每多一個(gè)Join就會(huì)多出一個(gè)MapReduce過(guò)
程,對(duì)于雪花模型,由于存在著很多維度表之間的關(guān)聯(lián),這就會(huì)導(dǎo)致一次分析對(duì)應(yīng)多個(gè)
MapReduce任務(wù),而雪花模式由于不存在維度表的關(guān)聯(lián),因此一個(gè)MapReduce就可
以實(shí)現(xiàn)分析任務(wù),性能高很多。
D.以上不全對(duì)
學(xué)習(xí)知識(shí)點(diǎn)后請(qǐng)完成以下練習(xí)題
19)在實(shí)際項(xiàng)目中,關(guān)系數(shù)據(jù)庫(kù)里的數(shù)據(jù)需要同步到數(shù)據(jù)倉(cāng)庫(kù)里進(jìn)行統(tǒng)計(jì)分析,針對(duì)不同的
表有不同的同步策略。數(shù)據(jù)同步策略的類型包括:全量表、增量表、新增及變化表、拉
鏈表。
A.正確
B.錯(cuò)誤
20)維度表數(shù)據(jù)量比較小,完全可以做每日全量,就是每天存一份完整數(shù)據(jù),但對(duì)一些數(shù)據(jù)
量較大緩慢變化維度表需要保存數(shù)據(jù)的所有歷史狀態(tài),對(duì)于新增數(shù)據(jù)也保存,這時(shí)可以
做拉鏈表。
A.正確
B.錯(cuò)誤
21)事務(wù)型事實(shí)表數(shù)據(jù)不會(huì)變化,而且數(shù)據(jù)量巨大,所以每天只同步新增數(shù)據(jù)即可,所以可
以做成每日增量表,即每H創(chuàng)建一個(gè)分區(qū)存儲(chǔ)。
A.正確
B.錯(cuò)誤
22)周期型事實(shí)表,存每日全量的話,數(shù)據(jù)量太大,冗余也太大。如果用每日增量的話無(wú)法
反應(yīng)數(shù)據(jù)變化,需要保存歷史狀態(tài)和新增數(shù)據(jù),所以我們需要制作一張拉鏈表。
A.正確
B.錯(cuò)誤
23)下面關(guān)于拉鏈表描述錯(cuò)誤的是()。(單選)
A.對(duì)新增及變化表做定期合并,即某個(gè)時(shí)間切片的快照數(shù)據(jù)
B.拉鏈表,既能滿足對(duì)歷史數(shù)據(jù)的需求,又能很大程度的節(jié)省存儲(chǔ)資源
C.拉鏈表需增加兩字段,一個(gè)是表示該條記錄的生命周期開始時(shí)間,另一個(gè)是表示該條
記錄的生命周期結(jié)束時(shí)間;拉鏈表的數(shù)據(jù)為:當(dāng)天最新的數(shù)據(jù)UNIONALL歷史數(shù)據(jù)。
D.以上不全對(duì)
學(xué)習(xí)知識(shí)點(diǎn)后請(qǐng)完成以下練習(xí)題
24)Hive提供了與HBase的集成,使得能夠在HBase表上使用HQL語(yǔ)句進(jìn)行查詢插入操
作以及進(jìn)行Join和Union等復(fù)雜查詢,從而進(jìn)行統(tǒng)計(jì)分析。同時(shí)也可以將Hive表中
的數(shù)據(jù)映射到HBase中以便供前端低延時(shí)查詢。
A.正確
B.錯(cuò)誤
25)關(guān)于Hive與HBase集成,描述錯(cuò)誤的是()。(單選)
A.Hive與HBase利用兩者本身對(duì)外的API來(lái)實(shí)現(xiàn)整合,主要是靠HiveHBaseTablel
nputFormat進(jìn)行通信。
B.Hive訪問(wèn)HBase中表數(shù)據(jù),實(shí)質(zhì)上是通過(guò)MapReduce讀取HBase表數(shù)據(jù)。
C.對(duì)HBase表的切分原則是一個(gè)Region切分成一個(gè)Split,即表中有多少個(gè)Regions.
MR中就有多少個(gè)Map;讀取HBase表數(shù)據(jù)都是通過(guò)構(gòu)建Scanner,對(duì)表進(jìn)行全表掃描,
如果有過(guò)濾條件,則轉(zhuǎn)化為Filter。
D.以上不全對(duì)
26)關(guān)于Hive與HBase集成應(yīng)用場(chǎng)景,描述錯(cuò)誤的是()。(單選)
A.將Hbase作為Hive的數(shù)據(jù)源,讓Hbase支持類SQL操作。
B^HiveETL數(shù)據(jù)存入HBase,便于快速查詢。
C.構(gòu)建低延時(shí)的數(shù)據(jù)倉(cāng)庫(kù)。利用HBase的快速讀寫能力,實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)查詢。
D.以上不全對(duì)
27)關(guān)于hive與hbase版本兼容性,描述錯(cuò)誤的是()。(單選)
A.hivel.x與hbasel.x是兼容
B.編譯hive-hbase-handler.jar包需要準(zhǔn)備hive源碼包,以及hbase、hive的文件夾里的
jar包
C.把編譯獲得的hive-hbase-handler.jar替換掉/hive/lib里的hive-hbase-han
dler-X.X.X.jaro
D.以上不全對(duì)
28)測(cè)試Hive與HBase集成是否成功,可以依次啟動(dòng)Hadoop、HBase>Zookeeper、Hive,
創(chuàng)建與HBase關(guān)聯(lián)的Hive管理表或外部表來(lái)測(cè)試。
A.正確
B.錯(cuò)誤
學(xué)習(xí)知識(shí)點(diǎn)后請(qǐng)完成以下練習(xí)題
29)通過(guò)創(chuàng)建Hive管理表的方式創(chuàng)建IIBase表,或創(chuàng)建Hive外部表關(guān)聯(lián)HBase表,都需要通
過(guò)hive的create語(yǔ)句,使用hbase.columns,mapping屬性指定表字段的映射關(guān)系,使
用指定hbase的表名。
A.正確
B.錯(cuò)誤
30)不能將數(shù)據(jù)直接load進(jìn)Hive所關(guān)聯(lián)HBase的表中,需要在Hive中創(chuàng)建臨時(shí)中間表,
用于load文件中的數(shù)據(jù),然后通過(guò)insert命令將中間表中的數(shù)據(jù)導(dǎo)入到Hive關(guān)聯(lián)
HBase的那張表中。
A.正確
B.錯(cuò)誤
31)刪除與某HBase表關(guān)聯(lián)的Hive表,將會(huì)導(dǎo)致HBase表也被刪除,數(shù)據(jù)丟失。
A.正確
B.錯(cuò)誤
32)HiveoverIIBase比HiveoverHDFS性能快。
A.正確
B.錯(cuò)誤
33)HiveoverHBase性能瓶頸主要在兩方面:Map數(shù)、ScanRPC請(qǐng)求次數(shù)。
A.正確
B.錯(cuò)誤
學(xué)習(xí)知識(shí)點(diǎn)后請(qǐng)完成以下練習(xí)題
34)如果在HiveClient界面執(zhí)行"sethive.fetch.task.conversion=more;"命令,
那么在本session中進(jìn)行全局查找、字段查找、limit查找等都不走mapreduce?
A.正確
B.錯(cuò)誤
35)如果在HiveClient界面執(zhí)行"sethive.exec.mode.local.auto=true;n命令,
那么在本Session中,Hive將通過(guò)本地模式在單臺(tái)機(jī)器上處理所有的任務(wù)。對(duì)于小數(shù)
據(jù)集,執(zhí)行時(shí)間可以明顯被縮短。。
A.正確
B.錯(cuò)誤
36)小表、大表進(jìn)行Join時(shí),在HiveClient界面執(zhí)行"sethive.auto.convert.join
=true;”命令來(lái)使用mapjoin讓小的維度表(1000條以下的記錄條數(shù))先進(jìn)內(nèi)存,
在m叩端完成join,避免reducer處理,提高join效率。
A.正確
B.錯(cuò)誤
37)大表Join大表有時(shí)join超時(shí)是因?yàn)槟承﹌ey對(duì)應(yīng)的數(shù)據(jù)太多,而相同key對(duì)應(yīng)的數(shù)據(jù)
都會(huì)發(fā)送到相同的reducer上,從而導(dǎo)致內(nèi)存不夠。此時(shí)我們應(yīng)該仔細(xì)分析這些異常的
key,很多情況下,這些key對(duì)應(yīng)的數(shù)據(jù)是異常數(shù)據(jù),我們需要在SQL語(yǔ)句中進(jìn)行過(guò)濾。
有時(shí)雖然某個(gè)key為空對(duì)應(yīng)的數(shù)據(jù)很多,但是相應(yīng)的數(shù)據(jù)不是異常數(shù)據(jù),必須要包含在
join的結(jié)果中,此時(shí)我們可以把表中key為空的字段賦一個(gè)隨機(jī)的值,使得數(shù)據(jù)隨機(jī)
均勻地分不到不同的reducer上。
A.正確
B.錯(cuò)誤
38)關(guān)于GroupBy導(dǎo)致數(shù)據(jù)傾斜,描述錯(cuò)誤的是()。(單選)
A.默認(rèn)情況下,Map階段同一Key數(shù)據(jù)分發(fā)給一個(gè)reduce,當(dāng)一個(gè)key數(shù)據(jù)過(guò)大時(shí)就
傾斜了。
B.并不是所有的聚合操作都需要在Reduce端完成,很多聚合操作都可以先在Map端進(jìn)
行部分聚合,最后在Reduce端得出最終結(jié)果,所以可以通過(guò)參數(shù)設(shè)置開啟Map端聚合。
C.使用命令"sethive.groupby.skewindata=true”有數(shù)據(jù)傾斜的時(shí)候進(jìn)行負(fù)
載均衡
D.以上不全對(duì)
39)關(guān)于查詢優(yōu)化,描述錯(cuò)誤的是()。(單選)
A.盡量避免笛卡爾積,因?yàn)閖oin的時(shí)候不加on條件,或者無(wú)效的。n條件,Hive只
能使用1個(gè)reducer來(lái)完成笛卡爾積。
B.在SELECT中,只拿需要的列,少用SELECT*,一是減少耗內(nèi)存,二是提高I/。效
率,三是表一般都是列存儲(chǔ),只拿需要的列,提高查詢效率。
C.當(dāng)使用外關(guān)聯(lián)時(shí),如果將副表的過(guò)濾條件寫在Where后面,那么就會(huì)先全表關(guān)聯(lián),
之后再過(guò)濾,最好改為通過(guò)子查詢后,再關(guān)聯(lián)表。
D.以上不全對(duì)
40)關(guān)于動(dòng)態(tài)分區(qū),描述錯(cuò)誤的是()。(單選)
A.要?jiǎng)討B(tài)分區(qū),需設(shè)置為非嚴(yán)格模式。
B.要根據(jù)實(shí)際情況指定在所有執(zhí)行MR的節(jié)點(diǎn)和每個(gè)執(zhí)行MR的節(jié)點(diǎn)上,分別最大一共
可以創(chuàng)建多少個(gè)動(dòng)態(tài)分區(qū)。
C.需要指定整個(gè)MRJob中,最大可以創(chuàng)建多少個(gè)HDFS文件。
D.當(dāng)有空分區(qū)生成時(shí),是否拋出異常。一般需要設(shè)置為true。
學(xué)習(xí)知識(shí)點(diǎn)后請(qǐng)完成以下練習(xí)題
41)如果在HiveClient界面執(zhí)行"sethive.fetch.task.conversion=more;w命令,
那么在本session中進(jìn)行全局查找、字段查找、limit查找等都不走mapreduce。
A.正確
B.錯(cuò)誤
42)如果在HiveClient界面執(zhí)行"sethive.exec.mode.local.auto=true;n命令,
那么在本Session中,Hive將通過(guò)本地模式在單臺(tái)機(jī)器上處理所有的任務(wù)。對(duì)于小數(shù)
據(jù)集,執(zhí)行時(shí)間可以明顯被縮短。。
A.正確
B.錯(cuò)誤
43)小表、大表進(jìn)行Join時(shí),在HiveClient界面執(zhí)行"sethive.auto.convert.join
=true;”命令來(lái)使用mapjoin讓小的維度表(100。條以下的記錄條數(shù))先進(jìn)內(nèi)存,
在m叩端完成join,避免reducer處理,提高join效率。
A.正確
B.錯(cuò)誤
44)大表Join大表有時(shí)join超時(shí)是因?yàn)槟承﹌ey對(duì)應(yīng)的數(shù)據(jù)太多,而相同key對(duì)應(yīng)的數(shù)據(jù)
都會(huì)發(fā)送到相同的reducer上,從而導(dǎo)致內(nèi)存不夠。此時(shí)我們應(yīng)該仔細(xì)分析這些異常的
key,很多情況下,這些key對(duì)應(yīng)的數(shù)據(jù)是異常數(shù)據(jù),我們需要在SQL語(yǔ)句中進(jìn)行過(guò)濾。
有時(shí)雖然某個(gè)key為空對(duì)應(yīng)的數(shù)據(jù)很多,但是相應(yīng)的數(shù)據(jù)不是異常數(shù)據(jù),必須要包含在
join的結(jié)果中,此時(shí)我們可以把表中key為空的字段賦一個(gè)隨機(jī)的值,使得數(shù)據(jù)隨機(jī)
均勻地分不到不同的reducer上。
A.正確
B.錯(cuò)誤
45)關(guān)于GroupBy導(dǎo)致數(shù)據(jù)傾斜,描述錯(cuò)誤的是()。(單選)
A.默認(rèn)情況下,M叩階段同一Key數(shù)據(jù)分發(fā)給一個(gè)reduce,當(dāng)一個(gè)key數(shù)據(jù)過(guò)大時(shí)就
傾斜了。
B.并不是所有的聚合操作都需要在Reduce端完成,很多聚合操作都可以先在Map端進(jìn)
行部分聚合,最后在Reduce端得出最終結(jié)果,所以可以通過(guò)參數(shù)設(shè)置開啟Map端聚合。
C.使用命令"sethive.groupby.skewindata=true”有數(shù)據(jù)傾斜的時(shí)候進(jìn)行負(fù)
載均衡
D.以上不全對(duì)
46)關(guān)于查詢優(yōu)化,描述錯(cuò)誤的是()。(單選)
A.盡量避免笛卡爾積,因?yàn)閖oin的時(shí)候不加on條件,或者無(wú)效的on條件,Hive只
能使用1個(gè)reducer來(lái)完成笛卡爾積。
B.在SELECT中,只拿需要的列,少用SELECT*,一是減少耗內(nèi)存,二是提高I/O效
率,三是表一般都是列存儲(chǔ),只拿需要的列,提高查詢效率。
C.當(dāng)使用外關(guān)聯(lián)時(shí),如果將副表的過(guò)濾條件寫在Where后面,那么就會(huì)先全表關(guān)聯(lián),
之后再過(guò)濾,最好改為通過(guò)子查詢后,再關(guān)聯(lián)表。
D.以上不全對(duì)
47)關(guān)于動(dòng)態(tài)分區(qū),描述錯(cuò)誤的是()。(單選)
A.要?jiǎng)討B(tài)分區(qū),需設(shè)置為非嚴(yán)格模式。
B.要根據(jù)實(shí)際情況指定在所有執(zhí)行MR的節(jié)點(diǎn)和每個(gè)執(zhí)行MR的節(jié)點(diǎn)上,分別最大一共
可以創(chuàng)建多少個(gè)動(dòng)態(tài)分區(qū)。
C.需要指定整個(gè)MRJob中,最大可以創(chuàng)建多少個(gè)HDFS文件。
D.當(dāng)有空分區(qū)生成時(shí),是否拋出異常。-一般需要設(shè)置為true。
學(xué)習(xí)知識(shí)點(diǎn)后請(qǐng)完成以下練習(xí)題
48)關(guān)于Map數(shù)設(shè)置,描述錯(cuò)誤的是()。(單選)
A.如果數(shù)據(jù)文件有很多小文件,在map執(zhí)行前合并小文件,減少map數(shù)。
B.當(dāng)數(shù)據(jù)文件的文件都很大,任務(wù)邏輯復(fù)雜,map執(zhí)行非常慢的時(shí)候,可以考慮增加
Map數(shù),來(lái)使得每個(gè)m叩處理的數(shù)據(jù)量減少,從而提高任務(wù)的執(zhí)行效率。
C.當(dāng)數(shù)據(jù)文件大小接近塊大小時(shí),比如有一個(gè)127m的文件,正常會(huì)用一個(gè)map去完成。
但只有一個(gè)或者兩個(gè)小字段,卻有幾千萬(wàn)的記錄,如果map處理的邏輯比較復(fù)雜,用
一個(gè)map任務(wù)去做,肯定也比較耗時(shí),這時(shí)需要增加map數(shù),提高并行度,提高運(yùn)算
效率。
D.以上不全對(duì)
49)關(guān)于reduce數(shù)設(shè)置,描述錯(cuò)誤的是()。(單選)
A.計(jì)算reducer數(shù)的公式N=min(每個(gè)任務(wù)最大的reduce數(shù),總輸入數(shù)據(jù)量/每個(gè)Reduce
處理的數(shù)據(jù)量),其中每個(gè)任務(wù)最大的reduce數(shù)和每個(gè)Reduce處理的數(shù)據(jù)量都可以指定,
兩者默認(rèn)值分別為:256M、1009。
B.還可以使用"mapreduce.job.reduces”參數(shù)直接指定每個(gè)job的Reduce個(gè)數(shù)。
C.reduce個(gè)數(shù)并不是越多越好,因?yàn)檫^(guò)多的啟動(dòng)和初始化reduce也會(huì)消耗時(shí)間和資源;
另外,有多少個(gè)reduce,就會(huì)有多少個(gè)輸出文件,如果生成了很多個(gè)小文件,那么如果
這些小文件作為下一個(gè)任務(wù)的輸入,則也會(huì)出現(xiàn)小文件過(guò)多的問(wèn)題。
D.在設(shè)置reduce個(gè)數(shù)的時(shí)候也需要考慮這兩個(gè)原則:處理大數(shù)據(jù)量利用合適的reduce
數(shù):使單個(gè)reduce任務(wù)處理數(shù)據(jù)量大小要合適。
50)系統(tǒng)資源比較空閑的時(shí)候,可以通過(guò)設(shè)置參數(shù)hive.exec.parallel值為true,開啟
并發(fā)執(zhí)行,增加集群利用率。
A.正確
B.錯(cuò)誤
51)關(guān)于Hive嚴(yán)格模式,描述錯(cuò)誤的是()。(單選)
A.對(duì)于分區(qū)表,除非where語(yǔ)句中含有分區(qū)字段過(guò)濾條件來(lái)限制范圍,否則不允許執(zhí)
行。
B.對(duì)于使用了orderby語(yǔ)句的查詢,要求必須使用limit語(yǔ)句。
C.限制笛卡爾積的查詢。
D.以上不全對(duì)
52)Hadoop的默認(rèn)配置通常是使用派生JVM來(lái)執(zhí)行map和Reduce任務(wù)的,這時(shí)JVM的啟
動(dòng)過(guò)程可能會(huì)造成相當(dāng)大的開銷,尤其是執(zhí)行的job包含有成百上千task任務(wù)的情況。
JVM重用可以使得JVM實(shí)例在同一個(gè)job中重新使用N次,減少了JVM的啟動(dòng),縮短
了執(zhí)行時(shí)間,建議JVM重用次數(shù)越多越好。
A.正確
B.錯(cuò)誤
學(xué)習(xí)知識(shí)點(diǎn)后請(qǐng)完成以下練習(xí)題
53)Hadoop的job通常是I/O密集型而不是CPU密集型的。如果是這樣的話,壓縮可以提
高性能,所以必須壓縮以節(jié)省存儲(chǔ)空間與I/O性能。
A.正確
B.錯(cuò)誤
54)Hadoop2.7.3內(nèi)置支持GZIP和BZip2壓縮方案,但不支持Snappy壓縮、LZ0壓縮,需
要自行編譯增加相關(guān)的庫(kù)。
A.正確
B.錯(cuò)誤
55)關(guān)于如何選擇一種壓縮編/解碼器,描述錯(cuò)誤的是()。(單選)
A.每一個(gè)壓縮方案需要在壓縮/解壓縮速度和壓縮率間進(jìn)行權(quán)衡。另一個(gè)需要考慮的因
素是壓縮格式的文件是否是可分割的。
B.BZip2壓縮率最高,但是同時(shí)需要消耗最多的CPU開銷。GZip是壓縮率和壓縮/解壓
縮速度上的下一個(gè)選擇。因此,如果磁盤空間利用率和I/O開銷都需要考慮的話,那么
這2種壓縮方案都是有吸引力的。LZO和Snappy壓縮率相比前面的2種要小但是壓縮
/解壓縮速度要快,特別是解壓縮過(guò)程。如果相對(duì)于磁盤空間和I/O開銷,頻繁讀取數(shù)
據(jù)所需的解壓縮速度更重要的話,那么它們將是不錯(cuò)的選擇。
C.BZip2和LZO提供了塊(BLOCK)級(jí)別的壓縮,也就是每個(gè)塊中都含有完整的記錄信
息,因此Hadoop可以在塊邊界級(jí)別對(duì)這些文件進(jìn)行劃分。但是GZip和Snappy將文
本文件邊界信息掩蓋掉了,GZip和Snappy壓縮的文件不可劃分。因此綜合考慮,想
高壓縮率則選擇BZip2,想選擇高并行度則選擇LZO,GZip和Snappy不可選。
D.以上不全對(duì)
56)關(guān)于hadoop支持的編碼/解碼器描述錯(cuò)誤的是()。(單選)
A.LZO不是hadoop自帶的需要安裝,被壓縮后的數(shù)據(jù)需要建索引,還需要指定輸入格
式
B.bzip2、gzip、LZO、Snappy壓縮率依次升高,壓縮/解壓速度則相反
C.當(dāng)每個(gè)文件壓縮之后在130M以內(nèi)的(1個(gè)塊大小內(nèi)),都可以考慮用Gzip壓縮格式。
例如說(shuō)一天或者一個(gè)小時(shí)的日志壓縮成一個(gè)Gzip文件。
D.Bzip2格式適合對(duì)速度要求不高,但需要較高的壓縮率的時(shí)候;或者輸出之后的數(shù)據(jù)
比較大,處理之后的數(shù)據(jù)需要壓縮存檔減少磁盤空間并且以后數(shù)據(jù)用得比較少的情況;
或者對(duì)單個(gè)很大的文本文件想壓縮減少存儲(chǔ)空間,同時(shí)又需要支持Split,而且兼容之
前的應(yīng)用程序的情況。
57)Snappy應(yīng)用場(chǎng)景為:當(dāng)MapReduce作業(yè)的Map輸出的數(shù)據(jù)比較大的時(shí)候,作為Map到
Reduce的中間數(shù)據(jù)的壓縮格式;或者作為一個(gè)MapReduce作業(yè)的輸出和另外一個(gè)MapR
educe作業(yè)的輸入。
A.正確
B.錯(cuò)誤
學(xué)習(xí)知識(shí)點(diǎn)后請(qǐng)完成以下練習(xí)題
58)壓縮參數(shù)設(shè)置常用方式有兩種:修改配置文件和參數(shù)聲明方式。
A.正確
B.錯(cuò)誤
59)要想永久設(shè)置hadoop支持Snappy壓縮格式,則需要在core-site,xml中修改io.comp
ression.codecs參數(shù)值,然后使用scp命令把該配置文件同步到其它主機(jī)。
A.正確
B.錯(cuò)誤
60)要想永久設(shè)置mapper輸出壓縮格式為Snappy,則需要在core-site,xml中修改
mapreduce.map.output,compress和mapreduce.map.output,compress,codec的參數(shù)
值,然后使用scp命令把該配置文件同步到其它主機(jī)。
A.正確
B.錯(cuò)誤
61)想在當(dāng)前session里開啟map輸出階段壓縮,且壓縮格式為Gzip,以減少job中map
和Reducetask間數(shù)據(jù)傳輸量,則需要在hiveclient界面里輸入執(zhí)行命令"setm
apreduce.mpress=true;/口asetmapreduce.map.output.comp
ress?codec=org.apache.hadoop?io?compress.GzipCodec;
A.正確
B.錯(cuò)誤
62)想在當(dāng)前session里開啟reduce輸出階段壓縮,且壓縮格式為Gzip以節(jié)省存儲(chǔ)空間,
則需要在hiveclient界面里輸入執(zhí)行命令"sethive.exec.compress.output=t
rue;“、“setmapreduce.output.fileoutputformat.compress=true,\"setma
preduce.output.fileoutputformpress.codec=org.apache.hadoop.io.
compress.GzipCodec;和“setmapreduce.output.fileoutputformat.compre
ss?type=BLOCK;
A.正確
B.錯(cuò)誤
學(xué)習(xí)知識(shí)點(diǎn)后請(qǐng)完成以下練習(xí)題
63)關(guān)于Hadoop源碼編譯支持Snappy壓縮,下面哪個(gè)軟件不需要安裝()。(單選)
A.Anaconda
B.JDK
C.Maven
D.gcc
64)安裝snappy好后,還要編譯Hadoop源碼的原因是為了得到Hadoop里的lib/native,
以替換原Hadoop集群每臺(tái)服務(wù)器里的lib/native。
A.正確
B.錯(cuò)誤
65)使用命令"hadoopchecknative可以查看hadoop支持的壓縮類型。
A.正確
B.錯(cuò)誤
66)要想永久設(shè)置Hadoop支持Snappy壓縮格式,則需要在core-site,xml的io.compress
ion.codecs參數(shù)值末尾添力口“org?apache.hadoop.io.compress.SnappyCodec",
然后使用scp命令把core-site.xnd配置文件同步到其它主機(jī),最后需要重啟Hadoop
集群才生效。
A.正確
B.錯(cuò)誤
67)Snappy比Gzip壓縮率低,但壓縮/解壓速度比Gzip高,所以適合作為Map到Reduce
的中間數(shù)據(jù)的壓縮格式,或者作為一個(gè)MapReduce作業(yè)的輸出和另外一個(gè)MapReduce
作業(yè)的輸入。
A.正確
B.錯(cuò)誤
學(xué)習(xí)知識(shí)點(diǎn)后請(qǐng)完成以下練習(xí)題
68)關(guān)于Hive數(shù)學(xué)內(nèi)置函數(shù)描述錯(cuò)誤的是()。(單選)
A.round(DOUBLEa,INTd)返回保留d位小數(shù)的DOUBLE型的近似值
B.ceiKDOUBLEa)為向下取整,最數(shù)軸上最接近要求的值的左邊的值,如:6.10->6,
-3.4->-4。
C.exp(DOUBLEa)返回e的a哥次方,a可為小數(shù)
D.log(DOUBLEbase,DOUBLEa)返回以base為底a的對(duì)數(shù),base與a都是DOUBLE
類型
69)關(guān)于Hive內(nèi)置函數(shù)描述錯(cuò)誤的是()。(單選)
A.cast(expras<type>)將expr強(qiáng)制轉(zhuǎn)換成type類型如:cast(TasBIGINT)將字符串1
轉(zhuǎn)換成了BIGINT類型,如果轉(zhuǎn)換失敗將返回NULL
B.array_contains(Array<T>,value)功能是如果該數(shù)組Array<T>包含value返回true。否貝ij
返回false
C.map_values(Map<K.V>)返回map中的所有value
D.以上不全對(duì)
70)關(guān)于Hive內(nèi)置日期函數(shù)描述錯(cuò)誤的是()。(單選)
A.from_unixtime(bigintunixtimel,stringformat])是將時(shí)間的秒值轉(zhuǎn)換成format格式
(format可為"yyyy-MM-ddhh:mm:ss","yyyy-MM-ddhh","yyyy-MM-ddhh:mm”
等等)。如from_unixtime(1250111000,"yyyy-MM-dd")得至Ij2009-03-12o
B.next_day(stringstart_date,stringday_oCweek)返回當(dāng)前時(shí)間的下一個(gè)星期X所對(duì)應(yīng)的
日期。如:next_day('2015-01-14','TU')=2015-01-20表示以2015-01-14為開始時(shí)間,其
下一個(gè)星期二所對(duì)應(yīng)的日期為2015-01-20。
C.datediff(stringenddate,stringstartdate)是計(jì)算開始時(shí)間startdate到結(jié)束時(shí)間enddate相
差的天數(shù)。
D.以上不全對(duì)
71)關(guān)于Hive內(nèi)置函數(shù)描述錯(cuò)誤的是()。(單選)
A.i{'(booleantestCondition,TvalueTrue,TvalueFalseOrNull)表示如果testCondition為true
就返回valueTrue,否則返回valueFalseOrNull(valueTrue,valueFalseOrNull為泛型)。
B.format_number(numberx,intd)是將數(shù)值X轉(zhuǎn)換成"#,###,###.##"格式字符串,并保留d
位小數(shù),如果d為0,將進(jìn)行四舍五入且不保留小數(shù)。
C.getjson_object(stringjson_string,stringpath)從指定路徑上的JSON字符串抽取出
JSON對(duì)象,并返回這個(gè)對(duì)象的JSON格式,如果輸入的JSON是非法的將返回NULL,
注意此路徑上JSON字符串只能由數(shù)字字母、下劃線組成且不能有大寫字母和特殊字
符,且key不能由數(shù)字開頭,這是由于Hive對(duì)列名的限制。
D.regexp_extract(stringINITIAL_STRING,stringPATTERN,stringREPLACEMENT)會(huì)按
照J(rèn)ava正則表達(dá)式PATTERN將字符串INTIAL_STRING中符合條件的部分成
REPLACEMENT所指定的字符串,如里REPLACEMENT這空的話,抽符合正則的部
分將被去掉。$n:regexp_extract("foobar","oo|ar","")='fb1注意些預(yù)定義字符的使用,
如第二個(gè)參數(shù)如果使用門將被匹配到s;\\s,才是匹配空格。
72)關(guān)于Hive內(nèi)置函數(shù)描述錯(cuò)誤的是()。(單選)
A.avg(col),表示求指定列的平均值,avg(DISTINCTcol)表示求去重后的列的平均值
B.explode(MAP)將hive一列中map結(jié)構(gòu)拆分成多行,轉(zhuǎn)換后每行對(duì)應(yīng)每個(gè)map鍵-值,
其中一個(gè)字段是map的鍵,另一個(gè)字段是map的值。
C.split(stringstr,stringpat)會(huì)按照正則表達(dá)式pat來(lái)分割字符串str,并將分割后的數(shù)組字
符串的形式返回。
D.substring(string|binaryA,intstart,intend)對(duì)于二進(jìn)制/字符串A,從start位置開始截取到
end位置的字符串并返回
學(xué)習(xí)知識(shí)點(diǎn)后請(qǐng)完成以下練習(xí)題
73)下面哪個(gè)不屬于Hive自定義函數(shù)()。(單選)
A.UDF
B.UDAF
C.UDGF
D.UDTF
74)下面關(guān)于自定義UDF函數(shù)描述錯(cuò)誤的是()。(單選)
A.需要繼承org.apache.hadoop.hive.ql.exec.UDF
B.要實(shí)現(xiàn)evaluate()方法
C.UDF必須要有返回類型,可以返回null,但是返回類型不能為void;
D.需要把自定義UDF函數(shù)的程序打成jar包上傳到服務(wù)器,將jar包添加到Hive的c
lasspath后就可以直接調(diào)用。
75)下面關(guān)于自定義UDAF函數(shù)描述正確的是()?(單選)
A.自定義聚合函數(shù)必須結(jié)合groupby使用,接受。行到多行數(shù)據(jù)返回一個(gè)計(jì)算結(jié)果值。
需繼承org.apache.hadoop.hive.ql.exec.UDAF,并定義內(nèi)部表類,實(shí)現(xiàn)UDAFEva
luator?
B.UDAFEvaluator類的實(shí)現(xiàn)中,iterate()功能是每次都會(huì)對(duì)一個(gè)新的值進(jìn)行聚合計(jì)
算時(shí)時(shí)都調(diào)用該方法,一般會(huì)根據(jù)計(jì)算結(jié)果更新用來(lái)存放最終結(jié)果的變量,如果計(jì)算正
確或者輸入值合法就返回最終結(jié)果。
C.UDAFEvaluator類的實(shí)現(xiàn)中,terminatePartial()這個(gè)方法直譯過(guò)來(lái)就是“終止
部分”,部分聚合結(jié)果的時(shí)候調(diào)用該方法必須返回一封裝了聚合計(jì)算當(dāng)前狀態(tài)的對(duì)象,
類似于MapReduce的combiner,常常直接調(diào)用iterate()進(jìn)行部分聚合。
D.以上選項(xiàng)全錯(cuò)。
76)下面關(guān)于自定義UDTF函數(shù)描述錯(cuò)誤的是()。(單選)
A.自定義UDTF函數(shù)必須結(jié)合LATERALVIEW使用,將一列中復(fù)雜的array或者map結(jié)
構(gòu)拆分成多行。需繼承org.apache.hadoop.hive.ql.udf.generic.GenericUDTF,
實(shí)現(xiàn)實(shí)現(xiàn)三個(gè)方法initialize。、process。、close。。
B.UDTF首先會(huì)調(diào)用initialize。方法,此方法返回UDTF的返回行的信息(返回字段
個(gè)數(shù)與名稱,類型)。
C.初始化完成后調(diào)用process()方法,對(duì)傳入的參數(shù)進(jìn)行處理,可以通過(guò)forward。
方法把結(jié)果返回。
D.最后調(diào)用close。對(duì)需要清理的方法進(jìn)行清理。
77)下面關(guān)于臨時(shí)函數(shù)與永久函數(shù)描述錯(cuò)誤的是()。(單選)
A.自定義函數(shù)有2種使用方式:臨時(shí)函數(shù)和永久函數(shù)。臨時(shí)函數(shù)只能在當(dāng)前客戶端使用,
僅對(duì)當(dāng)前session有效。永久函數(shù),創(chuàng)建后可以在任意客戶端使用。
B.創(chuàng)建永久函數(shù)與創(chuàng)建臨時(shí)函數(shù)實(shí)現(xiàn)都是四個(gè)步驟,步驟前兩步一樣,后面步驟不一樣。
創(chuàng)建永久函數(shù)需要把jar放到HDFS上,而創(chuàng)建臨時(shí)函數(shù)只需將jar放到hive服務(wù)器
本地;在Hive的命令行窗口創(chuàng)建函數(shù)格式不一樣
C.創(chuàng)建完永久函數(shù)之后,通過(guò)showfunctions可能并沒(méi)有看到我們自定義的永久函
數(shù),但是可以使用,而且推薦使用I永久函數(shù)。
D.以上不全對(duì)
學(xué)習(xí)知識(shí)點(diǎn)后請(qǐng)完成以下練習(xí)題
78)從選課表course中統(tǒng)計(jì)學(xué)生的人數(shù)查詢語(yǔ)句為:"selectcount(distinct*)entfrom
course;
A.正確
B.錯(cuò)誤
79)已知employee表中position字段為array類型,要查看每位員工的第一職位的查詢語(yǔ)
句為:"selectposition[l]fromemployee;"。
A.正確
B.錯(cuò)誤
80)Hive采用了類SQL的查詢語(yǔ)言HQL(hivequerylanguage),Hive的查詢語(yǔ)言與MySQL
完全一致。
A.正確
B.錯(cuò)誤
81)關(guān)于Hive查詢語(yǔ)法描述錯(cuò)誤的是()。(單選)
A.HiveSQL語(yǔ)言大小寫不敏感
B.HiveSQL可以寫在一行或多行,各子句一般分行寫,換行時(shí)行尾加上“\”
C.各子句一般分行寫,使用縮進(jìn)提高語(yǔ)句的可讀性
D.以上不全對(duì)
82)下面查詢語(yǔ)句錯(cuò)誤的是()。(單選)
A.selectstu_noenamefromscore;
B.selectcount(*)entfromscore;
C.selectscore*0.5asscore_lfromscore;
D.以上不全對(duì)
學(xué)習(xí)知識(shí)點(diǎn)后請(qǐng)完成以下練習(xí)題
83)下列關(guān)于分組描述錯(cuò)誤的是()。(單選)
A.GROUPBY語(yǔ)句通常會(huì)和聚合函數(shù)一起使用,按照一個(gè)或者多個(gè)列隊(duì)結(jié)果進(jìn)行分組,
然后對(duì)每個(gè)組執(zhí)行聚合操作
B.having只用于groupby分組統(tǒng)計(jì)語(yǔ)句,having語(yǔ)句先篩選出合乎條件的數(shù)據(jù)然后
再groupby分組
C.having后面可以使用分組函數(shù)
D.以上不全對(duì)
84)關(guān)于連接描述錯(cuò)誤的是()。(單選)
A.Hive支持通常的SQLJOIN語(yǔ)句,但是只支持等值連接,不支持非等值連接
B.如果連接語(yǔ)句中有WHERE子句,會(huì)先執(zhí)行WHERE子句,再執(zhí)行JOIN子句
C.使用別名可以簡(jiǎn)化查詢語(yǔ)句,使用表名前綴可以提高執(zhí)行效率
D.連接謂詞中不支持or,可以使用unionall,并去重的方法代替,使用COLLECT_SET()
函數(shù)來(lái)封裝不需要groupby的字段。
85)關(guān)于連接描述錯(cuò)誤的是()。(單選)
A.,■fromtableltlrightjointable2t2ontl.id=tl.id”表示右外連接,
JOIN操作符右邊表中的所有記錄將會(huì)被返回,左邊表的指定字段沒(méi)有符合條件的值的
話,那么就使用null值替代。
B."fromtableltlleftjointable2t2ontl.id=表示左連接,JOIN
操作符左邊表中的所有記錄將會(huì)被返回,右邊表的指定字段沒(méi)有符合條件的值的話,那
么就使用null值替代。
C.”fromtableltlinnerjointable2t2"表示內(nèi)連接,只有進(jìn)行連接的兩個(gè)
表中都存在與連接條件相匹配的數(shù)據(jù)才會(huì)被保留下來(lái)。
D.”fromtableltlfulljointable2t2ontl.id=tl.id”表示滿外連接,
將會(huì)返回所有表中的所有記錄。如果任一表的指定字段沒(méi)有符合條件的值的話,那么就
使用NULL值替代。
86)下面哪一個(gè)選項(xiàng)與其它三個(gè)不等價(jià)()。(單選)
A.selecte.empno^e.enamefromempeleftjoindeptdone.deptno=
d.deptno;
B.selecte.empno,e.enamefromempewheree.deptnoin(selectdeptno
fromdept);
C.selecte.empno>e.enamefromempewhereEXISTS(select1fromdept
dwheree.deptno=d.deptno);
D.selecte.empno,e.enamefromempejoindeptdone.deptno=d.deptno;
87)“FROMempeJOINdeptdONd.deptno=e.deptnoJOINlocation1ON
d.loc=1.loc”會(huì)先啟動(dòng)一個(gè)MapReducejob對(duì)表e和表d進(jìn)行連接操作,然后會(huì)
再啟動(dòng)一個(gè)MapReducejob將第一個(gè)MapReducejob的輸出和表1進(jìn)行連接操作。
A.正確
B.錯(cuò)誤
學(xué)習(xí)知識(shí)點(diǎn)后請(qǐng)完成以下練習(xí)題
88)關(guān)于查詢語(yǔ)句中全局排序說(shuō)法描述錯(cuò)誤的是()。(單選)
A.使用orderby會(huì)對(duì)輸入做全局排序,轉(zhuǎn)換為MapReduce程序中某階段只有一個(gè)
reducer(多個(gè)reducer無(wú)法保證全局有序),而只有一個(gè)reducer,會(huì)導(dǎo)致當(dāng)輸入規(guī)模較
大時(shí),需要較長(zhǎng)的計(jì)算時(shí)間。
B.使用ORDERBY子句排序,默認(rèn)升序,ORDERBY子句在SELECT語(yǔ)句的結(jié)尾。
C在hive.mapred.mode=strict模式下,必須指定limit否則執(zhí)行會(huì)報(bào)錯(cuò)。
D.以上不全對(duì)
89)下列哪個(gè)說(shuō)法不正確()o(單選)
A.orderby可以按照別名排序,也可以根據(jù)多個(gè)列排序
B.DISTRIBUTEBY語(yǔ)句進(jìn)行分區(qū),類似MR中partition,SORTBY語(yǔ)句在分區(qū)內(nèi)進(jìn)
行排序,Hive要求DISTRIBUTEBY語(yǔ)句要寫在SORTBY語(yǔ)句之前。
C.當(dāng)distributeby和sortsby字段相同時(shí),可以使用clusteredby方式代替它
們。但是clusteredby排序只能是升序排序,不能指定排序規(guī)則為ASC或者DESC。
D.以上不全對(duì)
90)關(guān)于分桶表數(shù)據(jù)存儲(chǔ),下列哪個(gè)說(shuō)法不正確()。(單選)
A.分區(qū)針對(duì)的是數(shù)據(jù)的存儲(chǔ)路徑;分桶針對(duì)的是數(shù)據(jù)文件。
B.分區(qū)提供一個(gè)隔離數(shù)據(jù)和優(yōu)化查詢的便利方式。不過(guò),并非所有的數(shù)據(jù)集都可形成合
理的分區(qū),特別是之前所提到過(guò)的要確定合適的劃分大小這個(gè)疑慮。分桶是將數(shù)據(jù)集分
解成更容易管理的若干部分的另一個(gè)技術(shù)。
C.導(dǎo)入數(shù)據(jù)到分桶表中,發(fā)現(xiàn)并沒(méi)有分成4個(gè)桶,原因可能是未設(shè)置hive.enforce.
bucketing=true和mapreduce.job.reduces="l?
D.以上選項(xiàng)不全對(duì)
91)關(guān)于分桶抽樣查詢,下列哪個(gè)說(shuō)法不正確()。(單選)
A.對(duì)于非常大的數(shù)據(jù)集,有時(shí)用戶需要使用的是一個(gè)具有代表性的查詢結(jié)果而不是全部
結(jié)果。Hive可以通過(guò)對(duì)表進(jìn)行分桶抽樣來(lái)滿足這個(gè)需求。
B.使用tablesample抽樣語(yǔ)句可以對(duì)分桶表進(jìn)行抽樣,語(yǔ)法:TABLESAMPLE(BUCKETx
OUTOFy)0
C.如果某個(gè)分桶表總bucket數(shù)為4,tablesample(bucket6outof8)表示總共抽?。?/8=)
1/2個(gè)bucket的數(shù)據(jù),抽取第2個(gè)bucket中后一半的數(shù)據(jù)。
D.以上不全對(duì)
92)在orderby全局排序下,所有數(shù)據(jù)會(huì)到一臺(tái)服務(wù)器進(jìn)行reduce操作,即只
有一個(gè)reduce,如果在數(shù)據(jù)量大的情況下會(huì)出現(xiàn)無(wú)法輸出結(jié)果的情況,如果
進(jìn)行了limitn,那只有n*mapnumber條記錄而已。只有一個(gè)reduce
也可以處理過(guò)來(lái)。
A.正確
B.錯(cuò)誤
學(xué)習(xí)知識(shí)點(diǎn)后請(qǐng)完成以下練習(xí)題
93)關(guān)于with...as...語(yǔ)句說(shuō)法描述錯(cuò)誤的是()。(單選)
A.with...as...需要定義一個(gè)sql片段,會(huì)將這個(gè)片段產(chǎn)生的結(jié)果集保存在內(nèi)存中,后續(xù)的
sql均可以訪問(wèn)這個(gè)結(jié)果集,作用與視圖或臨時(shí)表類似。
B.with...as...得到的結(jié)果集是一次性的,只在同一HQL語(yǔ)句里有效。
C.with...as...語(yǔ)句提高代碼可讀性(結(jié)構(gòu)清晰),而且簡(jiǎn)化sql,優(yōu)化執(zhí)行速度(with子句只
需要執(zhí)行一次)。
D.以上不全對(duì)
94)關(guān)于行轉(zhuǎn)列說(shuō)法描述錯(cuò)誤的是()。(單選)
A.CONCAT(stringA/col,stringB/col-):返回輸入字符串連接后的結(jié)果,支持
任意個(gè)輸入字符串,每一個(gè)參數(shù)可以是表中某列或者是某一個(gè)具體的字符串。
B.CONCAT_WS(separator,strl,str2,…):它是一個(gè)特殊形式的CONCAT()?第
一個(gè)參數(shù)剩余參數(shù)間的分隔符。分隔符可以是與剩余參數(shù)一樣的字符串。如果分隔符是
NULL,返回值也將為NULLo這個(gè)函數(shù)會(huì)跳過(guò)分隔符參數(shù)后的任何NULL和空字符串。
分隔符將被加到被連接的字符串之間。
C.COLLECT_SET(C01):函數(shù)只接受基本數(shù)據(jù)類型,它的主要作用是將某字段的值進(jìn)行
去重匯總,產(chǎn)生array類型字段,實(shí)現(xiàn)行轉(zhuǎn)列的功能,經(jīng)常與CONCAT_WS-"起使用。
D.以上不全對(duì)
95)關(guān)于列轉(zhuǎn)行說(shuō)法描述錯(cuò)誤的是()。(單選)
A.EXPLODE(col):explode是將hive一列中復(fù)雜的array或者map結(jié)構(gòu)拆分成多行,
只針對(duì)array和map兩種數(shù)據(jù)結(jié)構(gòu)有效。但是select使用UDTF做查詢的過(guò)程中查詢
只能包含單個(gè)UDTF,不能包含其它字段以及多個(gè)UDTF的情況。
B.LATERALVIEW主要解決在select使用UDTF做查詢的過(guò)程中查詢只能包含單個(gè)
UDTF,不能包含其它字段以及多個(gè)UDTF的情況。lateralview首先將utdf函數(shù)應(yīng)
用到每一行上,這時(shí)每一行經(jīng)utdf處理后得到多行輸出,這些輸出將會(huì)組建成一張?zhí)?/p>
擬表,然后這張?zhí)摂M表會(huì)跟當(dāng)前表進(jìn)行join操作,join完成之后會(huì)得出一張結(jié)果虛
擬表,這張結(jié)果表里就有了utdf生成的列,當(dāng)然原表的列除了utdf消耗的列之外肯
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國(guó)孕婦裝市場(chǎng)競(jìng)爭(zhēng)狀況及投資趨勢(shì)分析報(bào)告
- 2024-2030年中國(guó)多腔高速半自動(dòng)吹瓶機(jī)資金申請(qǐng)報(bào)告
- 2024-2030年中國(guó)啤酒行業(yè)發(fā)展規(guī)模及前景趨勢(shì)分析報(bào)告
- 2024-2030年中國(guó)廂式貨車行業(yè)市場(chǎng)發(fā)展格局及未來(lái)投資潛力分析報(bào)告
- 2024-2030年中國(guó)卸妝產(chǎn)品市場(chǎng)營(yíng)銷模式及發(fā)展競(jìng)爭(zhēng)力分析報(bào)告版
- 2024年版摩托車銷售合同3篇
- 2024年度環(huán)保型砂石生產(chǎn)設(shè)備采購(gòu)合同協(xié)議2篇
- 2021-2022學(xué)年河南省澠池高級(jí)中學(xué)高一月考數(shù)學(xué)試卷
- 2025年哈爾濱貨運(yùn)從業(yè)資格證模擬考試0題b2b
- 2025年鶴壁道路貨運(yùn)從業(yè)資格證考試
- 海洋平臺(tái)深水管道高效保溫技術(shù)
- 《新疆大學(xué)版學(xué)術(shù)期刊目錄》(人文社科)
- 充電樁維保投標(biāo)方案
- 《如何寫文獻(xiàn)綜述》課件
- 肛瘺LIFT術(shù)式介紹
- 通過(guò)《古文觀止》選讀了解古代文學(xué)的社會(huì)功能與價(jià)值
- 語(yǔ)言本能:人類語(yǔ)言進(jìn)化的奧秘
- 職業(yè)生涯規(guī)劃(圖文)課件
- 2024版國(guó)開電大??啤禘XCEL在財(cái)務(wù)中的應(yīng)用》在線形考(形考作業(yè)一至四)試題及答案
- 能源管理系統(tǒng)平臺(tái)軟件數(shù)據(jù)庫(kù)設(shè)計(jì)說(shuō)明書
- 中外園林史第七章-中國(guó)近現(xiàn)代園林發(fā)展
評(píng)論
0/150
提交評(píng)論