資料庫開發工程師

資料庫開發工程師

資料庫開發工程師(Database Developer)是從事資料庫管理系統(DBMS)和資料庫套用軟體設計研發的相關工作人員的統稱,他屬於軟體研發工程師,但又有一部分運維工作的內容。他主要從事軟體研發的工作,但同時也要參與資料庫生產環境的問題最佳化和解決。

資料庫開發工程師與傳統的資料庫管理員(簡稱DBA,也稱為資料庫工程師)是不同的職位。傳統的DBA主要屬於運維職位,而資料庫開發工程師則屬於軟體研發職位。但二者也有部分工作內容重合,比如都要跟進資料庫生產環境出現的故障問題,其中DBA主要負責故障處理,而資料庫開發工程師主要跟進自己開發的系統模組出現的bug或性能問題。

根據研發的內容不同,資料庫開發工程師可以分為兩大發展方向:資料庫核心研發和資料庫套用軟體研發:

a) 資料庫核心研發:主要負責設計和研發資料庫管理系統,重點關注的是資料庫管理系統內部架構的設計和實現,比如MySQL分支的開發、Oracle 10g新特性開發等;

b) 資料庫套用軟體研發:主要負責設計和研發資料庫管理系統衍生的各種套用軟體產品,重點關注的是資料庫外部套用軟體產品架構的設計和實現,比如分散式資料庫、資料庫中間件等。

基本介紹

主要職責,工作內容,技能要求,1. 通用基礎技能要求,2. 高階要求,3. 軟素質要求,職業發展,1. 人才來源,2. 職業發展方向,3. 職業發展路徑,行業競爭力,1. 薪酬競爭力,2. 市場需求,3. 技術能力,

主要職責

  • 深入研究資料庫核心相關技術,設計並實現資料庫管理系統
  • 深入了解資料庫套用的業務需求,主導設計不同資料庫架構的套用軟體,並持續最佳化
  • 根據業務需求設計資料庫邏輯和物理模型, 開發資料庫生產環境所需要的存儲過程、函式、腳本等
  • 參與資料庫生產環境的問題最佳化和解決
  • 探索、研究新的資料庫架構發展方向

工作內容

資料庫開發工程師的日常工作是設計、開發資料庫系統和資料庫套用軟體,因此與軟體研發的過程一樣,會覆蓋需求、設計、編程和測試四個階段:
  1. 需求:深入調研用戶市場需求,認清項目的套用場景,解決的問題,性能指標等,需要與資料庫系統使用方反覆溝通,確定具體的需求。
  2. 設計:根據收集整理的需求文檔設計資料庫系統軟體的模型和架構,劃分模組分別進行概要和詳細設計。
  3. 編程:按照模組分工和設計文檔,進行編碼和調試。
  4. 測試:將開發完成的資料庫系統交給測試人員進行測試,主要使用的測試方法有黑盒測試、白盒測試、壓力測試、性能測試等,測試全部通過後即可等待發布。
當資料庫系統軟體完成發布後,資料庫開發工程師還需要跟進具體的生產環境使用情況,參與具體問題的改進和最佳化,提供解決方案。

技能要求

1. 通用基礎技能要求

1)精通一種常用程式語言(C/C++、JAVA、PHP等),了解主流的框架、庫使用和原理
2)深入了解計算機數據結構和算法設計,具備Linux作業系統基礎知識
3)掌握基本的網路編程知識,熟悉多執行緒編程及其技巧
4)熟練掌握Linux、web server、資料庫、快取相關技術的使用,了解內部實現機制為最優
5)掌握資料庫基本原理和知識,熟悉SQL語法規則和特點
6)有開源資料庫(MySQL、PostgreSQL等)研究和開發經驗

2. 高階要求

1)熟練掌握分散式系統理論並有著大量實踐
2)開源社區成員,為開源軟體提交過patch
3)精通Linux系統IO、鎖等調優技術

3. 軟素質要求

1)有良好的英語閱讀能力,能夠閱讀英文資料
2)自我驅動,主動的學習能力和較強的動手能力
3)工作認真細緻,有責任心,勤奮踏實,善於思考問題
4)有時間觀念,獨立性強,溝通能力好,具有團隊合作精神

職業發展

1. 人才來源

資料庫開發工程師的人才來源可以分為2個方面:應屆畢業生和社招。
1)應屆畢業生:對於應屆畢業生來說,要想成長為資料庫開發工程師需要具備一些軟體研發方面的技能,同時對資料庫理論基礎有一定了解,對於資料庫管理系統有一些實踐經驗,再加上較好的主動性、工作認真細緻、具有團隊合作精神即可;
2)社招:社會招聘主要可以從軟體研發和DBA兩個方面來篩選人才。對於之前從事大型分散式軟體系統研發的工程師,比較容易轉型為資料庫開發工程師,只需要熟悉一些資料庫架構和理論基礎即可。而對於DBA來說,已經擁有大量的資料庫運維經驗,對於資料庫研發工作非常有幫助,此時再需要掌握一定的代碼編寫能力和分散式計算的基礎,即可轉型成為資料庫開發工程師。

2. 職業發展方向

資料庫開發工程師的職業發展主要分為兩條線:技術方向和管理方向。
1)技術方向:根據研究領域的不同,主要分為資料庫架構師和資料庫運維技術專家兩個方向。
  • 資料庫架構師:熟練掌握各種資料庫管理系統的架構和內部原理,能夠根據實際業務需求,設計出不同的資料庫套用系統架構,並在業務高速發展時,提供資料庫模型設計的最佳化建議和解決方案
  • 資料庫運維技術專家:這個發展路線與高階DBA的發展路線比較相似。當資料庫開發工程師在跟進和解決資料庫生產環境問題的過程中,積累了大量的運維經驗,熟練掌握了大量先進的資料庫運維技術,比如分散式部署、性能監控、彈性擴容等,可以成長為資料庫運維技術專家,為各產品提供資料庫架構設計和最佳化建議。
2)管理方向:從資料庫開發工程師開始持續發展,積累了一定技術深度,並且通過與業務部門互動溝通鍛鍊了較強的協調和推進能力,可以轉型為管理崗位。管理崗位的常見發展路徑包括經理、總監、CTO、CEO等,往往在小型創業公司管理崗位發展迅速,在中大型公司的發展速度相對較慢。

3. 職業發展路徑

    資料庫開發工程師的常見職業發展路徑如下圖,供參考:
    資料庫開發工程師

    行業競爭力

    1. 薪酬競爭力

    1)橫向對比:資料庫開發工程師屬於專項領域的高質量技術人才,市場需求旺盛,薪酬競爭力較高,往往高於軟體研發工程師
    2)縱向對比:隨著經驗和技術深度的積累,越資深的研發工程師往往越值錢。但是公司規模不同,薪酬往往差別較大。由於小公司在資料庫研發領域起步晚,需求低,因此中小公司的薪酬往往略低於BAT等大型公司。
    3)第三方薪酬調查報告:
    《2013年資料庫工程師薪酬調查報告》
    《Database Developer Salary》

    2. 市場需求

    1)資料庫研發行業的市場價值:參考ITOM(IT Operation Management) 2013年的市場規模是190億美金
    2)人員需求:中大型公司尤其緊缺,初創公司需求量較低

    3. 技術能力

    1)資料庫開發工程可以接觸到最前沿的資料庫系統,目前業界比較流行的資料庫系統主要分為關係型的和非關係型的,這些資料庫都成為當前國內外大型公司的底層存儲系統。
    關係型資料庫:MySQL、Oracle、SQL Server、IBM DB2
    非關係型資料庫(NoSQL):Redis、MongoDB、HBase、Cassandra
    2)根據不同套用場景,資料庫架構又可以分為單機資料庫、集群式資料庫、分散式資料庫和雲資料庫等。由於經驗的不同,資料庫開發工程熟練掌握的資料庫架構往往不同,越高階的資料庫開發工程掌握和了解業界的資料庫架構前沿知識越豐富。

    相關詞條

    熱門詞條

    聯絡我們