版本管理總結
作為數據從業者,在日常工作中,無論是ETL開發,還是數倉SQL開發,或者工作進展匯報,都可能會涉及到版本管理。這些場景都有什么特點?是否具有共同點呢?以下是一個簡單的總結。
1、通用版本管理工具
這類工具可將各類腳本(如SQL、存儲過程、python、shell等)進行版本管理。通常要有這些功能:記錄修改時間、修改人、版本號,進行版本回退、合并、沖突處理。在實踐中主要是這兩類工具:
a、SVN
SVN搭建方便,無費用,概念簡單:Checkout → Update → Commit,GUI 客戶端工具多,常見的有tortoiseSVN,使用便捷。在各種規模的團隊中都有使用。
b、Git
Git 是一個開源的版本控制系統(VCS)。概念多(工作區、暫存區、本地倉庫、遠程倉庫),學習曲線略陡。如果不想背 Git 命令,又想完整用 Git 功能,可以使用免費的圖形化客戶端軟件sourcetree。結合github,可以與全球開發者共同參與開發知名開源項目,并為其貢獻代碼。
SVN除了管理腳本外,還可以管理文檔,如word、Excel等,在團隊規模很小時,還可被當做網盤使用,做為團隊內部的資料分享工具。如以下的案例:

2、工具自帶版本管理功能
除了通用工具外,數據開發中使用到一些工具軟件往往會自帶版本功能,比如以下兩種典型案例:
a、網易大數據開發套件
網易大數據套件基于開源hadoop生態研發出的大數據全家桶,包含離線開發等功能。其離線開發模塊中可配置SQL腳本。該模塊支持上線發布,歷史版本查看以及回滾,這樣就直接在工具中實現了版本管理功能。



b、Informatica ETL工具
Informatica為商業版的ETL軟件,功能強大,性能穩定,Informatica 自帶 Repository(存儲庫)版本管理機制,所有映射(Mapping)、會話(Session)、工作流(Workflow)等對象都存儲在中央存儲庫數據庫中,支持對象的 Check-in / Check-out。可以直接在工具內查看歷史版本、恢復舊版本、比較差異。
3、文檔版本管理
以上兩種情形主要是處理代碼與流程,而在文檔處理方面,在線處理工具可以方便的進行文檔版本管理,既可以多人同時編輯,也可查看歷史編輯記錄,還可以還原到歷史的某個版本。在小團隊內統計工時、周報任務等場景中非常實用。

4、總結
有了版本管理工具,在團隊中,可以使得多個成員并行處理同一份內容;作為個人,可以基于同一份內容并行滿足多個需求。提高任務處理的并行度,滿足一個人同時處理多個任務,一個任務同時被多個人處理,應該就是版本管理工具的意義和價值。
浙公網安備 33010602011771號