現在資料庫的發展方向如何,在商業智能領域中(主要處理數據業務)作為一名 ETL 調度人員所需要的專業知識有哪些?


1,作為一枚ETL開發人員,首先最重要的應該不是技術,而是業務,對公司現有業務應該能有一個清楚的了解,對業務系統的分布,作用,架構等都應該有清楚的認識。

2,就技術而言,最重要的肯定是資料庫知識,必須了解目前市場上主流的商業資料庫如 oracle,db2等以及開源資料庫例如 greenplum,hadoop等。最好是精通其中一樣,了解其他。

3,操作系統而言,unix或linux的基礎知識應該具備。

4,其實目前市場上商業的和開源的ETL工具都挺成熟,informatic,kettle等等,但是若需要一些較為靈活的定製開發,最好還是要具備C或JAVA的開發知識


如果已經著手於ETL的調度工作,那ETL工具和流程應該很熟悉了,這樣基本就夠了。

如果你還想更進一步,那麼需要掌握的還是非常多而且非常雜的,前面的答主基本很全面了,做一下補充和說明吧:

1.業務,業務,業務

重要的事情說三遍,業務是你進行一切的基礎,是支撐技術的最最最根本的磐石,是一切數據來源和去處以及中間要經歷什麼處理的唯一導向;

2.建模

如果你要進行ETL開發,建模是少不了的,這個話題太大了,我本身也不是專家,推薦你看《數據倉庫》,講的不深,很實在;

3.腳本語言

至少熟練掌握一門腳本語言,不管是perl,shell,甚至python,這些語言在數據的抽取、清洗、轉化等處理上面有非常驚艷不俗的表現,你可以試著開發一些有用的腳本,也可以對前人的程序進行優化,反正就是,腳本,讓生活更美好=。=

4.資料庫

資料庫作為IT大智若愚的典型代表,多少人都以為會寫幾個SQL就是會資料庫了,實話跟你說吧,資料庫的水深著呢,什麼,你問我,我當然會資料庫啊,因為我會寫SQL啊哈哈

言歸正傳, 數據是一門比較古老而先進的技術,要成為一個好的資料庫開發人員或者管理員是要經過長時間的工作積累。這點只能在以後的工作和學習中多接觸,多運用新的知識點。充實自己的經驗和知識儲備。

5.Linux

不需要很深,但需要很廣,基本命令就不說了,自行百度即可,你還需要了解文件,目錄,進程等基本的管理和操作,推薦《鳥哥的私房菜》,不需要全部掌握,自取所需就行;

最後,ETL涉及的領域很廣,人也不是一口吃成個胖子的,慢慢積累不斷學習,比如如果項目要用到Excel,那你就還得學習下VBA基礎,學海無涯,共勉。


和PM明確設計思路 完善數據流在ETL流程中的每一個形態 設計思路不能局限於某種ETL工具。 Kettle是不錯的選擇 免費開源 功能強大 業務量和數據量都大的情況可以考慮IBM的Datastage。

另外不同形態的數據載入和轉換的思路也很重要,簡單的說如何在XML和資料庫之間傳接數據等等。


就我目前項目組的情況談談:

1、linux基本操作、shell等腳本:伺服器為linux系統,調度為crontab。編輯調度任務時間,就等於是用vi修改一個文件;如果有一些稍微複雜一點的邏輯,不方便在etl工具中處理的,得用shell或python之類的,寫一些腳本;調度日誌文件可能需要統計分析之類的,要用到shell腳本,或者簡單的使用awk、grep、sed等命令。

2、業務依賴:得知道先執行哪些,再執行哪些。這樣,第一,不至於把數據跑錯了;第二,某天,中間有一處邏輯報錯了,不至於不知道哪些要重新更新(據我的了解,有的依賴關係並沒有十分完善)。

3、資料庫、sql性能:需要調度的作業很多的的話,全部串列執行作業是不行的。並行的話,得考慮並行作業的數據量,對資料庫資源的消耗(排序,分組之類的),不同程度的單配能降低因資源不足帶來的報錯風險。

先這些了。


只是調度的話,你的崗位性質是不是有點接近運維了?因為你不用關心ETL的實現邏輯,只需要知道調度關係(作業/作業流依賴關係),而且這些關係應該都是開發人員提供。

你需要精通調度工具和操作系統


ETL主要是要熟業務。調度人員?這個真沒什麼好掌握的


調度的話,要看你在項目中的角色是什麼?

流程設計?調度實施?監控維護?

1.首先還是需要熟悉具體業務。

2.如果是流程開發的話,需要有一定的編程思想和經驗。

3.如果是實施人員的話,操作系統知識是必備的。

4.監控維護的話,需要熟練使用對應的ETL工具。

參考:TASKCTL - ETL調度技術平台


推薦閱讀:

Learn SQL | 基礎操作綜合練習
2017 年該學習的編程語言、框架和工具

TAG:資料庫 | 商業智能BI | ETL |