2022-05-13

分為以下幾個方面:

一、啥是大數(shù)據(jù)技能?

二、為啥有面試官會問這類?

三、是否需要掌握?需要掌握多少?

四、如何復(fù)習(xí)準(zhǔn)備?

五、高頻面試題?

啥是大數(shù)據(jù)技能?

話不多說,直接看圖。

部分公司的jd中會寫上一句 “有Hadoop開發(fā)經(jīng)驗優(yōu)先”、“有一定HIVE SQL的性能優(yōu)化經(jīng)驗優(yōu)先”。

直白總結(jié),數(shù)據(jù)分析師,顧名思義,與數(shù)據(jù)有關(guān)。

因此,和數(shù)據(jù)分析師有關(guān)的大數(shù)據(jù)技能,即和數(shù)據(jù)上中下游相關(guān)的一些技能。

例如:上游的數(shù)據(jù)日志清洗,中游的數(shù)據(jù)提取、性能優(yōu)化,下游的應(yīng)用層建模等等。

為啥會考核?

并不一定是所有公司都會針對此技能考核。

取決于公司規(guī)模、團(tuán)隊歸屬部門及職能,以及部分面試官個人喜好。

1、公司規(guī)模

職責(zé)角度來說,

作為數(shù)據(jù)分析師,天天和數(shù)據(jù)庫打交道。

如果了解一些數(shù)據(jù)庫底層原理,對于代碼性能調(diào)優(yōu)、日常任務(wù)部署優(yōu)化等具有優(yōu)勢,可相對提高工作效率。

大公司:底層數(shù)據(jù)建設(shè)相對完善,不強(qiáng)制要求數(shù)據(jù)分析師一定需具備數(shù)據(jù)開發(fā)能力,基礎(chǔ)數(shù)據(jù)產(chǎn)品完備,已輔助數(shù)據(jù)分析師降低日常數(shù)據(jù)提取的操作成本。

中小型公司:絕大多數(shù)公司的底層建設(shè)相對不太完善,沒有操作方便的數(shù)據(jù)提取工具、沒有體驗友好的可視化界面、沒有自動代碼調(diào)優(yōu)的數(shù)據(jù)產(chǎn)品等等,可能需要數(shù)據(jù)分析師懂點(diǎn)Linux腳本語言、需要會點(diǎn)數(shù)據(jù)開發(fā)知識。

成本角度來說,

服務(wù)器資源是公司一大筆開銷成本。

對于大公司,不言而喻,糧草充足,這部分成本完全可以cover??;

中小公司,開源節(jié)流,每一項開支都要精打細(xì)算,耗資占比較高的服務(wù)器成本當(dāng)然也不例外。

所以有些中小型公司要求數(shù)據(jù)分析師,最好懂得一些數(shù)據(jù)開發(fā)基本原理知識,無論是對于資源的合理使用,還是日常工作的數(shù)據(jù)提取都有幫助。

2、團(tuán)隊部門及職能

Title為 “數(shù)據(jù)分析工程師” 的一般對大數(shù)據(jù)技能要求稍高一些,由于工作內(nèi)容會涉及到偏數(shù)據(jù)工程部分,因此面試中問到此類知識的概率和密度較高。

Title為 “數(shù)據(jù)分析師” 的大部分對大數(shù)據(jù)技能的態(tài)度是有則是加分項。

但有些崗位所屬部門偏中臺,或者歸屬于ETL的數(shù)倉團(tuán)隊,

由于所屬部門調(diào)性,數(shù)據(jù)分析師可能需要承擔(dān)部分ETL工作,比如構(gòu)建公共模型供給各業(yè)務(wù)支線使用,因此要求懂一些基礎(chǔ)的數(shù)開知識,方便開展工作。

3、面試官個人喜

面試中,有可能碰到交叉面,有些面試官并不一定是數(shù)據(jù)分析出身,會根據(jù)他所負(fù)責(zé)領(lǐng)域、日常工作常見問題進(jìn)行提問。

有可能面試官考核側(cè)重點(diǎn)不同,有些較注重應(yīng)聘者的基礎(chǔ)知識掌握是否扎實(shí),會針對數(shù)據(jù)分析師的基本功、實(shí)踐能力進(jìn)行考核提問。

因此,所遇面試官不同,偏好不同,會被問到的大數(shù)據(jù)相關(guān)技能的概率、知識深淺程度不同。

是否需要掌握?

一方面對照第二部分,盡量獲取到你所面試的行業(yè)和部門信息,直接看Title、看部門初步判斷。

另一方面取決于你的準(zhǔn)備時間是否充分。

由于數(shù)據(jù)分析師,不僅需要具備業(yè)務(wù)思維,又需要利用專業(yè)知識、從數(shù)據(jù)角度為業(yè)務(wù)賦能。

因此涉及知識面廣,所需要復(fù)習(xí)準(zhǔn)備的領(lǐng)域較多

所以,針對應(yīng)屆生

如果你的時間充分,其余方面準(zhǔn)備的差不多,在有余力的情況下,多學(xué)多準(zhǔn)備有益無害;

如果你的時間較為緊張,從考核概率和知識點(diǎn)密度角度來說,建議優(yōu)先準(zhǔn)備其他方面。

針對(準(zhǔn))應(yīng)屆生/社招:時間較為充裕,多學(xué)習(xí)總有好處。

如何復(fù)習(xí)準(zhǔn)備?

對于時間充裕的,可以閱讀相關(guān)書籍、去阿里云網(wǎng)站學(xué)習(xí)操作手冊,爭取較系統(tǒng)的了解掌握。(ps.公眾號資料包里有相關(guān)書籍推薦)

時間較為緊張的,還是那句話,用“應(yīng)試”思維,先準(zhǔn)備其他方面,學(xué)會“搏”考核概率高的知識點(diǎn)。

高頻面試題

問題1:數(shù)據(jù)傾斜是什么?造成原因有哪些?該怎么辦?

思路參考:詳見此篇【數(shù)據(jù)分析】面試高頻類型——大數(shù)據(jù)技能(一)

問題2:介紹一下Mysql和Hivesql的區(qū)別?

思路參考:可以從兩方面來回答。

一方面,可以從底層原理出發(fā)回答,例如:

查詢語言不同:Hive是hql語言,Mysql是sql語句;

存儲位置不同:Hive是建立在 Hadoop 之上的,所有數(shù)據(jù)存儲在hdfs中的,而Mysql數(shù)據(jù)是存儲在自己的本地文件系統(tǒng)中;

數(shù)據(jù)格式:Hive數(shù)據(jù)格式可以用戶自定義,Mysql有自己的系統(tǒng)定義格式;

數(shù)據(jù)更新:由于Hive的設(shè)計是針對數(shù)據(jù)倉庫的應(yīng)用而設(shè)計,應(yīng)用場景讀多寫少。故Hive中不支持對數(shù)據(jù)的增改。而Mysql中的數(shù)據(jù)可支持更新修改;

索引:Hive在加載數(shù)據(jù)的過程中不會對數(shù)據(jù)進(jìn)行任何處理,甚至不會對數(shù)據(jù)進(jìn)行掃描,因此也沒有對數(shù)據(jù)中的某些 Key 建立索引,在查詢數(shù)據(jù)時是通過Mapreduce很暴力的把數(shù)據(jù)都查詢一遍,因此訪問延遲較高。但由于 MapReduce 的引入,Hive 可以并行訪問數(shù)據(jù),故即使沒有索引,對于大數(shù)據(jù)量的訪問,Hive 仍然可以體現(xiàn)出優(yōu)勢。而Mysql有索引,對于少量特定條件的數(shù)據(jù)的訪問,數(shù)據(jù)庫可以有很高的效率,較低的延遲。

數(shù)據(jù)規(guī)模:由于 Hive 建立在集群上并可以利用 MapReduce 進(jìn)行并行計算,因此Hive存儲的數(shù)據(jù)量超級大,而Mysql只是存儲一些少量的業(yè)務(wù)數(shù)據(jù);

底層執(zhí)行原理:Hive底層是用的Mapreduce,而Mysql是excutor執(zhí)行器;

另一方面,也可以從作為使用者角度出發(fā)回答,例如:

Hivesql不支持非等值連接,一般使用left join、right join 或者inner join替代來處理邏輯;

Hive中不能使用省去join的寫法;

Hive不支持將數(shù)據(jù)插入現(xiàn)有的表或分區(qū)中,僅支持覆蓋重寫整個表。利用INSERT OVERWRITE 重寫覆蓋;

HQL不支持行級別的增、改、刪,所有數(shù)據(jù)在加載時就已經(jīng)確定,不可更改。

問題3:如果查詢一個數(shù)據(jù)很大很慢,該如何解決?

思路參考:

首先,Hive對SQL語句性能問題排查的方式,有2種:

使用explain查看執(zhí)行計劃;

查看YARN提供的日志。

常用的優(yōu)化思路有以下幾種:

SQL語句優(yōu)化:例如,是否使用了distinct,是否可以加入一些限定條件過濾等;

調(diào)參優(yōu)化:例如設(shè)置map、reduce的參數(shù);并行執(zhí)行,調(diào)節(jié)parallel參數(shù)等;

數(shù)據(jù)格式優(yōu)化:執(zhí)行同樣的SQL語句及同樣的數(shù)據(jù),只是數(shù)據(jù)存儲格式不同,執(zhí)行時長也會不同。

以空間換時間:例如,有效地減小數(shù)據(jù)集,拆寫邏輯,建立臨時表。

問題4:為什么要對數(shù)據(jù)倉庫分層?

思路參考:可以針對數(shù)據(jù)倉庫的使用方分角色來闡述。例如:

操作者:數(shù)據(jù)倉庫分層本質(zhì)是以空間換時間。通過數(shù)據(jù)分層管理可以簡化數(shù)據(jù)清洗的過程,相當(dāng)于把一項復(fù)雜的工作拆成了多個簡單步驟的工作,從一個大的黑盒變成了一個透明盒,每一層的處理邏輯相對易理解易操作,較易保證每一個步驟的正確性,當(dāng)數(shù)據(jù)發(fā)生錯誤的時候,一般不會牽一發(fā)而動全身,只需要局部調(diào)整某個步驟即可。若不分層,當(dāng)源業(yè)務(wù)系統(tǒng)的業(yè)務(wù)規(guī)則發(fā)生變化將會影響整個數(shù)據(jù)清洗過程,工作量巨大,耗時較長。

應(yīng)用者:提升應(yīng)用系統(tǒng)的用戶(比如BI)體驗和效率。例如

清洗后的臟數(shù)據(jù),簡化業(yè)務(wù)復(fù)雜結(jié)構(gòu)數(shù)據(jù),具有清晰數(shù)據(jù)結(jié)構(gòu),減少重復(fù)開發(fā);

規(guī)范的表&段名稱,統(tǒng)一的字段數(shù)據(jù)格式,完善的注釋內(nèi)容,易于定位和理解。

問題5:數(shù)倉分層的結(jié)構(gòu)有哪些?每一層的大致作用是什么?

思路參考:常見通用數(shù)倉分層設(shè)計:ODS、DW、APP。

每層主要作用如下:

ODS:數(shù)據(jù)源層。主要將各個業(yè)務(wù)數(shù)據(jù)導(dǎo)入到大數(shù)據(jù)平臺,作為業(yè)務(wù)數(shù)據(jù)的快照存儲。

DW:匯總數(shù)據(jù)層。

DWD:明細(xì)數(shù)據(jù)層。保留數(shù)據(jù)的原始粒度,在ODS基礎(chǔ)上對數(shù)據(jù)加工處理,提供清洗后較干凈的數(shù)據(jù)。

DWS:匯總數(shù)據(jù)層。主題層,根據(jù)業(yè)務(wù)域劃分,存放高度聚合匯總的數(shù)據(jù)。

APP:面向業(yè)務(wù)定制的應(yīng)用數(shù)據(jù)層。服務(wù)于業(yè)務(wù)特定場景,復(fù)用性不強(qiáng)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容