1. 程式人生 > >ETL開發面試問題加吐槽加職業發展建議

ETL開發面試問題加吐槽加職業發展建議

寫在前面:

作為甲方,對於乙方派來的開發人員,我是會自己面一下。總體來說遇到的水平不一,於是經過這三年多的面(cui)試(can),總結了一套自己的面試套路,中間也遇到過很多想吐槽的東西,於是大概記錄了下來。在後面, 也寫了些關於這方面的職業發展和我個人的建議。

問題很基礎,DBA路過誤笑,同行高手歡迎過來噴一噴,一起進步。

先說下面試的順序,首先我們現有的開發人員問基本的SQL語句問題和SSIS元件問題,然後我繼續問以下問題。

問題1:假如有一個job突然失敗了,那麼你第一時間應該先去看哪裡。

我的答案:

首先去看job history,看具體的錯誤資訊,根據這個資訊決定如何去解決問題。

如果在ETL中有自定義的日誌輸出,那麼再去看自定義日誌的內容。

吐槽:

居然很大一部分人不看job history,而是看自定義的日至。還有看哪裡都不知道的,開發ETL不管後期的維護和錯誤排查,就算再簡單的ETL,也不可能一直不出問題,好比寫個程式碼不知道如何排錯一樣,所以到底做沒做過ETL開發 ,這個問題直接能看出來。

另,往往大型專案會有自定義日至輸出,但是能說出這一點的先別給高分,因為很有可能只是知道而已,具體瞭解多少還要參考下面幾個問題。

問題2:假如一個job本來應該在凌晨兩點跑完的,但是早上上班的時候發現還沒有跑完,接下來會怎麼做。

我的答案:

這麼久的延遲最有可能是阻塞,比如下游報表或者客戶端仍在資料倉庫裡查數。

排除這個問題,先用系統自帶的報表檢視目前是否有阻塞,或者用sp_who3網上大家擴充套件的一個方法來進行查詢。如果發現ETL程序被阻塞,kill掉阻塞的程序,確保ETL能正常進行下去。

避免類似阻塞的情況發生,可以在ETL進行之前終止報表服務或查詢賬號,ETL成功之後再啟動他們。

吐槽:

很多人都歸結到資料量的巨增導致,這對一個正常的業務來說可能性比較低一些,但如果能說出這個原因也會多少加一點分。能知道用sp_who3來看目前有哪些語句在轉的會加很大一部分分數,這個意識很關鍵。

問題3:接到使用者抱怨說一個報表執行的很慢,如何處理。

我的答案:

先跑一下這個報表,重現一下執行緩慢的現象。然後在sql server端sp_who3一下看看到底是卡在了哪條查詢,把查詢單獨拿出來進行進一步分析和優化。

點評:

偶爾問題也會問成ETL執行很慢,像上一個問題一樣,主要還是考察是否有檢視當前哪些語句在跑的意識。

吐槽:

會有人回答說把報表原始碼拿過來一行一行去分析,這樣雖然有可能找到問題,但是很慢。所以我會對做這個超過三年經驗的人產生質疑。

問題4:如何進一步優化

我的答案:

看執行計劃,檢視幾個關鍵點,比如索引缺失,SQL語句需要優化等問題。

點評:

能第一時間想到索引問題的加分,能想到SQL語句寫法不地道的也加分。

這個需要追問,進一步考察執行計劃,詳見下一個問題。

吐槽:

有不少說一行一行去看的,所以會繼續追問執行計劃的問題。

問題5:如何快速的知道是由於索引缺失導致的

我的答案:

看執行計劃,通常執行計劃會直接提示具體缺失哪個索引,並且提供相應語句建立索引。

另外這個時候在執行計劃裡,看是否有表掃描,如果有說明索引缺失,如果看到索引查詢說明是命中索引的。

如果系統無法給出的,可以先看執行計劃裡哪部分消耗的資源(百分比)最高,然後看裡面所消耗的io數值是否很高,如果是的話說明索引也是有缺失,需要根據具體的情況新增索引。

點評:

如果提到WHERE順序的加分。

沒提執行計劃,但是提到看join條件,再看有沒有索引的,我只能少加點分,畢竟這樣查問題效率不高。

吐槽:

居然很少人提到系統自動的索引缺失提示。。。

半數人說看執行計劃裡每個步驟的時間 。。。

也有半數人知道看執行計劃,但是說不出表掃描和索引掃描。

能看io消耗的真的很少很少。

問題6:索引的進一步問題。

比如:

聚集索引和非聚集索引的區別。(看對葉級結點的區別)

為什麼聚集索引只能有一個。

一個表是否有聚集索引,對這個表的資料儲存方式區別是什麼。(這個回答不上來通常不減分)

吐槽:

具體答案就不寫了,主要看回答是否能回答到點上,比如葉級結點的區別,資料排序,堆表等。

面試的所有人當中,能把部分問題說明白的很少,部分人也只是背書。

寫在後面:

這些問題,估計做DBA的或者BI的同行應該是在邊看邊笑吧,但我吐槽的大家也看到了,能答到點子上的,在北京,很少,也許你說我們的vendor不給力,我可沒這麼說。

另外匯總了下我個人認為的,ETL開發對於不同工作年限的最低要求。

工作一年的要求:

熟悉各種SQL語句的寫法,熟悉SSIS包裡常用的模組。

三年:

知道索引,知道優化SQL語句,熟悉建模。能夠處理日常ETL以及資料庫級別的常見問題。

五年:

知道如何規劃整個ETL,對設計資料倉庫非常熟悉。

七年:

可以帶領團隊實施大規模的專案。

最後的最後:

說實在的,這行能一直幹下來的很少很少,大多都是半路轉過來,或者幹不下去轉別的了。

另外純ETL開發從技能角度來說,如果只偏向這個方向確實以後的路越走越窄,同時配合些輔助的技能會路子寬很多,比如報表開發,DBA,架構,大資料等。

還有,甭管做什麼,對業務的理解也很重要,而做BI這方面,是最適合對整個公司的系統架構有比較寬泛和略微深入的理解的,很多招聘要求裡,都需要對某領域的業務有一定的瞭解,所以可以看出來這個的重要性,以及從乙方跳到甲方的重要資本。

相關推薦

ETL開發面試問題職業發展建議

寫在前面: 作為甲方,對於乙方派來的開發人員,我是會自己面一下。總體來說遇到的水平不一,於是經過這三年多的面(cui)試(can),總結了一套自己的面試套路,中間也遇到過很多想吐槽的東西,於是大概記錄了下來。在後面, 也寫了些關於這方面的職業發展和我個人的建議。 問題很基礎,DBA路過誤笑,同行高手歡

程式設計師被個班就喊苦喊累,不願意996,真不要臉

大家都知道如今網際網路行業都是十分辛苦的,基本都是996工作制,這也就導致了不少年輕人才30出頭就開始地中海了,尤其對於程式設計師來說的話,每天長時間的腦力勞動也是十分辛苦的。 最近看到了這樣一則帖子,說到現在的年輕人加班幾個小時就喊苦喊累,進而引起網友熱議,由於爭論過於激烈,該貼還遭到多次舉報

2018/11/14公眾號開發筆記(日記)

首先,怎麼說呢,甲方爸爸提開發需求就像在飯館點菜,是想一出是一出。經常說這要改成什麼樣,哪裡要改成什麼樣,做了一半說不要了,做好了說算了還是原來那樣吧。 好了,不抱怨了,我去磨刀。 講講甲方槽點。 1、用tp5.0寫的,功能也就那些。展示性公眾號,帶個手機上傳圖文功能。對沒錯,手機上傳圖文(敲重點:把富

清華畢業程式設計師面試:基礎這麼差,張口就要1萬8,都膨脹成這樣了

一名清華學子在面試某網際網路大廠程式設計師崗位時,卻被面試官一頓吐槽,具體是所為何事呢?讓我們看看這名面試官的吐槽內容:現在剛畢業的小孩,基礎真是不堪啊,我在網際網路外企,上午面了一個畢業一年的清華的小孩,讓寫個紅黑樹的新增刪除演算法,支吾了半個小時,寫的還不對,張嘴還要18000,都膨脹成

清華學生被面試:簡單的演算法問題都不知道,清華的就這水平

一名網際網路公司的面試官在網路上吐槽其剛剛面試的一名清華碩士應屆生,稱沒想到水平這麼差:今天面試一個清華的碩士應屆生,問到快速排序的時間複雜度,不知道。清華的都這樣,現在學生都是這水平的嗎? 據瞭解,其問的是一個演算法問題,該清華應屆生面試的也是演算法工程師崗位,結果沒有回答出來,被這名面

阿里面試面試都通過了,結果敗在了背景調查上

一名程式設計師應聘阿里旗下企業支付寶,所有面試都通過了,結果卻敗在了背景調查上:支付寶P7 offer背景調查沒過,沒說什麼原因,再次進阿里失敗了,請問以後還有機會嗎? 據瞭解,大部分企業都會對面試者進行背景調查,所謂背景調查就是對面試者的簡歷背景做詳盡調查,以確保其提供的資料真實有效而非

2014華為校園招聘面試—失敗

今天華為面試失敗,來這裡吐槽,發發牢騷,緩解一下情緒。感悟幾點如下: 1.面試時間很長。昨晚收到面試通知,今早就提前趕到華為,9:40簽到,10點的時候叫到我,被面試官帶到一個很多的大廳裡面,那裡有很多人在面試,一對一,而不是群面(當時感覺蠻不錯的,這至少說明華為尊重每一位

【絕對乾貨】Swift是花拳繡腿嗎?從Swift談開發語言與程式設計師的職業發展

首先我們考察一下Swift究竟是一個什麼樣的變成語言。在2014年蘋果的WWDC(世界開發者大會)上,Swift首次亮相。蘋果號稱Swift有3大特性: 安全(SAFE)現代(MODERN)強大(POWER)   安全特性中首先介紹的是變數和常量的型別安全: 例如在下面的程式碼中,Swift用關鍵

35歲還在招聘網站投遞簡歷跳槽?看看職業發展建議吧!

你知道“35歲現象”嗎?許多企業招募人才時,明確規定年齡在35歲以下。如果到了35歲還在招聘網站投遞簡歷跳槽,就該反省自己了。無論你有沒畢業,也無論你多少歲,看看這24條職業建議。越早明確方向,發展前途越光明!

轉載一封大神的職業發展建議

出於作者文章最後的意願,就不貼連結了 只挑選對自己現階段益處大的一些,如下: 選擇因素 技術能力決定了你的薪資增長加速度. 在月薪1w到3w中間. 技術能力助力會較多. 管理能力決定了你的薪資階層. 月薪2w-5w是管理層基本薪資. 後面的要靠公司的股票和獎金業務能力決

#清華程式設計師要求3萬月薪期權,HR:沒忍住,狠狠地噴了他

程式設計師和HR好像是生來就不對付的,經常在程式設計師圈子裡面拿HR開玩笑的,往往HR都是給人一種仗著公司趾高氣揚的感覺,都是應聘者面前的一道坎。萬事有例外,就有一名清華求職者面試時要求月薪3萬,竟讓HR無力吐槽。如果有正在學java的程式設計師,可來我們的ja

光貓手機自動激活系統-開發指南-004- OLT添vlan(ADD- VLAN)

手機 光貓 手機激活系統 -開發指南-004- olt添加vlan(add- vlan) ADD-VLAN::OLTID=10.124.202.199:CTAG::VLAN=2108,DESC=2108,VLANMODE=SINGLE,PORTLIST=NA-0-19-0|NA-0-20-0|

Superset 開發(一)添一個頁面

rate rst view key pri pre span bsp interface superset\models\core.py 下進行添加模型 class ExeclInfoAdd(Model): __tablename__ = ‘ExeclInfoAd

NDK開發使用cMake方式 - 添其他的預編譯庫

csdn per highlight 方式 make ati lists sdn jni NDK 開發使用cMake方式,網上能找到不少的教程,這裏推薦一篇博文: http://blog.csdn.net/wl9739/article/details/52607010 關於

使用Thinkphp3.2開發會員管理系統-添頁面

weight extends play char striped orm 技術分享 log lang 一、更改默認控制器Index的代碼,文件位置:www\Application\Home\Controller 源代碼: <?php namespace Home\C

Laravel Service Provider 開發時設置延遲載時遇到的問題

style -c 代碼註釋 HR ade 簡單 tle 延遲加載 更新 因實際項目需求,近日在開發 laravel-database-logger 包的時候,發現設置 ServiceProvider defer 屬性設置為 true 時,會導致在register 方法中註冊

java 測試開發基礎知識(類載,JVM等)

常量表達式 對數 前端 .cn 都是 新的 ron 技術分享 區域 寫在開頭: 面試的時候別人很可能會問你的java原理,.class load 原理, jvm機制,這些都是Java的底層知識,特整理如下: 1. 首先,編寫一個java程序,大家會用ide編寫一個例

程式設計師面試造火箭,結果進來寫hello world?

程式設計師在外找工作,要經歷面試,筆試,一路四面,就像過五關斬六將那樣。但是呢,就有程式設計師發帖吐槽,面試造火箭一樣的難,入職了你讓我擰螺絲?一路四面進來,問的挺深挺全,結果進來寫helloworld??除了薪資待福利好 工資一點激情都沒有… 從帖子可以看著樓主深深的無奈,也能看

PCB genesis短引導孔實現方法

 一.何為短槽      短槽通常定義:槽長小於2倍槽寬      如:槽長1.8mm,槽寬1.0mm       二.為什麼要加短槽加引孔呢        短槽

某名企程式設計師:剛面試了一個專科生,連一個專科都想進名企?

雖然說行業不分貴賤,每個崗位都有存在的價值,但是現實生活中或多或少都會存在一些居高臨下的心態,比如我混得比你好,就是比你強等等。這樣的事情也發生在了一名名企的程式設計師身上。該程式設計師在某網際網路知名企業工作,無意中面試了一個專科生,稱不得不懷疑HR的工作能力了,專科生都想進名企?很顯然,