大數據剛興起的時候,數據主要用途是 BI 、報表、可視化。因此數據需要是結構化的,并且需要 ETL 對數據進行預處理。這個階段數據倉庫更適合完成這樣的需求,所以企業(yè)大部分需要分析的數據都集中到數據倉庫中。
而機器學習的興起對數據的需求更加靈活,如果從數據倉庫中提數會有一些問題。比如:數據都是結構化的;數據是經過處理的可能并不是算法想要的結果;算法同學與數倉開發(fā)同學溝通成本較大等。
我在工作中就遇到這種情況,做算法的同學需要經常理解我們的數倉模型,甚至要深入到做了什么業(yè)務處理,并且我們的處理可能并不是他們的想要的?;谏厦嬗龅降母鞣N問題,數據湖的概念應運而生。下面的表格對比一下數據湖和數據倉庫的區(qū)別,主要來自 AWS 。
從以上表格的區(qū)別上我們可以看到數據湖的應用場景主要在于機器學習,并且在用的時候再建 Schema 更加靈活。雖然數據湖能夠解決企業(yè)中機器學習應用方面的數據訴求,可以與數據倉庫團隊解耦。但并不意味著數據湖可以取代數據倉庫,數據倉庫在高效的報表和可視化分析中仍有優(yōu)勢。