談數據解讀:AWS數據湖

作者石秀峯

文章共4955個字,建議閱讀需18分鐘

更多精彩,微信掃描圖中二維碼,關注談數據!

一、認識數據湖

1、初識數據湖

Data lake,我第一次接觸這個概念,是在2014年IBM組織的數據治理交流論壇上。當時只是認爲“數據湖”就是一個概念,沒什麼新意,“不就是把不同結構的數據實現統一存儲,Hadoop不就是幹這個活的嗎?本質上還是換湯不換藥、新瓶裝老酒,又一個新概念”!

2、數據湖的定義

後來發現,主流的大數據和雲計算公司都在推這個叫“數據湖”的技術。於是,我特意上網百度了一下,“數據湖”的概念原來早在2011年被首次提出,維基百科對它給出瞭如下的定義:

數據湖(Data Lake)是一個以原始格式存儲數據的存儲庫或系統,它按原樣存儲數據,而無需事先對數據進行結構化處理。一個數據湖可以存儲結構化數據(如關係型數據庫中的表),半結構化數據(如CSV、日誌、XML、JSON),非結構化數據(如電子郵件、文檔、PDF)和二進制數據(如圖形、音頻、視頻)。

亞馬遜AWS對數據湖做了進一步解釋:“數據湖是一個集中式存儲庫,允許您以任意規模存儲所有結構化和非結構化數據。您可以按原樣存儲數據(無需先對數據進行結構化處理),並運行不同類型的分析 – 從控制面板和可視化到大數據處理、實時分析和機器學習,以指導做出更好的決策。”

這時,我對“數據湖”有了更深一步的認知:數據湖技術是不斷髮展的,它可以以更方便、更廉價的方式解決不同類型數據結構的統一存儲問題,同時還能夠爲機器學習提供全局數據。我們可以將“數據湖”理解爲一個融合了大數據集成、存儲、處理、機器學習、數據挖掘、數據可視化等技術,促進數據價值變現的完整解決方案。

3、數據湖與數據倉庫的區別

談到“數據湖”人們總是喜歡用數據倉庫與其進行比較(可能是從概念和用途上來講他們確實有些相似),以下是AWS給出的數據倉庫和數據湖的對比:

通過上表,我們不難發現“數據湖”有着數據倉庫無法比擬的優勢:

首先,在數據處理和存儲能力方面,數據湖可以處理結構化、半結構化、非結構化的所有數據結構的數據,而數據倉庫只能處理結構化數據。

數據倉庫在處理數據之前要先進行數據梳理、定義數據結構、進行數據清洗才進行入庫操作,而數據湖是不管“三七二十一”連上數據源就能將原始數據“一鍋端過來”,這就爲後續數據湖的機器學習、數據挖掘帶來了無限可能!

其次,在數據質量和安全方面,數據倉庫作用範圍有限,它只能用於收集、處理和分析特定業務問題所必需的數據,而數據湖卻能對任何數據,甚至無法監管的原始數據實施數據治理,以提升數據質量和安全性。

最後,在靈活性上數據湖具備天然優勢。傳統的數倉,因爲模型範式的要求,業務不能隨便的變遷,這涉及到底層數據的各種變化,這導致了傳統數倉無法支持業務的變化。對於數據湖來說,即使像互聯網行業不斷有新的應用,業務不斷髮生變化,數據模型也不斷的變化,但數據依然可以非常容易的進入數據湖,對於數據的採集、清洗、規範化的處理,完全可以延遲到業務需求的時候再來處理。這跟早期的數倉思維就很不一樣,數據湖相對於企業來說,靈活性比較強,能更快速的適應前端應用的變化。

二、AWS數據湖架構

亞馬遜AWS算是“數據湖”技術的鼻祖了,早在2006年3月,亞馬遜就推出了全球首款公有云服務Amazon S3,其強大的數據存儲能力,奠定了AWS數據湖領導地位的基礎。

上圖是AWS數據湖的一個典型架構,我們看到數據湖並不是一個產品、也不是一項技術,而是由多個大數據組件、雲服務組成的一個解決方案。

當然,最核心的組件是Amazon S3,它可以存儲二進位爲基礎的任何信息,包含結構化和非結構化的數據,例如:企業信息系統ERP、CRM等系統中的關係型數據,從手機、攝像機來的照片、音視頻文件,從汽車上、風力發電機等各種設備來的數據文件等等。

數據源連接,AWS 提供了一個叫AWS Glue產品,Glue是膠水的意思,支持不同的數據庫服務之間的連接。Glue主要有兩個功能,一個是ETL,即,數據的抽取、轉換和加載。另一個功能,是數據目錄服務的功能,因爲把這些數據都存在數據湖裏面,在這個過程中,要對這些數據打上標籤,把它做分類的工作。Glue就像爬蟲一樣對數據湖裏的海量數據,進行自動爬取,生成數據目錄的功能。

大數據處理,AWS數據湖可以分爲三個階段對數據進行處理。第一階段批處理:通過把各種類型的原始數據加載到Amazon S3上,然後通過AWS Glue對數據湖中的數據進行數據處理,也可以使用Amazon EMR進行數據的高級處理分析。第二階段流處理和分析,這個任務是基於Amazon EMR、Amazon Kinesis來完成的。第三階爲機器學習,數據通過 Amazon Machine Learning、Amazon Lex、Amazon Rekognition進行深度加工,形成可利用的數據服務。

數據服務:AWS數據湖可爲不同角色的用戶提供不同的數據服務,數據科學家可以基於數據湖進行數據探索和數據挖掘,數據分析師可以基於數據進行數據建模、數據分析等;業務人員可以查詢、瀏覽數據分析師的分析結果,也基於數據目錄自助式進行數據分析。基於數據湖可以開發各類SaaS應用,同時數據湖提供數據開放能力,支持將數據以API接口的形式開放出去以供外部應用調用。

安全與運維:由於AWS數據湖運行在雲端,數據安全人們關注的重點。亞馬遜的Amazon VPC爲雲端數據湖提供了管理和監控功能, VPC 支持指定 IP 地址範圍、添加子網、關聯安全組以及配置路由表,AWS IAM、AWS KMS爲數據湖的安全保駕護航,爲構建出一個安全的雲數據湖提供支撐。

三、如何構建數據湖

數據湖從技術層面也是一個大數據平臺,傳統上搭建一個集數據存儲、數據處理、機器學習、數據分析等應用爲一體的大數據平臺需要十幾個甚至幾十個大數據組件,同時還需要爲相關組件構建集羣,以滿足大批量數據處理、計算和存儲的需要。這個過程往往是非常複雜的,可能需要數月才能完成。

2018年,AWS 推出了LakeFormation,據說是可以幫助企業在幾天內就能構建出安全的數據湖。期待很快在國內推出,我都想去測試一把了!

好了,下面我們談一談基於AWS數據服務組件,到底該如何構建出一個“數據湖”?AWS官網中給出“數據湖”從創建到應用的五個步驟,如下圖所示:

筆者將這五個步驟歸納爲“建湖、聚數、治數、用數”八個字:建湖即初始化存儲,聚數即遷移數據,治數即數據清洗、數據準備、元數據管理、數據安全和合規性管理,用數即數據分析、數據服務。

1、建湖--閒庭信步築數湖

首先,基於AWS Identity、IAM服務創建數據湖運行工作流的所需的管理員和權限策略所需的角色,即:爲數據湖創建管理員和指定用戶組。

然後,註冊數據湖,指定數據湖存儲中心Amazon S3的路徑,並設置“數據湖”權限,以允許其他人管理“數據目錄”和數據湖中的數據。

最後,設置Amazon Athena以便查詢導入到Amazon S3數據湖中的數據。

至此,一個簡單的數據湖就構建完成了。當然不同的應用場景下我們還需要設置不同服務,對於希望把存放在數據湖和Redshift數據倉庫中的數據做交叉融合分析的用戶,可以通過設置Amazon Redshift Spectrum,使得Redshift可以查詢存儲在Amazon S3中的數據,從而實現數據倉庫與數據湖的數據融合分析。

2、聚數--百條大川終歸海

隨着大數據時代的到來,企業數據量的明顯激增,各種各樣的數據鋪天蓋地而來。有來自企業內部信息系統的數據,例如:ERP系統、CRM系統等,經過多年的沉澱,企業積累的大量的歷史數據,是企業數據分析的主要來源。有來自於各種IoT設備產生的實時數據,而且這些數據常以混合數據格式生成的,包括結構化數據、半結構化數據和非結構化數據。有來自企業的互聯網數據,包括互聯網業務產生的數據,以及通過網頁爬蟲採集的其他網站的數據……,這些新的大規模的海量的數據,不僅量大、種類繁多,而且來的又非常猛,猶如“洪水猛獸”。

AWS爲實現不同數據類型數據的數據採集、處理提供了多種工具,例如:AWS Glue、Database Migration、Kinesis、Internet of Things等,支持將各種類型的數據輕鬆遷移至Amazon S3中進行統一管理。這個過程,就正好像就像“數據湖”字面含義,我們就找一大片溼地(S3),然後這些像洪水一樣來自“四面八方”的數據先蓄在這個湖裏面,形成數據“百川歸海”之勢,然後在利用一些工具來對它進行治理、查詢和分析。

3、治數--疏川導滯按需流

數據湖有着卓越的數據存儲能力,支持大量的、多種類型的大數據統一存儲。然而,企業的業務是實時在變化的,這代表着沉積在數據湖中的數據定義、數據格式實時都在發生着轉變,如果不加以治理,企業的“數據湖”就有可能變成“垃圾”堆積的“數據沼澤”,而無法支撐企業的數據分析和使用。

“流水不腐,戶樞不蠹”,我們只有讓“數據湖”中的“水”流動起來,纔可以讓“數據湖”不變成“數據沼澤”。AWS Glue提供ETL和數據目錄能力,讓數據從數據源遷移過來的時候就能做一定的數據轉換,並形成清晰的數據目錄。Amazon EMR、Amazon Glue支持對數據湖中的數據分區域、分階段的進行清洗和處理,進一步淨化湖中的“水源”。之後,數據通過 Amazon Machine Learning、Amazon Lex、Amazon Rekognition進行深度加工,形成可利用的數據服務,這樣循環往復,持續提升數據湖中的“水質”。

同時,Amazon S3、DynamoDB、Redshift具備很好的數據安全機制,數據的傳輸和存儲都是加密的,加密密鑰只有客戶自己掌握,防止數據泄露帶來的風險。另外,還有Amazon VPC安全策略、AWS IAM、AWS KMS等安全組件爲AWS數據湖保駕護航,爲企業數據的存儲、處理、使用提供一個安全、合規的數據環境。

總之,通過在數據湖的設計、加載和維護過程中加入強大的數據處理、元數據管理、數據質量檢核和數據安全的相關組件,並由所有這些領域的經驗豐富的專業人員積極參與,可顯著提高數據湖的價值。否則,你的數據湖可能會變成數據沼澤。

4、用數--水到渠成價值增

數據湖的出現,最初就是爲了補充數據倉庫的缺陷和不足,爲了解決數據倉庫漫長的開發週期,高昂的開發成本,細節數據丟失、信息孤島無法徹底解決、出現問題無法真正溯源等問題。但是隨着大數據技術的發展,數據湖不斷演變,彙集了各種技術,包括數據倉庫、實時和高速數據流技術、機器學習、分佈式存儲和其他技術。數據湖逐漸發展成爲一個可以存儲所有結構化、非結構化數據,對數據進行大數據處理、實時分析和機器學習等操作的統一數據管理平臺,爲企業提供數據“採集、存儲、治理、分析、挖掘、服務”的完整解決方案,從而實現“水到渠成”的數據價值洞察。

AWS 提供了在數據湖上運行的最廣泛、最具成本效益的分析服務集合,每項分析服務都專門爲廣泛的分析用例而構建:

  • 利用Amazon Athena,使用標準 SQL 直接查詢存儲在S3中的數據,實現交互式分析;

  • 利用Amazon EMR滿足對使用Spark和Hadoop框架的大數據處理,Amazon EMR 提供了一種託管服務,可以輕鬆、快速且經濟高效地處理海量數據;

  • 利用Amazon Redshift 可快速構建PB級結構化數據運行、複雜分析查詢功能的數據倉庫;

  • 利用Amazon Kinesis,輕鬆收集、處理和分析實時的流數據,如 IoT 遙測數據、應用程序日誌和網站點擊流;

  • 利用AmazonQuickSight輕鬆構建可從任何瀏覽器或移動設備訪問的精緻可視化效果和內容豐富的控制面板;

  • 同時,AWS 提供了一系列廣泛的機器學習服務和工具,支持在AWS數據湖上運行機器學習算法,深度挖掘數據價值。

這些工具和服務,能夠爲不同角色的用戶,例如數據科學家、數據分析師、業務人員、數據管理員等提供強大的功能支持,從而幫助企業實現以“數據爲驅動”的數字化轉型。

四、總結

傳統信息系統是由流程驅動的,企業的所有業務都是圍繞着流程而進行的,這個階段數據並沒有引起人們的重視。到了數據倉庫階段,企業對數據的應用也僅是處於輔助層面,企業的管理決策、業務創新主要還是靠人的經驗,數據只是一個參考。但隨着數字化時代的來臨,大數據技術不斷的深入應用,人們發現大數據的問題發現能力、預測能力要遠遠超過人們的經驗。越來越多的企業選擇基於數據進行企業的經營決策,基於數據提升組織績效,基於數據做產品的創新。企業正在從“流程驅動”的信息化時代,走向“數據驅動”的數字化時代。

“數據湖”是應時代而生的一個產物,它的價值不僅在於可以將海量的、不同類型的數據進行統一存儲,並提供數據目錄和查詢服務。數字化的時代,數據更加大量、更加實時、更加面向未來,機器學習、人工智能成爲一個企業數字化轉型的關鍵性因素。數據湖支持海量的、實時的數據處理和分析,甚至這種數據處理與分析都不需要預定義數據模型,增強了數據的洞察能力,它使得這些海量數據的價值就更加比以前有所提高,幫助人們在局部的數據裏面找到更多的規律。可以說“數據湖”簡直是爲“機器學習”而生。

有效的利用“數據湖”,充分的挖掘數據潛在價值,能幫助企業更好的細分市場,以助於企業能有針對性的爲企業發展提供決策支撐,更好的掌握市場動向,更好的對市場反應產生新的洞見,更好的設計規劃或改進產品,更好的爲客戶提供服務。從而,提升企業的競爭力,甚至創新企業的商業模式!

--- 結束 ---

更多精彩,微信掃描下圖中二維碼,關注談數據!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章