《Hive數(shù)據(jù)倉庫技術(shù)》(重大)知識點:評估試題及答案 第1-7章_第1頁
《Hive數(shù)據(jù)倉庫技術(shù)》(重大)知識點:評估試題及答案 第1-7章_第2頁
《Hive數(shù)據(jù)倉庫技術(shù)》(重大)知識點:評估試題及答案 第1-7章_第3頁
《Hive數(shù)據(jù)倉庫技術(shù)》(重大)知識點:評估試題及答案 第1-7章_第4頁
《Hive數(shù)據(jù)倉庫技術(shù)》(重大)知識點:評估試題及答案 第1-7章_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

學(xué)習(xí)知識點后請完成以下練習(xí)題

1)數(shù)據(jù)倉庫是為分析數(shù)據(jù)而設(shè)計,它的兩個基本的元素是維度表和事實表。維是看問題的

角度,比如時間,部門,維度表放的就是這些東西的定義,事實表里放著要查詢的數(shù)據(jù),

同時有維的ID。

A.正確

B.錯誤

2)下面哪個不是數(shù)據(jù)倉庫的特點()。(單選)

A.面向主題

B.集成

C.不可更新

D.規(guī)范化

3)數(shù)據(jù)倉庫主要是為決策分析提供數(shù)據(jù),所涉及的操作主要是數(shù)據(jù)的查詢。數(shù)據(jù)倉庫的數(shù)

據(jù)以只讀格式保存,且不隨時間改變,但是數(shù)據(jù)量會增加。

A.正確

B.錯誤

4)數(shù)據(jù)倉庫和。ds的數(shù)據(jù)源通常都是多樣化,有數(shù)據(jù)庫、文本、WebSocket接口、消息

隊列等,涉及的字段多且雜,所以元數(shù)據(jù)也需保存,即將描述數(shù)據(jù)的數(shù)據(jù)保存起來。

A.正確

B.錯誤

5)關(guān)于MyBatis描述錯誤的是()。(單選)

A.大量字段的POJO進(jìn)行部分映射時比較困難

B.用邏輯標(biāo)簽控制動態(tài)SQL的拼接

C.sql語句與代碼分離,存放于xml配置文件中

D.查詢的結(jié)果集與java對象自動映射

6)數(shù)據(jù)倉庫系統(tǒng)是一個信息提供平臺,他從業(yè)務(wù)處理系統(tǒng)獲得數(shù)據(jù),主要以星型模型和雪

花模型進(jìn)行數(shù)據(jù)組織,并為用戶提供各種手段從數(shù)據(jù)中獲取信息和知識。從功能結(jié)構(gòu)劃

分,數(shù)據(jù)倉庫系統(tǒng)至少應(yīng)該包含數(shù)據(jù)獲取、數(shù)據(jù)存儲、數(shù)據(jù)訪問三個關(guān)鍵部分.而Hive

作為一個數(shù)據(jù)倉庫工具,對于這個三個部分的實現(xiàn)都提供了相應(yīng)的支持。

A.正確

B.錯誤

學(xué)習(xí)知識點后請完成以下練習(xí)題

7)從傳統(tǒng)的在線交易系統(tǒng)轉(zhuǎn)換為基于主題的數(shù)據(jù)倉庫系統(tǒng),就涉及到從傳統(tǒng)的第三范式設(shè)

計到星型模型、雪花模型構(gòu)建的過程,以及數(shù)據(jù)的抽取、轉(zhuǎn)換、加載的過程,這個過程

就是數(shù)據(jù)倉庫的分層設(shè)計架構(gòu)。

A.正確

B.錯誤

8)數(shù)據(jù)分層是一套讓我們的數(shù)據(jù)體系更有序的行之有效的數(shù)據(jù)組織和管理方法,同時:數(shù)

據(jù)分層就了有一套行之有效的標(biāo)準(zhǔn)。

A.正確

B.錯誤

9)下面哪個不是數(shù)據(jù)分層的優(yōu)點()。(單選)

A.數(shù)據(jù)結(jié)構(gòu)化更清晰

B.統(tǒng)一數(shù)據(jù)口徑

C.增強數(shù)據(jù)復(fù)用能力

D.實時提供信息供決策

10)關(guān)于ODS描述錯誤的是()。(單選)

A.是最接近數(shù)據(jù)源中數(shù)據(jù)的一層,數(shù)據(jù)源中的數(shù)據(jù),經(jīng)過抽取、洗凈、傳輸,也就說傳

說中的ETL之后,裝入本層;一般來說ODS層的數(shù)據(jù)和源系統(tǒng)的數(shù)據(jù)是同構(gòu)的,主要

目的是簡化后續(xù)數(shù)據(jù)加工處理的工作。

B.從數(shù)據(jù)粒度上來說ODS層的數(shù)據(jù)粒度是最細(xì)的。

C.ODS層是滿足多個業(yè)務(wù)系統(tǒng)獲取數(shù)據(jù)并制作操作型報表的需求,保留半年以內(nèi)的明細(xì)

準(zhǔn)實時數(shù)據(jù)

D.ODS層只用于存儲當(dāng)前需要加載的數(shù)據(jù)。

11)關(guān)于數(shù)據(jù)倉庫層描述錯誤的是()。(單選)

A.數(shù)據(jù)倉庫層是我們在做數(shù)據(jù)倉庫時要核心設(shè)計的一層,本層將從ODS層中獲得的數(shù)

據(jù)按照主題建立各種數(shù)據(jù)模型,每一個主題對應(yīng)一個宏觀的分析領(lǐng)域,數(shù)據(jù)倉庫層排除

對決策無用的數(shù)據(jù),提供特定主題的簡明視圖。在DW層會保存BI系統(tǒng)中所有的歷史

數(shù)據(jù),例如保存1。年的數(shù)據(jù)。

B.在實際構(gòu)建過程中,業(yè)界也在不斷探索和完善數(shù)據(jù)分層架構(gòu),將DW層又細(xì)分為數(shù)據(jù)

明細(xì)層、數(shù)據(jù)中間層和數(shù)據(jù)服務(wù)層。

C.數(shù)據(jù)倉庫的數(shù)據(jù)都還是在Hive指定的目錄里(默認(rèn)是HDFS上的/user/hive/ware

house),分層一般就是創(chuàng)建不同的database。

D.數(shù)據(jù)倉庫分層的層名、表名都有具體標(biāo)準(zhǔn),比如ODS層database命名為ods,ODS

層表命名為ods_表名等。

學(xué)習(xí)知識點后請完成以下練習(xí)題

12)某一張員工表的字段構(gòu)成為:員工id(主鍵),姓名,性別,年齡,所屬部門,部門經(jīng)

理姓名,部門電話,違反了哪一范式()。(單選)

A.第一范式

B.第二范式

C.第三范式

D.第一、二范式

13)關(guān)于數(shù)據(jù)建模目標(biāo)描述錯誤的是()。(單選)

A.數(shù)據(jù)倉庫建模的目標(biāo)是通過建模的方法更好的組織、存儲數(shù)據(jù),以便在訪問性能、數(shù)

據(jù)與計算成本、使用效率和數(shù)據(jù)質(zhì)量之間找到最佳平衡點。

B.數(shù)據(jù)質(zhì)量是指整合所有數(shù)據(jù)源的數(shù)據(jù),改善數(shù)據(jù)統(tǒng)計口徑的不一致性,減少數(shù)據(jù)計算

錯誤的可能性,提供高質(zhì)量的、一致的數(shù)據(jù)訪問平臺。

C.數(shù)據(jù)倉庫建模的目標(biāo)是存在沖突的,比如為了提高訪問性能,可能會提高數(shù)據(jù)冗余(減

少Join),這樣會降低計算成本,但是會導(dǎo)致數(shù)據(jù)存儲成本很高,并且由于數(shù)據(jù)的冗

余,會提高數(shù)據(jù)統(tǒng)計口徑不一致的風(fēng)險。

D.以上不全對

14)關(guān)于下圖描述不正確的是()。(單選)

選修M間

(學(xué)4g卜-----------'

—學(xué)生<——?課程-----

11M

(r------------------JL---------

、一選性

A.這是一個ER模型

B.學(xué)生表與課程表是實體表,選修表是關(guān)系表

C.學(xué)生與課程的關(guān)系是l:n

D.以上不全對

15)關(guān)于下圖描述不正確的是()。(單選)

A.這是一個維度模型中的星型模式

B.Order_factl為周期性型事實表

C.Area_diml有維度冗余,反3NF

D.以上說法不全對

16)關(guān)于事實表與維度表說法錯誤的是()?(單選)

A.事實表用來存儲事實的度量(measure)及指向各個維的外鍵值、事件描述信息。

B.存儲隨著業(yè)務(wù)發(fā)生不斷產(chǎn)生變化(更新,新增)數(shù)據(jù)的表是周期型事實表

C.維度表的范圍很寬(具有多個屬性、列比較多);跟事實表相比,行數(shù)相對較?。和?/p>

常<10萬條;內(nèi)容固定不變,又稱編碼表。

D.以上說法不全對

17)關(guān)于建模說法錯誤的是()。(單選)

A.ER模型以及維度模型是當(dāng)前主流的建模方法。ER模型常用于OLTP數(shù)據(jù)庫建模,

應(yīng)用到構(gòu)建數(shù)倉時更偏重數(shù)據(jù)整合,站在企業(yè)整體考慮,將各個系統(tǒng)的數(shù)據(jù)按相似性、

一致性合并處理,為數(shù)據(jù)分析、決策服務(wù),但并不便于直接用來支持分析。

B.維度建模是面向分析場景而生,針對分析場景構(gòu)建數(shù)倉模型;重點關(guān)注快速、靈活的

解決分析需求,同時能夠提供大規(guī)模數(shù)據(jù)的快速響應(yīng)性能。針對性強,主要應(yīng)用于數(shù)據(jù)

倉庫構(gòu)建和OLAP引擎低層數(shù)據(jù)模型。

C.維度建模里的事實表就是ER模型里的關(guān)系表,維度表就是ER模型的實體表

D.以上說法不全對

18)關(guān)于維度模型的模式選擇說法錯誤的是()。(單選)

A.雪花模式與星型模式都屬于維度模型,因為他們的事實表一般會不滿足規(guī)范化設(shè)計。

B.雪花模式與星型模式的區(qū)別是雪花模式的維度表符合3NF,而星型模式不滿足。

C.Hive的分析通過MapReduce實現(xiàn),每多一個Join就會多出一個MapReduce過

程,對于雪花模型,由于存在著很多維度表之間的關(guān)聯(lián),這就會導(dǎo)致一次分析對應(yīng)多個

MapReduce任務(wù),而雪花模式由于不存在維度表的關(guān)聯(lián),因此一個MapReduce就可

以實現(xiàn)分析任務(wù),性能高很多。

D.以上不全對

學(xué)習(xí)知識點后請完成以下練習(xí)題

19)在實際項目中,關(guān)系數(shù)據(jù)庫里的數(shù)據(jù)需要同步到數(shù)據(jù)倉庫里進(jìn)行統(tǒng)計分析,針對不同的

表有不同的同步策略。數(shù)據(jù)同步策略的類型包括:全量表、增量表、新增及變化表、拉

鏈表。

A.正確

B.錯誤

20)維度表數(shù)據(jù)量比較小,完全可以做每日全量,就是每天存一份完整數(shù)據(jù),但對一些數(shù)據(jù)

量較大緩慢變化維度表需要保存數(shù)據(jù)的所有歷史狀態(tài),對于新增數(shù)據(jù)也保存,這時可以

做拉鏈表。

A.正確

B.錯誤

21)事務(wù)型事實表數(shù)據(jù)不會變化,而且數(shù)據(jù)量巨大,所以每天只同步新增數(shù)據(jù)即可,所以可

以做成每日增量表,即每H創(chuàng)建一個分區(qū)存儲。

A.正確

B.錯誤

22)周期型事實表,存每日全量的話,數(shù)據(jù)量太大,冗余也太大。如果用每日增量的話無法

反應(yīng)數(shù)據(jù)變化,需要保存歷史狀態(tài)和新增數(shù)據(jù),所以我們需要制作一張拉鏈表。

A.正確

B.錯誤

23)下面關(guān)于拉鏈表描述錯誤的是()。(單選)

A.對新增及變化表做定期合并,即某個時間切片的快照數(shù)據(jù)

B.拉鏈表,既能滿足對歷史數(shù)據(jù)的需求,又能很大程度的節(jié)省存儲資源

C.拉鏈表需增加兩字段,一個是表示該條記錄的生命周期開始時間,另一個是表示該條

記錄的生命周期結(jié)束時間;拉鏈表的數(shù)據(jù)為:當(dāng)天最新的數(shù)據(jù)UNIONALL歷史數(shù)據(jù)。

D.以上不全對

學(xué)習(xí)知識點后請完成以下練習(xí)題

24)Hive提供了與HBase的集成,使得能夠在HBase表上使用HQL語句進(jìn)行查詢插入操

作以及進(jìn)行Join和Union等復(fù)雜查詢,從而進(jìn)行統(tǒng)計分析。同時也可以將Hive表中

的數(shù)據(jù)映射到HBase中以便供前端低延時查詢。

A.正確

B.錯誤

25)關(guān)于Hive與HBase集成,描述錯誤的是()。(單選)

A.Hive與HBase利用兩者本身對外的API來實現(xiàn)整合,主要是靠HiveHBaseTablel

nputFormat進(jìn)行通信。

B.Hive訪問HBase中表數(shù)據(jù),實質(zhì)上是通過MapReduce讀取HBase表數(shù)據(jù)。

C.對HBase表的切分原則是一個Region切分成一個Split,即表中有多少個Regions.

MR中就有多少個Map;讀取HBase表數(shù)據(jù)都是通過構(gòu)建Scanner,對表進(jìn)行全表掃描,

如果有過濾條件,則轉(zhuǎn)化為Filter。

D.以上不全對

26)關(guān)于Hive與HBase集成應(yīng)用場景,描述錯誤的是()。(單選)

A.將Hbase作為Hive的數(shù)據(jù)源,讓Hbase支持類SQL操作。

B^HiveETL數(shù)據(jù)存入HBase,便于快速查詢。

C.構(gòu)建低延時的數(shù)據(jù)倉庫。利用HBase的快速讀寫能力,實現(xiàn)數(shù)據(jù)實時查詢。

D.以上不全對

27)關(guān)于hive與hbase版本兼容性,描述錯誤的是()。(單選)

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.以上不全對

28)測試Hive與HBase集成是否成功,可以依次啟動Hadoop、HBase>Zookeeper、Hive,

創(chuàng)建與HBase關(guān)聯(lián)的Hive管理表或外部表來測試。

A.正確

B.錯誤

學(xué)習(xí)知識點后請完成以下練習(xí)題

29)通過創(chuàng)建Hive管理表的方式創(chuàng)建IIBase表,或創(chuàng)建Hive外部表關(guān)聯(lián)HBase表,都需要通

過hive的create語句,使用hbase.columns,mapping屬性指定表字段的映射關(guān)系,使

用指定hbase的表名。

A.正確

B.錯誤

30)不能將數(shù)據(jù)直接load進(jìn)Hive所關(guān)聯(lián)HBase的表中,需要在Hive中創(chuàng)建臨時中間表,

用于load文件中的數(shù)據(jù),然后通過insert命令將中間表中的數(shù)據(jù)導(dǎo)入到Hive關(guān)聯(lián)

HBase的那張表中。

A.正確

B.錯誤

31)刪除與某HBase表關(guān)聯(lián)的Hive表,將會導(dǎo)致HBase表也被刪除,數(shù)據(jù)丟失。

A.正確

B.錯誤

32)HiveoverIIBase比HiveoverHDFS性能快。

A.正確

B.錯誤

33)HiveoverHBase性能瓶頸主要在兩方面:Map數(shù)、ScanRPC請求次數(shù)。

A.正確

B.錯誤

學(xué)習(xí)知識點后請完成以下練習(xí)題

34)如果在HiveClient界面執(zhí)行"sethive.fetch.task.conversion=more;"命令,

那么在本session中進(jìn)行全局查找、字段查找、limit查找等都不走mapreduce?

A.正確

B.錯誤

35)如果在HiveClient界面執(zhí)行"sethive.exec.mode.local.auto=true;n命令,

那么在本Session中,Hive將通過本地模式在單臺機(jī)器上處理所有的任務(wù)。對于小數(shù)

據(jù)集,執(zhí)行時間可以明顯被縮短。。

A.正確

B.錯誤

36)小表、大表進(jìn)行Join時,在HiveClient界面執(zhí)行"sethive.auto.convert.join

=true;”命令來使用mapjoin讓小的維度表(1000條以下的記錄條數(shù))先進(jìn)內(nèi)存,

在m叩端完成join,避免reducer處理,提高join效率。

A.正確

B.錯誤

37)大表Join大表有時join超時是因為某些key對應(yīng)的數(shù)據(jù)太多,而相同key對應(yīng)的數(shù)據(jù)

都會發(fā)送到相同的reducer上,從而導(dǎo)致內(nèi)存不夠。此時我們應(yīng)該仔細(xì)分析這些異常的

key,很多情況下,這些key對應(yīng)的數(shù)據(jù)是異常數(shù)據(jù),我們需要在SQL語句中進(jìn)行過濾。

有時雖然某個key為空對應(yīng)的數(shù)據(jù)很多,但是相應(yīng)的數(shù)據(jù)不是異常數(shù)據(jù),必須要包含在

join的結(jié)果中,此時我們可以把表中key為空的字段賦一個隨機(jī)的值,使得數(shù)據(jù)隨機(jī)

均勻地分不到不同的reducer上。

A.正確

B.錯誤

38)關(guān)于GroupBy導(dǎo)致數(shù)據(jù)傾斜,描述錯誤的是()。(單選)

A.默認(rèn)情況下,Map階段同一Key數(shù)據(jù)分發(fā)給一個reduce,當(dāng)一個key數(shù)據(jù)過大時就

傾斜了。

B.并不是所有的聚合操作都需要在Reduce端完成,很多聚合操作都可以先在Map端進(jìn)

行部分聚合,最后在Reduce端得出最終結(jié)果,所以可以通過參數(shù)設(shè)置開啟Map端聚合。

C.使用命令"sethive.groupby.skewindata=true”有數(shù)據(jù)傾斜的時候進(jìn)行負(fù)

載均衡

D.以上不全對

39)關(guān)于查詢優(yōu)化,描述錯誤的是()。(單選)

A.盡量避免笛卡爾積,因為join的時候不加on條件,或者無效的。n條件,Hive只

能使用1個reducer來完成笛卡爾積。

B.在SELECT中,只拿需要的列,少用SELECT*,一是減少耗內(nèi)存,二是提高I/。效

率,三是表一般都是列存儲,只拿需要的列,提高查詢效率。

C.當(dāng)使用外關(guān)聯(lián)時,如果將副表的過濾條件寫在Where后面,那么就會先全表關(guān)聯(lián),

之后再過濾,最好改為通過子查詢后,再關(guān)聯(lián)表。

D.以上不全對

40)關(guān)于動態(tài)分區(qū),描述錯誤的是()。(單選)

A.要動態(tài)分區(qū),需設(shè)置為非嚴(yán)格模式。

B.要根據(jù)實際情況指定在所有執(zhí)行MR的節(jié)點和每個執(zhí)行MR的節(jié)點上,分別最大一共

可以創(chuàng)建多少個動態(tài)分區(qū)。

C.需要指定整個MRJob中,最大可以創(chuàng)建多少個HDFS文件。

D.當(dāng)有空分區(qū)生成時,是否拋出異常。一般需要設(shè)置為true。

學(xué)習(xí)知識點后請完成以下練習(xí)題

41)如果在HiveClient界面執(zhí)行"sethive.fetch.task.conversion=more;w命令,

那么在本session中進(jìn)行全局查找、字段查找、limit查找等都不走mapreduce。

A.正確

B.錯誤

42)如果在HiveClient界面執(zhí)行"sethive.exec.mode.local.auto=true;n命令,

那么在本Session中,Hive將通過本地模式在單臺機(jī)器上處理所有的任務(wù)。對于小數(shù)

據(jù)集,執(zhí)行時間可以明顯被縮短。。

A.正確

B.錯誤

43)小表、大表進(jìn)行Join時,在HiveClient界面執(zhí)行"sethive.auto.convert.join

=true;”命令來使用mapjoin讓小的維度表(100。條以下的記錄條數(shù))先進(jìn)內(nèi)存,

在m叩端完成join,避免reducer處理,提高join效率。

A.正確

B.錯誤

44)大表Join大表有時join超時是因為某些key對應(yīng)的數(shù)據(jù)太多,而相同key對應(yīng)的數(shù)據(jù)

都會發(fā)送到相同的reducer上,從而導(dǎo)致內(nèi)存不夠。此時我們應(yīng)該仔細(xì)分析這些異常的

key,很多情況下,這些key對應(yīng)的數(shù)據(jù)是異常數(shù)據(jù),我們需要在SQL語句中進(jìn)行過濾。

有時雖然某個key為空對應(yīng)的數(shù)據(jù)很多,但是相應(yīng)的數(shù)據(jù)不是異常數(shù)據(jù),必須要包含在

join的結(jié)果中,此時我們可以把表中key為空的字段賦一個隨機(jī)的值,使得數(shù)據(jù)隨機(jī)

均勻地分不到不同的reducer上。

A.正確

B.錯誤

45)關(guān)于GroupBy導(dǎo)致數(shù)據(jù)傾斜,描述錯誤的是()。(單選)

A.默認(rèn)情況下,M叩階段同一Key數(shù)據(jù)分發(fā)給一個reduce,當(dāng)一個key數(shù)據(jù)過大時就

傾斜了。

B.并不是所有的聚合操作都需要在Reduce端完成,很多聚合操作都可以先在Map端進(jìn)

行部分聚合,最后在Reduce端得出最終結(jié)果,所以可以通過參數(shù)設(shè)置開啟Map端聚合。

C.使用命令"sethive.groupby.skewindata=true”有數(shù)據(jù)傾斜的時候進(jìn)行負(fù)

載均衡

D.以上不全對

46)關(guān)于查詢優(yōu)化,描述錯誤的是()。(單選)

A.盡量避免笛卡爾積,因為join的時候不加on條件,或者無效的on條件,Hive只

能使用1個reducer來完成笛卡爾積。

B.在SELECT中,只拿需要的列,少用SELECT*,一是減少耗內(nèi)存,二是提高I/O效

率,三是表一般都是列存儲,只拿需要的列,提高查詢效率。

C.當(dāng)使用外關(guān)聯(lián)時,如果將副表的過濾條件寫在Where后面,那么就會先全表關(guān)聯(lián),

之后再過濾,最好改為通過子查詢后,再關(guān)聯(lián)表。

D.以上不全對

47)關(guān)于動態(tài)分區(qū),描述錯誤的是()。(單選)

A.要動態(tài)分區(qū),需設(shè)置為非嚴(yán)格模式。

B.要根據(jù)實際情況指定在所有執(zhí)行MR的節(jié)點和每個執(zhí)行MR的節(jié)點上,分別最大一共

可以創(chuàng)建多少個動態(tài)分區(qū)。

C.需要指定整個MRJob中,最大可以創(chuàng)建多少個HDFS文件。

D.當(dāng)有空分區(qū)生成時,是否拋出異常。-一般需要設(shè)置為true。

學(xué)習(xí)知識點后請完成以下練習(xí)題

48)關(guān)于Map數(shù)設(shè)置,描述錯誤的是()。(單選)

A.如果數(shù)據(jù)文件有很多小文件,在map執(zhí)行前合并小文件,減少map數(shù)。

B.當(dāng)數(shù)據(jù)文件的文件都很大,任務(wù)邏輯復(fù)雜,map執(zhí)行非常慢的時候,可以考慮增加

Map數(shù),來使得每個m叩處理的數(shù)據(jù)量減少,從而提高任務(wù)的執(zhí)行效率。

C.當(dāng)數(shù)據(jù)文件大小接近塊大小時,比如有一個127m的文件,正常會用一個map去完成。

但只有一個或者兩個小字段,卻有幾千萬的記錄,如果map處理的邏輯比較復(fù)雜,用

一個map任務(wù)去做,肯定也比較耗時,這時需要增加map數(shù),提高并行度,提高運算

效率。

D.以上不全對

49)關(guān)于reduce數(shù)設(shè)置,描述錯誤的是()。(單選)

A.計算reducer數(shù)的公式N=min(每個任務(wù)最大的reduce數(shù),總輸入數(shù)據(jù)量/每個Reduce

處理的數(shù)據(jù)量),其中每個任務(wù)最大的reduce數(shù)和每個Reduce處理的數(shù)據(jù)量都可以指定,

兩者默認(rèn)值分別為:256M、1009。

B.還可以使用"mapreduce.job.reduces”參數(shù)直接指定每個job的Reduce個數(shù)。

C.reduce個數(shù)并不是越多越好,因為過多的啟動和初始化reduce也會消耗時間和資源;

另外,有多少個reduce,就會有多少個輸出文件,如果生成了很多個小文件,那么如果

這些小文件作為下一個任務(wù)的輸入,則也會出現(xiàn)小文件過多的問題。

D.在設(shè)置reduce個數(shù)的時候也需要考慮這兩個原則:處理大數(shù)據(jù)量利用合適的reduce

數(shù):使單個reduce任務(wù)處理數(shù)據(jù)量大小要合適。

50)系統(tǒng)資源比較空閑的時候,可以通過設(shè)置參數(shù)hive.exec.parallel值為true,開啟

并發(fā)執(zhí)行,增加集群利用率。

A.正確

B.錯誤

51)關(guān)于Hive嚴(yán)格模式,描述錯誤的是()。(單選)

A.對于分區(qū)表,除非where語句中含有分區(qū)字段過濾條件來限制范圍,否則不允許執(zhí)

行。

B.對于使用了orderby語句的查詢,要求必須使用limit語句。

C.限制笛卡爾積的查詢。

D.以上不全對

52)Hadoop的默認(rèn)配置通常是使用派生JVM來執(zhí)行map和Reduce任務(wù)的,這時JVM的啟

動過程可能會造成相當(dāng)大的開銷,尤其是執(zhí)行的job包含有成百上千task任務(wù)的情況。

JVM重用可以使得JVM實例在同一個job中重新使用N次,減少了JVM的啟動,縮短

了執(zhí)行時間,建議JVM重用次數(shù)越多越好。

A.正確

B.錯誤

學(xué)習(xí)知識點后請完成以下練習(xí)題

53)Hadoop的job通常是I/O密集型而不是CPU密集型的。如果是這樣的話,壓縮可以提

高性能,所以必須壓縮以節(jié)省存儲空間與I/O性能。

A.正確

B.錯誤

54)Hadoop2.7.3內(nèi)置支持GZIP和BZip2壓縮方案,但不支持Snappy壓縮、LZ0壓縮,需

要自行編譯增加相關(guān)的庫。

A.正確

B.錯誤

55)關(guān)于如何選擇一種壓縮編/解碼器,描述錯誤的是()。(單選)

A.每一個壓縮方案需要在壓縮/解壓縮速度和壓縮率間進(jìn)行權(quán)衡。另一個需要考慮的因

素是壓縮格式的文件是否是可分割的。

B.BZip2壓縮率最高,但是同時需要消耗最多的CPU開銷。GZip是壓縮率和壓縮/解壓

縮速度上的下一個選擇。因此,如果磁盤空間利用率和I/O開銷都需要考慮的話,那么

這2種壓縮方案都是有吸引力的。LZO和Snappy壓縮率相比前面的2種要小但是壓縮

/解壓縮速度要快,特別是解壓縮過程。如果相對于磁盤空間和I/O開銷,頻繁讀取數(shù)

據(jù)所需的解壓縮速度更重要的話,那么它們將是不錯的選擇。

C.BZip2和LZO提供了塊(BLOCK)級別的壓縮,也就是每個塊中都含有完整的記錄信

息,因此Hadoop可以在塊邊界級別對這些文件進(jìn)行劃分。但是GZip和Snappy將文

本文件邊界信息掩蓋掉了,GZip和Snappy壓縮的文件不可劃分。因此綜合考慮,想

高壓縮率則選擇BZip2,想選擇高并行度則選擇LZO,GZip和Snappy不可選。

D.以上不全對

56)關(guān)于hadoop支持的編碼/解碼器描述錯誤的是()。(單選)

A.LZO不是hadoop自帶的需要安裝,被壓縮后的數(shù)據(jù)需要建索引,還需要指定輸入格

B.bzip2、gzip、LZO、Snappy壓縮率依次升高,壓縮/解壓速度則相反

C.當(dāng)每個文件壓縮之后在130M以內(nèi)的(1個塊大小內(nèi)),都可以考慮用Gzip壓縮格式。

例如說一天或者一個小時的日志壓縮成一個Gzip文件。

D.Bzip2格式適合對速度要求不高,但需要較高的壓縮率的時候;或者輸出之后的數(shù)據(jù)

比較大,處理之后的數(shù)據(jù)需要壓縮存檔減少磁盤空間并且以后數(shù)據(jù)用得比較少的情況;

或者對單個很大的文本文件想壓縮減少存儲空間,同時又需要支持Split,而且兼容之

前的應(yīng)用程序的情況。

57)Snappy應(yīng)用場景為:當(dāng)MapReduce作業(yè)的Map輸出的數(shù)據(jù)比較大的時候,作為Map到

Reduce的中間數(shù)據(jù)的壓縮格式;或者作為一個MapReduce作業(yè)的輸出和另外一個MapR

educe作業(yè)的輸入。

A.正確

B.錯誤

學(xué)習(xí)知識點后請完成以下練習(xí)題

58)壓縮參數(shù)設(shè)置常用方式有兩種:修改配置文件和參數(shù)聲明方式。

A.正確

B.錯誤

59)要想永久設(shè)置hadoop支持Snappy壓縮格式,則需要在core-site,xml中修改io.comp

ression.codecs參數(shù)值,然后使用scp命令把該配置文件同步到其它主機(jī)。

A.正確

B.錯誤

60)要想永久設(shè)置mapper輸出壓縮格式為Snappy,則需要在core-site,xml中修改

mapreduce.map.output,compress和mapreduce.map.output,compress,codec的參數(shù)

值,然后使用scp命令把該配置文件同步到其它主機(jī)。

A.正確

B.錯誤

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.錯誤

62)想在當(dāng)前session里開啟reduce輸出階段壓縮,且壓縮格式為Gzip以節(jié)省存儲空間,

則需要在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.錯誤

學(xué)習(xí)知識點后請完成以下練習(xí)題

63)關(guān)于Hadoop源碼編譯支持Snappy壓縮,下面哪個軟件不需要安裝()。(單選)

A.Anaconda

B.JDK

C.Maven

D.gcc

64)安裝snappy好后,還要編譯Hadoop源碼的原因是為了得到Hadoop里的lib/native,

以替換原Hadoop集群每臺服務(wù)器里的lib/native。

A.正確

B.錯誤

65)使用命令"hadoopchecknative可以查看hadoop支持的壓縮類型。

A.正確

B.錯誤

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.錯誤

67)Snappy比Gzip壓縮率低,但壓縮/解壓速度比Gzip高,所以適合作為Map到Reduce

的中間數(shù)據(jù)的壓縮格式,或者作為一個MapReduce作業(yè)的輸出和另外一個MapReduce

作業(yè)的輸入。

A.正確

B.錯誤

學(xué)習(xí)知識點后請完成以下練習(xí)題

68)關(guān)于Hive數(shù)學(xué)內(nèi)置函數(shù)描述錯誤的是()。(單選)

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的對數(shù),base與a都是DOUBLE

類型

69)關(guān)于Hive內(nèi)置函數(shù)描述錯誤的是()。(單選)

A.cast(expras<type>)將expr強制轉(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.以上不全對

70)關(guān)于Hive內(nèi)置日期函數(shù)描述錯誤的是()。(單選)

A.from_unixtime(bigintunixtimel,stringformat])是將時間的秒值轉(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)前時間的下一個星期X所對應(yīng)的

日期。如:next_day('2015-01-14','TU')=2015-01-20表示以2015-01-14為開始時間,其

下一個星期二所對應(yīng)的日期為2015-01-20。

C.datediff(stringenddate,stringstartdate)是計算開始時間startdate到結(jié)束時間enddate相

差的天數(shù)。

D.以上不全對

71)關(guān)于Hive內(nèi)置函數(shù)描述錯誤的是()。(單選)

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對象,并返回這個對象的JSON格式,如果輸入的JSON是非法的將返回NULL,

注意此路徑上JSON字符串只能由數(shù)字字母、下劃線組成且不能有大寫字母和特殊字

符,且key不能由數(shù)字開頭,這是由于Hive對列名的限制。

D.regexp_extract(stringINITIAL_STRING,stringPATTERN,stringREPLACEMENT)會按

照J(rèn)ava正則表達(dá)式PATTERN將字符串INTIAL_STRING中符合條件的部分成

REPLACEMENT所指定的字符串,如里REPLACEMENT這空的話,抽符合正則的部

分將被去掉。$n:regexp_extract("foobar","oo|ar","")='fb1注意些預(yù)定義字符的使用,

如第二個參數(shù)如果使用門將被匹配到s;\\s,才是匹配空格。

72)關(guān)于Hive內(nèi)置函數(shù)描述錯誤的是()。(單選)

A.avg(col),表示求指定列的平均值,avg(DISTINCTcol)表示求去重后的列的平均值

B.explode(MAP)將hive一列中map結(jié)構(gòu)拆分成多行,轉(zhuǎn)換后每行對應(yīng)每個map鍵-值,

其中一個字段是map的鍵,另一個字段是map的值。

C.split(stringstr,stringpat)會按照正則表達(dá)式pat來分割字符串str,并將分割后的數(shù)組字

符串的形式返回。

D.substring(string|binaryA,intstart,intend)對于二進(jìn)制/字符串A,從start位置開始截取到

end位置的字符串并返回

學(xué)習(xí)知識點后請完成以下練習(xí)題

73)下面哪個不屬于Hive自定義函數(shù)()。(單選)

A.UDF

B.UDAF

C.UDGF

D.UDTF

74)下面關(guān)于自定義UDF函數(shù)描述錯誤的是()。(單選)

A.需要繼承org.apache.hadoop.hive.ql.exec.UDF

B.要實現(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ù)返回一個計算結(jié)果值。

需繼承org.apache.hadoop.hive.ql.exec.UDAF,并定義內(nèi)部表類,實現(xiàn)UDAFEva

luator?

B.UDAFEvaluator類的實現(xiàn)中,iterate()功能是每次都會對一個新的值進(jìn)行聚合計

算時時都調(diào)用該方法,一般會根據(jù)計算結(jié)果更新用來存放最終結(jié)果的變量,如果計算正

確或者輸入值合法就返回最終結(jié)果。

C.UDAFEvaluator類的實現(xiàn)中,terminatePartial()這個方法直譯過來就是“終止

部分”,部分聚合結(jié)果的時候調(diào)用該方法必須返回一封裝了聚合計算當(dāng)前狀態(tài)的對象,

類似于MapReduce的combiner,常常直接調(diào)用iterate()進(jìn)行部分聚合。

D.以上選項全錯。

76)下面關(guān)于自定義UDTF函數(shù)描述錯誤的是()。(單選)

A.自定義UDTF函數(shù)必須結(jié)合LATERALVIEW使用,將一列中復(fù)雜的array或者map結(jié)

構(gòu)拆分成多行。需繼承org.apache.hadoop.hive.ql.udf.generic.GenericUDTF,

實現(xiàn)實現(xiàn)三個方法initialize。、process。、close。。

B.UDTF首先會調(diào)用initialize。方法,此方法返回UDTF的返回行的信息(返回字段

個數(shù)與名稱,類型)。

C.初始化完成后調(diào)用process()方法,對傳入的參數(shù)進(jìn)行處理,可以通過forward。

方法把結(jié)果返回。

D.最后調(diào)用close。對需要清理的方法進(jìn)行清理。

77)下面關(guān)于臨時函數(shù)與永久函數(shù)描述錯誤的是()。(單選)

A.自定義函數(shù)有2種使用方式:臨時函數(shù)和永久函數(shù)。臨時函數(shù)只能在當(dāng)前客戶端使用,

僅對當(dāng)前session有效。永久函數(shù),創(chuàng)建后可以在任意客戶端使用。

B.創(chuàng)建永久函數(shù)與創(chuàng)建臨時函數(shù)實現(xiàn)都是四個步驟,步驟前兩步一樣,后面步驟不一樣。

創(chuàng)建永久函數(shù)需要把jar放到HDFS上,而創(chuàng)建臨時函數(shù)只需將jar放到hive服務(wù)器

本地;在Hive的命令行窗口創(chuàng)建函數(shù)格式不一樣

C.創(chuàng)建完永久函數(shù)之后,通過showfunctions可能并沒有看到我們自定義的永久函

數(shù),但是可以使用,而且推薦使用I永久函數(shù)。

D.以上不全對

學(xué)習(xí)知識點后請完成以下練習(xí)題

78)從選課表course中統(tǒng)計學(xué)生的人數(shù)查詢語句為:"selectcount(distinct*)entfrom

course;

A.正確

B.錯誤

79)已知employee表中position字段為array類型,要查看每位員工的第一職位的查詢語

句為:"selectposition[l]fromemployee;"。

A.正確

B.錯誤

80)Hive采用了類SQL的查詢語言HQL(hivequerylanguage),Hive的查詢語言與MySQL

完全一致。

A.正確

B.錯誤

81)關(guān)于Hive查詢語法描述錯誤的是()。(單選)

A.HiveSQL語言大小寫不敏感

B.HiveSQL可以寫在一行或多行,各子句一般分行寫,換行時行尾加上“\”

C.各子句一般分行寫,使用縮進(jìn)提高語句的可讀性

D.以上不全對

82)下面查詢語句錯誤的是()。(單選)

A.selectstu_noenamefromscore;

B.selectcount(*)entfromscore;

C.selectscore*0.5asscore_lfromscore;

D.以上不全對

學(xué)習(xí)知識點后請完成以下練習(xí)題

83)下列關(guān)于分組描述錯誤的是()。(單選)

A.GROUPBY語句通常會和聚合函數(shù)一起使用,按照一個或者多個列隊結(jié)果進(jìn)行分組,

然后對每個組執(zhí)行聚合操作

B.having只用于groupby分組統(tǒng)計語句,having語句先篩選出合乎條件的數(shù)據(jù)然后

再groupby分組

C.having后面可以使用分組函數(shù)

D.以上不全對

84)關(guān)于連接描述錯誤的是()。(單選)

A.Hive支持通常的SQLJOIN語句,但是只支持等值連接,不支持非等值連接

B.如果連接語句中有WHERE子句,會先執(zhí)行WHERE子句,再執(zhí)行JOIN子句

C.使用別名可以簡化查詢語句,使用表名前綴可以提高執(zhí)行效率

D.連接謂詞中不支持or,可以使用unionall,并去重的方法代替,使用COLLECT_SET()

函數(shù)來封裝不需要groupby的字段。

85)關(guān)于連接描述錯誤的是()。(單選)

A.,■fromtableltlrightjointable2t2ontl.id=tl.id”表示右外連接,

JOIN操作符右邊表中的所有記錄將會被返回,左邊表的指定字段沒有符合條件的值的

話,那么就使用null值替代。

B."fromtableltlleftjointable2t2ontl.id=表示左連接,JOIN

操作符左邊表中的所有記錄將會被返回,右邊表的指定字段沒有符合條件的值的話,那

么就使用null值替代。

C.”fromtableltlinnerjointable2t2"表示內(nèi)連接,只有進(jìn)行連接的兩個

表中都存在與連接條件相匹配的數(shù)據(jù)才會被保留下來。

D.”fromtableltlfulljointable2t2ontl.id=tl.id”表示滿外連接,

將會返回所有表中的所有記錄。如果任一表的指定字段沒有符合條件的值的話,那么就

使用NULL值替代。

86)下面哪一個選項與其它三個不等價()。(單選)

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”會先啟動一個MapReducejob對表e和表d進(jìn)行連接操作,然后會

再啟動一個MapReducejob將第一個MapReducejob的輸出和表1進(jìn)行連接操作。

A.正確

B.錯誤

學(xué)習(xí)知識點后請完成以下練習(xí)題

88)關(guān)于查詢語句中全局排序說法描述錯誤的是()。(單選)

A.使用orderby會對輸入做全局排序,轉(zhuǎn)換為MapReduce程序中某階段只有一個

reducer(多個reducer無法保證全局有序),而只有一個reducer,會導(dǎo)致當(dāng)輸入規(guī)模較

大時,需要較長的計算時間。

B.使用ORDERBY子句排序,默認(rèn)升序,ORDERBY子句在SELECT語句的結(jié)尾。

C在hive.mapred.mode=strict模式下,必須指定limit否則執(zhí)行會報錯。

D.以上不全對

89)下列哪個說法不正確()o(單選)

A.orderby可以按照別名排序,也可以根據(jù)多個列排序

B.DISTRIBUTEBY語句進(jìn)行分區(qū),類似MR中partition,SORTBY語句在分區(qū)內(nèi)進(jìn)

行排序,Hive要求DISTRIBUTEBY語句要寫在SORTBY語句之前。

C.當(dāng)distributeby和sortsby字段相同時,可以使用clusteredby方式代替它

們。但是clusteredby排序只能是升序排序,不能指定排序規(guī)則為ASC或者DESC。

D.以上不全對

90)關(guān)于分桶表數(shù)據(jù)存儲,下列哪個說法不正確()。(單選)

A.分區(qū)針對的是數(shù)據(jù)的存儲路徑;分桶針對的是數(shù)據(jù)文件。

B.分區(qū)提供一個隔離數(shù)據(jù)和優(yōu)化查詢的便利方式。不過,并非所有的數(shù)據(jù)集都可形成合

理的分區(qū),特別是之前所提到過的要確定合適的劃分大小這個疑慮。分桶是將數(shù)據(jù)集分

解成更容易管理的若干部分的另一個技術(shù)。

C.導(dǎo)入數(shù)據(jù)到分桶表中,發(fā)現(xiàn)并沒有分成4個桶,原因可能是未設(shè)置hive.enforce.

bucketing=true和mapreduce.job.reduces="l?

D.以上選項不全對

91)關(guān)于分桶抽樣查詢,下列哪個說法不正確()。(單選)

A.對于非常大的數(shù)據(jù)集,有時用戶需要使用的是一個具有代表性的查詢結(jié)果而不是全部

結(jié)果。Hive可以通過對表進(jìn)行分桶抽樣來滿足這個需求。

B.使用tablesample抽樣語句可以對分桶表進(jìn)行抽樣,語法:TABLESAMPLE(BUCKETx

OUTOFy)0

C.如果某個分桶表總bucket數(shù)為4,tablesample(bucket6outof8)表示總共抽取(4/8=)

1/2個bucket的數(shù)據(jù),抽取第2個bucket中后一半的數(shù)據(jù)。

D.以上不全對

92)在orderby全局排序下,所有數(shù)據(jù)會到一臺服務(wù)器進(jìn)行reduce操作,即只

有一個reduce,如果在數(shù)據(jù)量大的情況下會出現(xiàn)無法輸出結(jié)果的情況,如果

進(jìn)行了limitn,那只有n*mapnumber條記錄而已。只有一個reduce

也可以處理過來。

A.正確

B.錯誤

學(xué)習(xí)知識點后請完成以下練習(xí)題

93)關(guān)于with...as...語句說法描述錯誤的是()。(單選)

A.with...as...需要定義一個sql片段,會將這個片段產(chǎn)生的結(jié)果集保存在內(nèi)存中,后續(xù)的

sql均可以訪問這個結(jié)果集,作用與視圖或臨時表類似。

B.with...as...得到的結(jié)果集是一次性的,只在同一HQL語句里有效。

C.with...as...語句提高代碼可讀性(結(jié)構(gòu)清晰),而且簡化sql,優(yōu)化執(zhí)行速度(with子句只

需要執(zhí)行一次)。

D.以上不全對

94)關(guān)于行轉(zhuǎn)列說法描述錯誤的是()。(單選)

A.CONCAT(stringA/col,stringB/col-):返回輸入字符串連接后的結(jié)果,支持

任意個輸入字符串,每一個參數(shù)可以是表中某列或者是某一個具體的字符串。

B.CONCAT_WS(separator,strl,str2,…):它是一個特殊形式的CONCAT()?第

一個參數(shù)剩余參數(shù)間的分隔符。分隔符可以是與剩余參數(shù)一樣的字符串。如果分隔符是

NULL,返回值也將為NULLo這個函數(shù)會跳過分隔符參數(shù)后的任何NULL和空字符串。

分隔符將被加到被連接的字符串之間。

C.COLLECT_SET(C01):函數(shù)只接受基本數(shù)據(jù)類型,它的主要作用是將某字段的值進(jìn)行

去重匯總,產(chǎn)生array類型字段,實現(xiàn)行轉(zhuǎn)列的功能,經(jīng)常與CONCAT_WS-"起使用。

D.以上不全對

95)關(guān)于列轉(zhuǎn)行說法描述錯誤的是()。(單選)

A.EXPLODE(col):explode是將hive一列中復(fù)雜的array或者map結(jié)構(gòu)拆分成多行,

只針對array和map兩種數(shù)據(jù)結(jié)構(gòu)有效。但是select使用UDTF做查詢的過程中查詢

只能包含單個UDTF,不能包含其它字段以及多個UDTF的情況。

B.LATERALVIEW主要解決在select使用UDTF做查詢的過程中查詢只能包含單個

UDTF,不能包含其它字段以及多個UDTF的情況。lateralview首先將utdf函數(shù)應(yīng)

用到每一行上,這時每一行經(jīng)utdf處理后得到多行輸出,這些輸出將會組建成一張?zhí)?/p>

擬表,然后這張?zhí)摂M表會跟當(dāng)前表進(jìn)行join操作,join完成之后會得出一張結(jié)果虛

擬表,這張結(jié)果表里就有了utdf生成的列,當(dāng)然原表的列除了utdf消耗的列之外肯

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論