更多精彩好文,盡在微信公眾號《大數(shù)據(jù)階梯之路》
一、數(shù)據(jù)湖是什么
數(shù)據(jù)湖相當于一個匯集著來自各個異構數(shù)據(jù)源的原生態(tài)數(shù)據(jù),不經(jīng)過加工清洗數(shù)據(jù),數(shù)據(jù)的格式也五花八門,結構化和半結構化和非結構化的數(shù)據(jù)都能夠被數(shù)據(jù)湖管理起來。
那么就引申出數(shù)據(jù)湖的特點:
- 數(shù)據(jù)湖的存儲能力極強,能容納海量數(shù)據(jù)
- 數(shù)據(jù)湖中數(shù)據(jù)格式多,不止結構化數(shù)據(jù),還能存儲半結構化和非結構化數(shù)據(jù)
- 數(shù)據(jù)湖提供從異構數(shù)據(jù)源中提取數(shù)據(jù)和元數(shù)據(jù)的功能,并能將它們吸納匯聚到混合存儲系統(tǒng)中去
- 數(shù)據(jù)湖提供數(shù)據(jù)轉換引擎,支持數(shù)據(jù)集轉換、清洗以及與其他數(shù)據(jù)集的集成,并提供用于檢索和查詢數(shù)據(jù)湖數(shù)據(jù)和元數(shù)據(jù)的接口
二、數(shù)據(jù)湖與數(shù)據(jù)倉庫的區(qū)別
- 數(shù)據(jù)湖存儲的是原生態(tài)數(shù)據(jù)(結構化或非結構化都可以存儲),而數(shù)據(jù)倉庫存儲的只能是結構化的數(shù)據(jù)
- 數(shù)據(jù)湖一般是PB級別的,存儲的數(shù)據(jù)量通常比數(shù)據(jù)倉庫還多,但也存在大型的PB級數(shù)據(jù)倉庫
- 數(shù)據(jù)湖主要面向的用戶是數(shù)據(jù)科學家,數(shù)據(jù)倉庫主要面向的用戶是數(shù)據(jù)開發(fā)工程師、數(shù)據(jù)分析師、數(shù)據(jù)運營等
- 入數(shù)據(jù)湖的數(shù)據(jù)一般是直接先裝載到數(shù)據(jù)湖中,當訪問時才會去解析成所需要的格式,即讀模式;而入數(shù)據(jù)倉庫的數(shù)據(jù)一般是經(jīng)過ETL過程后,轉換成固定模式的數(shù)據(jù),即寫模式
數(shù)據(jù)湖和數(shù)據(jù)倉庫可以用來互補,數(shù)據(jù)湖可以在非結構化數(shù)據(jù)處理方面擴展業(yè)務能力。對于許多公司來說,通過數(shù)據(jù)湖來增強現(xiàn)有的數(shù)據(jù)倉庫,已經(jīng)被證明是一種高效的方式
三、數(shù)據(jù)湖架構

數(shù)據(jù)湖的本質,是由數(shù)據(jù)存儲架構+數(shù)據(jù)處理工具組成的解決方案。
數(shù)據(jù)架構存儲:要求要有足夠強大的擴展性和可靠性,才能存得下和存得久要入湖的數(shù)據(jù),比如AmazonWebServices亞馬遜云科技的S3云對象存儲。
數(shù)據(jù)處理工具:主要解決2類問題,一類是把數(shù)據(jù)移動到湖里,一類是管理湖里的數(shù)據(jù)。
- 數(shù)據(jù)移動工具:如定義數(shù)據(jù)源,制定數(shù)據(jù)訪問策略,安全策略,移動數(shù)據(jù),編寫數(shù)據(jù)目錄,等等功能。
- 數(shù)據(jù)管理工具:如一些數(shù)據(jù)管理和治理工具,否則元數(shù)據(jù)缺失的話,湖里的數(shù)據(jù)質量就沒法保障。
總結:數(shù)據(jù)湖不只是個“囤積”數(shù)據(jù)的“大水坑”,除了用存儲技術構建的湖底座以外,還包含一系列的數(shù)據(jù)入湖、數(shù)據(jù)出湖、數(shù)據(jù)管理、數(shù)據(jù)應用工具集,共同組成了數(shù)據(jù)湖解決方案。
接著普及下什么是數(shù)據(jù)重力 & 數(shù)據(jù)沼澤 ?
數(shù)據(jù)沼澤:各式各樣的數(shù)據(jù)都往"湖里傾倒",缺乏元數(shù)據(jù)管理,最終會把好好的數(shù)據(jù)湖變成了數(shù)據(jù)沼澤,導致數(shù)據(jù)湖中的數(shù)據(jù)使用困難。
數(shù)據(jù)重力:指的是隨著數(shù)據(jù)積累越來越多,則要移動它們就越來越難,這便是所謂的數(shù)據(jù)重力。
四、湖倉一體(Lake House)
Lake House,即所謂的湖倉一體架構,數(shù)據(jù)湖和數(shù)據(jù)倉庫相結合發(fā)揮作用,實現(xiàn)“湖里”和“倉里”的數(shù)據(jù)/元數(shù)據(jù)能夠無縫打通,并且“自由”流動。比如湖里的“新鮮”數(shù)據(jù)可以流到倉里,甚至可以直接被數(shù)倉使用,而倉里的“不新鮮”數(shù)據(jù),也可以流到湖里,低成本長久保存,供未來的數(shù)據(jù)挖掘使用。
上案例:????所講的場景實際上可以應用到大數(shù)據(jù)領域中數(shù)據(jù)治理這一個環(huán)節(jié)中,比如數(shù)倉表的生命周期管理,我們對表不常用的歷史分區(qū)數(shù)據(jù)進行歸檔處理,本質上也就是將這部分數(shù)據(jù)移動到數(shù)據(jù)湖中存儲,從而使得這部分冷數(shù)據(jù)換成了低成本的存儲,需要時也可以從數(shù)據(jù)湖中恢復回來,當然這個恢復過程是有代價的。
Lake House不僅要把湖、倉打通,還要克服“數(shù)據(jù)重力”,讓數(shù)據(jù)在這些服務之間按需來回移動:入湖、出湖、環(huán)湖……

智能湖倉的設計,采用各下游組件都“環(huán)湖而造”的理念,既可以直接操縱湖內數(shù)據(jù),也可以從湖中攝取數(shù)據(jù),還可以向湖中回注數(shù)據(jù),同時環(huán)湖的服務彼此之間也可以輕松交換數(shù)據(jù)。

Amazon Web Services官方給出了智能湖倉的參考架構,如下:

上面這個六層架構,從數(shù)據(jù)源定義、數(shù)據(jù)攝取和入湖入倉,到湖倉打通與集成,再到數(shù)據(jù)出湖、數(shù)據(jù)處理和數(shù)據(jù)消費,一氣呵成,各種云上數(shù)據(jù)服務無縫集成在一起,創(chuàng)新了未來一個新的大數(shù)據(jù)解決方案。