0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

什么是數(shù)據湖 大數(shù)據技術架構演進發(fā)展史

架構師技術聯(lián)盟 ? 來源:阿里巴巴計算平臺部門 ? 作者:阿里巴巴計算平臺 ? 2022-12-08 20:58 ? 次閱讀

01 大數(shù)據領域發(fā)展20年的變與不變

1.1 概述

大數(shù)據領域從本世紀初發(fā)展到現(xiàn)在,已經歷20年。從宏觀層面觀察其中的發(fā)展規(guī)律,可以高度概括成如下五個方面:

1.數(shù)據保持高速增長- 從5V核心要素看,大數(shù)據領域保持高速增長。阿里巴巴經濟體,作為一個重度使用并著力發(fā)展大數(shù)據領域的公司,過去5年數(shù)據規(guī)模保持高速增長(年化60%-80%),增速在可見的未來繼續(xù)保持。對于新興企業(yè),大數(shù)據領域增長超過年200%。

2.大數(shù)據作為新的生產要素,得到廣泛認可- 大數(shù)據領域價值定位的遷移,從“探索”到“普惠”,成為各個企業(yè)/政府的核心部門,并承擔關鍵任務。還是以阿里巴巴為例,30%的員工直接提交大數(shù)據作業(yè)。隨大數(shù)據普惠進入生產環(huán)境,可靠性、安全性、管控能力、易用性等企業(yè)級產品力增強。

3.數(shù)據管理能力成為新的關注點- 數(shù)倉(中臺)能力流行起來,如何用好數(shù)據成為企業(yè)的核心競爭力。

4.引擎技術進入收斂期- 隨著Spark(通用計算)、Flink(流計算)、Hbase(KV)、Presto(交互分析)、ElasticSearch(搜索)、Kafka(數(shù)據總線)自從2010-2015年逐步占領開源生態(tài),最近5年新引擎開源越來越少,但各引擎技術開始向縱深發(fā)展(更好的性能、生產級別的穩(wěn)定性等)。

5.平臺技術演進出兩個趨勢,數(shù)據湖VS 數(shù)據倉庫- 兩者均關注數(shù)據存儲和管理(平臺技術),但方向不同。

7f84cc9c-7628-11ed-8abf-dac502259ad0.png

圖1. 阿里巴巴雙十一單日處理數(shù)據量增長

1.2 從大數(shù)據技術發(fā)展看湖和倉

首先,數(shù)據倉庫的概念出現(xiàn)的要比數(shù)據湖早的多,可以追溯到數(shù)據庫為王的上世紀 90 年代。因此,我們有必要從歷史的脈絡來梳理這些名詞出現(xiàn)的大概時間、來由以及更重要的背后原因。大體上,計算機科學領域的數(shù)據處理技術的發(fā)展,主要分為四個階段:

1. 階段一:數(shù)據庫時代。數(shù)據庫最早誕生于 20 世紀的 60 年代,今天人們所熟知的關系型數(shù)據庫則出現(xiàn)在 20 世紀 70 年代,并在后續(xù)的 30 年左右時間里大放異彩,誕生了很多優(yōu)秀的關系型數(shù)據庫,如 Oracle、SQL Server、MySQL、PostgresSQL 等,成為當時主流計算機系統(tǒng)不可或缺的組成部分。到 20 世紀 90 年代,數(shù)據倉庫的概念誕生。

此時的數(shù)據倉庫概念更多表達的是如何管理企業(yè)中多個數(shù)據庫實例的方法論,但受限于單機數(shù)據庫的處理能力以及多機數(shù)據庫(分庫分表)長期以來的高昂價格,此時的數(shù)據倉庫距離普通企業(yè)和用戶都還很遙遠。人們甚至還在爭論數(shù)據倉庫(統(tǒng)一集中管理)和數(shù)據集市(按部門、領域的集中管理)哪個更具可行性。

2. 階段二:大數(shù)據技術的「探索期」。時間進入到 2000 年附近,隨著互聯(lián)網的爆發(fā),動輒幾十億、上百億的頁面以及海量的用戶點擊行為,開啟了全球的數(shù)據量急劇增加的新時代。

傳統(tǒng)的數(shù)據庫方案再也無力以可接受的成本提供計算力,巨大的數(shù)據處理需求開始尋找突破口,大數(shù)據時代開始萌芽。2003、2004、2006 年 Google 先后 3 篇經典論文(GFS、MapReduce、BigTable)奠基了這個大數(shù)據時代的基本技術框架,即分布式存儲、分布式調度以及分布式計算模型。

隨后,幾乎是在同一時期,誕生了包括 Google,微軟 Cosmos 以及開源 Hadoop 為代表的優(yōu)秀分布式技術體系,當然,這其中也包括阿里巴巴的飛天系統(tǒng)。此時人們興奮于追求數(shù)據的處理規(guī)模,即『大』數(shù)據,沒有閑暇爭論是數(shù)據倉庫還是數(shù)據湖。

3. 階段三:大數(shù)據技術的「發(fā)展期」。來到 21 世紀的第二個 10 年,隨著越來越多的資源投入到大數(shù)據計算領域,大數(shù)據技術進入一個蓬勃發(fā)展的階段,整體開始從能用轉向好用。

代替昂貴的手寫 MapReduce 作業(yè)的,則是如雨后春筍般出現(xiàn)的各種以 SQL 為表達的計算引擎。這些計算引擎針對不同的場景進行針對性優(yōu)化,但都采用門檻極低的 SQL 語言,極大降低了大數(shù)據技術的使用成本,數(shù)據庫時代人們夢想的大一統(tǒng)的數(shù)據倉庫終于成為現(xiàn)實,各種數(shù)據庫時代的方法論開始抬頭。這個時期技術路線開始出現(xiàn)細分。

廠商主推的如 AWS Redshift、Google BigQuery、Snowflake,包括 MaxCompute 這樣的集成系統(tǒng)稱為大數(shù)據時代的數(shù)據倉庫。而以開源 Hadoop 體系為代表的的開放式 HDFS 存儲、開放的文件格式、開放的元數(shù)據服務以及多種引擎(Hive、Presto、Spark、Flink 等)協(xié)同工作的模式,則形成了數(shù)據湖的雛形。

4. 階段四:大數(shù)據技術「普及期」。當前,大數(shù)據技術早已不是什么火箭科技,而已經滲透到各行各業(yè),大數(shù)據的普及期已經到來。市場對大數(shù)據產品的要求,除了規(guī)模、性能、簡單易用,提出了成本、安全、穩(wěn)定性等更加全面的企業(yè)級生產的要求。

開源 Hadoop 線,引擎、元數(shù)據、存儲等基礎部件的迭代更替進入相對穩(wěn)態(tài),大眾對開源大數(shù)據技術的認知達到空前的水平。一方面,開放架構的便利帶來了不錯的市場份額,另一方面開放架構的松散則使開源方案在企業(yè)級能力構建上遇到瓶頸,尤其是數(shù)據安全、身份權限強管控、數(shù)據治理等方面,協(xié)同效率較差(如 Ranger 作為權限管控組件、Atlas 作為數(shù)據治理組件,跟今天的主流引擎竟然還無法做到全覆蓋)。同時引擎自身的發(fā)展也對已有的開放架構提出了更多挑戰(zhàn),Delta Lake、Hudi 這樣自閉環(huán)設計的出現(xiàn)使得一套存儲、一套元數(shù)據、多種引擎協(xié)作的基礎出現(xiàn)了某種程度的裂痕。

真正將數(shù)據湖概念推而廣之的是AWS。AWS 構筑了一套以 S3 為中心化存儲、Glue 為元數(shù)據服務,E-MapReduce、Athena 為引擎的開放協(xié)作式的產品解決方案。它的開放性和和開源體系類似,并在2019年推出Lake Formation 解決產品間的安全授信問題。雖然這套架構在企業(yè)級能力上和相對成熟的云數(shù)據倉庫產品相去甚遠,但對于開源技術體系的用戶來說,架構相近理解容易,還是很有吸引力。AWS 之后,各個云廠商也紛紛跟進數(shù)據湖的概念,并在自己的云服務上提供類似的產品解決方案。

云廠商主推的數(shù)據倉庫類產品則發(fā)展良好,數(shù)倉核心能力方面持續(xù)增強。性能、成本方面極大提升(MaxCompute 完成了核心引擎的全面升級和性能跳躍式發(fā)展,連續(xù)三年刷新 TPCx-BigBench 世界記錄),數(shù)據管理能力空前增強(數(shù)據中臺建模理論、智能數(shù)倉),企業(yè)級安全能力大為繁榮(同時支持基于 ACL 和基于規(guī)則等多種授權模型,列級別細粒度授權,可信計算,存儲加密,數(shù)據脫敏等),在聯(lián)邦計算方面也普遍做了增強,一定程度上開始將非數(shù)倉自身存儲的數(shù)據納入管理,和數(shù)據湖的邊界日益模糊。

綜上所述,數(shù)據倉庫是個誕生于數(shù)據庫時代的概念,在大數(shù)據時代隨云廠商的各種數(shù)倉服務落地開花,目前通常指代云廠商提供的基于大數(shù)據技術的一體化服務。而數(shù)據湖則脫胎于大數(shù)據時代開源技術體系的開放設計,經過 AWS 整合宣傳,通常是由一系列云產品或開源組件共同構成大數(shù)據解決方案。

7fe0e22a-7628-11ed-8abf-dac502259ad0.png

圖2. 20年大數(shù)據發(fā)展之路

02 什么是數(shù)據湖

近幾年數(shù)據湖的概念非?;馃幔菙?shù)據湖的定義并不統(tǒng)一,我們先看下數(shù)據湖的相關定義。

Wikipedia對數(shù)據湖的定義: 數(shù)據湖是指使用大型二進制對象或文件這樣的自然格式儲存數(shù)據的系統(tǒng)。它通常把所有的企業(yè)數(shù)據統(tǒng)一存儲,既包括源系統(tǒng)中的原始副本,也包括轉換后的數(shù)據,比如那些用于報表, 可視化, 數(shù)據分析和機器學習的數(shù)據。數(shù)據湖可以包括關系數(shù)據庫的結構化數(shù)據(行與列)、半結構化的數(shù)據(CSV,日志,XML, JSON),非結構化數(shù)據 (電子郵件、文件、PDF)和 二進制數(shù)據(圖像、音頻視頻)。儲存數(shù)據湖的方式包括 Apache Hadoop分布式文件系統(tǒng), Azure 數(shù)據湖或亞馬遜云 Lake Formation云存儲服務,以及諸如 Alluxio 虛擬數(shù)據湖之類的解決方案。數(shù)據沼澤是一個劣化的數(shù)據湖,用戶無法訪問,或是沒什么價值。

AWS的定義相對簡潔: 數(shù)據湖是一個集中式存儲庫,允許您以任意規(guī)模存儲所有結構化和非結構化數(shù)據。您可以按原樣存儲數(shù)據(無需先對數(shù)據進行結構化處理),并運行不同類型的分析 – 從控制面板和可視化到大數(shù)據處理、實時分析和機器學習,以指導做出更好的決策。 Azure等其他云廠商也有各自的定義,本文不再贅述。 但無論數(shù)據湖的定義如何不同,數(shù)據湖的本質其實都包含如下四部分: 1.統(tǒng)一的存儲系統(tǒng) 2.存儲原始數(shù)據 3.豐富的計算模型/范式 4.數(shù)據湖與上云無關 從上述四個標準判斷,開源大數(shù)據的Hadoop HDFS存儲系統(tǒng)就是一個標準的數(shù)據湖架構,具備統(tǒng)一的原始數(shù)據存儲架構。而近期被廣泛談到的數(shù)據湖,其實是一個狹義的概念,特指“基于云上托管存儲系統(tǒng)的數(shù)據湖系統(tǒng),架構上采用存儲計算分離的體系”。例如基于AWS S3系統(tǒng)或者阿里云OSS系統(tǒng)構建的數(shù)據湖。 下圖是數(shù)據湖技術架構的演進過程,整體上可分為三個階段:

80969994-7628-11ed-8abf-dac502259ad0.png

圖3. 數(shù)據湖技術架構演進

1. 階段一:自建開源Hadoop數(shù)據湖架構,原始數(shù)據統(tǒng)一存放在HDFS系統(tǒng)上,引擎以Hadoop和Spark開源生態(tài)為主,存儲和計算一體。缺點是需要企業(yè)自己運維和管理整套集群,成本高且集群穩(wěn)定性差。

2. 階段二:云上托管Hadoop數(shù)據湖架構(即EMR開源數(shù)據湖),底層物理服務器和開源軟件版本由云廠商提供和管理,數(shù)據仍統(tǒng)一存放在HDFS系統(tǒng)上,引擎以Hadoop和Spark開源生態(tài)為主。 這個架構通過云上 IaaS 層提升了機器層面的彈性和穩(wěn)定性,使企業(yè)的整體運維成本有所下降,但企業(yè)仍然需要對HDFS系統(tǒng)以及服務運行狀態(tài)進行管理和治理,即應用層的運維工作。同時因為存儲和計算耦合在一起,穩(wěn)定性不是最優(yōu),兩種資源無法獨立擴展,使用成本也不是最優(yōu)。

3. 階段三:云上數(shù)據湖架構,即云上純托管的存儲系統(tǒng)逐步取代HDFS,成為數(shù)據湖的存儲基礎設施,并且引擎豐富度也不斷擴展。除了Hadoop和Spark的生態(tài)引擎之外,各云廠商還發(fā)展出面向數(shù)據湖的引擎產品。 如分析類的數(shù)據湖引擎有AWS Athena和華為DLI,AI類的有AWS Sagemaker。這個架構仍然保持了一個存儲和多個引擎的特性,所以統(tǒng)一元數(shù)據服務至關重要,如AWS推出了Glue,阿里云EMR近期也即將發(fā)布數(shù)據湖統(tǒng)一元數(shù)據服務。該架構相對于原生HDFS的數(shù)據湖架構的優(yōu)勢在于:

幫助用戶擺脫原生HDFS系統(tǒng)運維困難的問題。HDFS系統(tǒng)運維有兩個困難:1)存儲系統(tǒng)相比計算引擎更高的穩(wěn)定性要求和更高的運維風險 2)與計算混布在一起,帶來的擴展彈性問題。存儲計算分離架構幫助用戶解耦存儲,并交由云廠商統(tǒng)一運維管理,解決了穩(wěn)定性和運維問題。

分離后的存儲系統(tǒng)可以獨立擴展,不再需要與計算耦合,可降低整體成本

當用戶采用數(shù)據湖架構之后,客觀上也幫助客戶完成了存儲統(tǒng)一化(解決多個HDFS數(shù)據孤島的問題)

下圖是阿里云EMR數(shù)據湖架構圖,它是基于開源生態(tài)的大數(shù)據平臺,既支持HDFS的開源數(shù)據湖,也支持OSS的云上數(shù)據湖。

80ac1a8a-7628-11ed-8abf-dac502259ad0.png

圖4. 阿里云EMR數(shù)據湖架構 企業(yè)使用數(shù)據湖技術構建大數(shù)據平臺,主要包括數(shù)據接入、數(shù)據存儲、計算和分析、數(shù)據管理、權限控制等,下圖是Gartner定義的一個參考架構。當前數(shù)據湖的技術因其架構的靈活性和開放性,在性能效率、安全控制以及數(shù)據治理上并不十分成熟,在面向企業(yè)級生產要求時還存在很大挑戰(zhàn)(在第四章會有詳細的闡述)。

80dcb1a4-7628-11ed-8abf-dac502259ad0.png

圖5. 數(shù)據湖架構圖(來自網絡

03 數(shù)據倉庫的誕生,以及和數(shù)據中臺的關系 數(shù)據倉庫的概念最早來源于數(shù)據庫領域,主要處理面向數(shù)據的復雜查詢和分析場景。隨大數(shù)據技術發(fā)展,大量借鑒數(shù)據庫的技術,例如SQL語言、查詢優(yōu)化器等,形成了大數(shù)據的數(shù)據倉庫,因其強大的分析能力,成為主流。 近幾年,數(shù)據倉庫和云原生技術相結合,又演生出了云數(shù)據倉庫,解決了企業(yè)部署數(shù)據倉庫的資源供給問題。云數(shù)據倉庫作為大數(shù)據的高階(企業(yè)級)平臺能力,因其開箱即用、無限擴展、簡易運維等能力,越來越受到人們的矚目。

Wikipedia對數(shù)據倉庫的定義: 在計算機領域,數(shù)據倉庫(英語:data warehouse,也稱為企業(yè)數(shù)據倉庫)是用于報告和數(shù)據分析的系統(tǒng),被認為是商業(yè)智能的核心組件。數(shù)據倉庫是來自一個或多個不同源的集成數(shù)據的中央存儲庫。數(shù)據倉庫將當前和歷史數(shù)據存儲在一起,用于為整個企業(yè)的員工創(chuàng)建分析報告。 比較學術的解釋是,數(shù)據倉庫由數(shù)據倉庫之父W.H.Inmon于1990年提出,主要功能乃是將組織透過信息系統(tǒng)之在線交易處理(OLTP)經年累月所累積的大量數(shù)據,透過數(shù)據倉庫理論所特有的數(shù)據存儲架構,作一有系統(tǒng)的分析整理,以利各種分析方法如在線分析處理(OLAP)、數(shù)據挖掘(Data Mining)之進行,并進而支持如決策支持系統(tǒng)(DSS)、主管信息系統(tǒng)(EIS)之創(chuàng)建,幫助決策者能快速有效的自大量數(shù)據中,分析出有價值的信息,以利決策擬定及快速回應外在環(huán)境變動,幫助建構商業(yè)智能(BI)。

數(shù)據倉庫的本質包含如下三部分: 1. 內置的存儲系統(tǒng),數(shù)據通過抽象的方式提供(例如采用Table或者View),不暴露文件系統(tǒng)。 2.數(shù)據需要清洗和轉化,通常采用ETL/ELT方式 3.強調建模和數(shù)據管理,供商業(yè)智能決策 從上述的標準判斷,無論傳統(tǒng)數(shù)據倉庫(如Teradata)還是新興的云數(shù)據倉庫系統(tǒng)(AWS Redshift、Google BigQuery、阿里云MaxCompute)均體現(xiàn)了數(shù)倉的設計本質,它們均沒有對外暴露文件系統(tǒng),而是提供了數(shù)據進出的服務接口。 比如,Teradata提供了CLI數(shù)據導入工具,Redshift提供Copy命令從S3或者EMR上導入數(shù)據,BigQuery提供Data Transfer服務,MaxCompute提供Tunnel服務以及MMA搬站工具供數(shù)據上傳和下載。這個設計可以帶來多個優(yōu)勢: 1.引擎深度理解數(shù)據,存儲和計算可做深度優(yōu)化 2.數(shù)據全生命周期管理,完善的血緣體系 3.細粒度的數(shù)據管理和治理 4.完善的元數(shù)據管理能力,易于構建企業(yè)級數(shù)據中臺 正因為如此,阿里巴巴飛天大數(shù)據平臺建設之初,在選型的時候就采用了數(shù)據倉庫的架構,即MaxCompute大數(shù)據平臺。MaxCompute(原ODPS),既是阿里巴巴經濟體的大數(shù)據平臺,又是阿里云上的一種安全可靠、高效能、低成本、從GB到EB級別按需彈性伸縮的在線大數(shù)據計算服務(圖6.是MaxCompute產品架構,具體詳情請點擊阿里云MaxCompute官網地址)。 作為SaaS模式的企業(yè)級云數(shù)倉,MaxCompute廣泛應用在阿里巴巴經濟體、以及阿里云上互聯(lián)網、新金融、新零售、數(shù)字政府等數(shù)千家客戶。

811b1e58-7628-11ed-8abf-dac502259ad0.png

圖6. MaxCompute云數(shù)倉產品架構 得益于MaxCompute數(shù)據倉庫的架構,阿里巴巴上層逐步構建了“數(shù)據安全體系”、“數(shù)據質量”、“數(shù)據治理”、“數(shù)據標簽”等管理能力,并最終形成了阿里巴巴的大數(shù)據中臺??梢哉f,作為最早數(shù)據中臺概念的提出者,阿里巴巴的數(shù)據中臺得益于數(shù)據倉庫的架構。

8151799e-7628-11ed-8abf-dac502259ad0.png

圖7. 阿里巴巴數(shù)據中臺架構

04 數(shù)據湖VS 數(shù)據倉庫

綜上,數(shù)據倉庫和數(shù)據湖,是大數(shù)據架構的兩種設計取向。兩者在設計的根本分歧點是對包括存儲系統(tǒng)訪問、權限管理、建模要求等方面的把控。 數(shù)據湖優(yōu)先的設計,通過開放底層文件存儲,給數(shù)據入湖帶來了最大的靈活性。進入數(shù)據湖的數(shù)據可以是結構化的,也可以是半結構化的,甚至可以是完全非結構化的原始日志。另外,開放存儲給上層的引擎也帶來了更多的靈活度,各種引擎可以根據自己針對的場景隨意讀寫數(shù)據湖中存儲的數(shù)據,而只需要遵循相當寬松的兼容性約定(這樣的松散約定當然會有隱患,后文會提到)。

但同時,文件系統(tǒng)直接訪問使得很多更高階的功能很難實現(xiàn),例如,細粒度(小于文件粒度)的權限管理、統(tǒng)一化的文件管理和讀寫接口升級也十分困難(需要完成每一個訪問文件的引擎升級,才算升級完畢)。 而數(shù)據倉庫優(yōu)先的設計,更加關注的是數(shù)據使用效率、大規(guī)模下的數(shù)據管理、安全/合規(guī)這樣的企業(yè)級成長性需求。數(shù)據經過統(tǒng)一但開放的服務接口進入數(shù)據倉庫,數(shù)據通常預先定義 schema,用戶通過數(shù)據服務接口或者計算引擎訪問分布式存儲系統(tǒng)中的文件。 數(shù)據倉庫優(yōu)先的設計通過抽象數(shù)據訪問接口/權限管理/數(shù)據本身,來換取更高的性能(無論是存儲還是計算)、閉環(huán)的安全體系、數(shù)據治理的能力等,這些能力對于企業(yè)長遠的大數(shù)據使用都至關重要,我們稱之為成長性。 下圖是針對大數(shù)據技術棧,分別比較數(shù)據湖和數(shù)據倉庫各自的取舍。

817ff0f8-7628-11ed-8abf-dac502259ad0.png

圖8. 數(shù)據湖和數(shù)據倉庫在技術棧上的對比 靈活性和成長性,對于處于不同時期的企業(yè)來說,重要性不同。 1. 當企業(yè)處于初創(chuàng)階段,數(shù)據從產生到消費還需要一個創(chuàng)新探索的階段才能逐漸沉淀下來,那么用于支撐這類業(yè)務的大數(shù)據系統(tǒng),靈活性就更加重要,數(shù)據湖的架構更適用。 2. 當企業(yè)逐漸成熟起來,已經沉淀為一系列數(shù)據處理流程,問題開始轉化為數(shù)據規(guī)模不斷增長,處理數(shù)據的成本不斷增加,參與數(shù)據流程的人員、部門不斷增多,那么用于支撐這類業(yè)務的大數(shù)據系統(tǒng),成長性的好壞就決定了業(yè)務能夠發(fā)展多遠。數(shù)據倉庫的架構更適用。 本文有觀察到,相當一部分企業(yè)(尤其是新興的互聯(lián)網行業(yè))從零開始架構的大數(shù)據技術棧,正是伴隨開源 Hadoop 體系的流行,經歷了這樣一個從探索創(chuàng)新到成熟建模的過程。在這個過程中,因為數(shù)據湖架構太過靈活而缺少對數(shù)據監(jiān)管、控制和必要的治理手段,導致運維成本不斷增加、數(shù)據治理效率降低,企業(yè)落入了『數(shù)據沼澤』的境地,即數(shù)據湖中匯聚了太多的數(shù)據,反而很難高效率的提煉真正有價值的那部分。 最后只有遷移到數(shù)據倉庫優(yōu)先設計的大數(shù)據平臺,才解決了業(yè)務成長到一定規(guī)模后所出現(xiàn)的運維、成本、數(shù)據治理等問題。還是舉阿里巴巴的例子,阿里巴巴成功的數(shù)據中臺戰(zhàn)略,正是在 2015 年前后阿里巴巴全集團完成 MaxCompute(數(shù)據倉庫) 對多個 Hadoop( 數(shù)據湖)的完全替換(登月項目)才逐步形成的。

81b40b04-7628-11ed-8abf-dac502259ad0.png

圖9.數(shù)據湖的靈活性 VS 數(shù)據倉庫的成長性的示意圖

05 下一代演進方向:湖倉一體

經過對數(shù)據湖和數(shù)據倉庫的深入闡述和比較,本文認為數(shù)據湖和數(shù)據倉庫作為大數(shù)據系統(tǒng)的兩條不同演進路線,有各自特有的優(yōu)勢和局限性。 數(shù)據湖和數(shù)據倉庫一個面向初創(chuàng)用戶友好,一個成長性更佳。對企業(yè)來說,數(shù)據湖和數(shù)據倉庫是否必須是一個二選一的選擇題?是否能有一種方案同時兼顧數(shù)據湖的靈活性和云數(shù)據倉庫的成長性,將二者有效結合起來為用戶實現(xiàn)更低的總體擁有成本? 將數(shù)倉和數(shù)據湖融合在一起也是業(yè)界近年的趨勢,多個產品和項目都做過對應的嘗試:

1.數(shù)倉支持數(shù)據湖訪問

2017年Redshift推出Redshift Spectrum,支持Redsift數(shù)倉用戶訪問S3數(shù)據湖的數(shù)據。

2018年阿里云MaxCompute推出外表能力,支持訪問包括OSS/OTS/RDS數(shù)據庫在內的多種外部存儲。

但是無論是 Redshift Spectrum 還是 MaxCompute 的外部表,仍舊需要用戶在數(shù)倉中通過創(chuàng)建外部表來將數(shù)據湖的開放存儲路徑納入數(shù)倉的概念體系——由于一個單純的開放式存儲并不能自描述其數(shù)據本身的變化,因此為這些數(shù)據創(chuàng)建外部表、添加分區(qū)(本質上是為數(shù)據湖中的數(shù)據建立 schema)無法完全自動化(需要人工或者定期觸發(fā) Alter table add partition 或 msck)。這對于低頻臨時查詢尚能接受,對于生產使用來說,未免有些復雜。

2.數(shù)據湖支持數(shù)倉能力

2011年,Hadoop開源體系公司Hortonworks開始了Apache Atlas和Ranger兩個開源項目的開發(fā),分別對應數(shù)據血緣追蹤和數(shù)據權限安全兩個數(shù)倉核心能力。但兩個項目發(fā)展并不算順利,直到 2017 年才完成孵化,時至今日,在社區(qū)和工業(yè)界的部署都還遠遠不夠活躍。核心原因數(shù)據湖與生俱來的靈活性。例如Ranger作為數(shù)據權限安全統(tǒng)一管理的組件,天然要求所有引擎均適配它才能保證沒有安全漏洞,但對于數(shù)據湖中強調靈活的引擎,尤其是新引擎來說,會優(yōu)先實現(xiàn)功能、場景,而不是把對接Ranger作為第一優(yōu)先級的目標,使得Ranger在數(shù)據湖上的位置一直很尷尬。

2018年,Nexflix開源了內部增強版本的元數(shù)據服務系統(tǒng)Iceberg,提供包括MVCC(多版本并發(fā)控制)在內的增強數(shù)倉能力,但因為開源HMS已經成為事實標準,開源版本的Iceberg作為插件方式兼容并配合HMS,數(shù)倉管理能力大打折扣。

2018-2019年,Uber和Databricks相繼推出了Apache Hudi和DeltaLake,推出增量文件格式用以支持Update/Insert、事務等數(shù)據倉庫功能。新功能帶來文件格式以及組織形式的改變,打破了數(shù)據湖原有多套引擎之間關于共用存儲的簡單約定。為此,Hudi為了維持兼容性,不得不發(fā)明了諸如 Copy-On-Write、Merge-On-Read 兩種表,Snapshot Query、Incremental Query、Read Optimized Query 三種查詢類型,并給出了一個支持矩陣(如圖10),極大提升了使用的復雜度。

81c8064a-7628-11ed-8abf-dac502259ad0.png

圖10. Hudi Support Matrix(來自網絡) 而DeltaLake則選擇了保證以Spark為主要支持引擎的體驗,相對犧牲對其他主流引擎的兼容性。這對其他引擎訪問數(shù)據湖中的Delta數(shù)據造成了諸多的限制和使用不便。例如Presto要使用DeltaLake表,需要先用Spark創(chuàng)建manifest文件,再根據manifest創(chuàng)建外部表,同時還要注意manifest文件的更新問題;而Hive要使用DeltaLake表限制更多,不僅會造成元數(shù)據層面的混亂,甚至不能寫表。 上述在數(shù)據湖架構上建立數(shù)倉的若干嘗試并不成功,這表明數(shù)倉和數(shù)據湖有本質的區(qū)別,在數(shù)據湖體系上很難建成完善的數(shù)倉。數(shù)據湖與數(shù)據倉庫兩者很難直接合并成一套系統(tǒng),因此作者團隊,開始基于融合兩者的思路進行探索。 所以我們提出下一代的大數(shù)據技術演進方向:湖倉一體,即打通數(shù)據倉庫和數(shù)據湖兩套體系,讓數(shù)據和計算在湖和倉之間自由流動,從而構建一個完整的有機的大數(shù)據技術生態(tài)體系。 我們認為,構建湖倉一體需要解決三個關鍵問題: 1.湖和倉的數(shù)據/元數(shù)據無縫打通,且不需要用戶人工干預 2.湖和倉有統(tǒng)一的開發(fā)體驗,存儲在不同系統(tǒng)的數(shù)據,可以通過一個統(tǒng)一的開發(fā)/管理平臺操作 3.數(shù)據湖與數(shù)據倉庫的數(shù)據,系統(tǒng)負責自動caching/moving,系統(tǒng)可以根據自動的規(guī)則決定哪些數(shù)據放在數(shù)倉,哪些保留在數(shù)據湖,進而形成一體化 我們將在下一章詳細介紹阿里云湖倉一體方案如何解決這三個問題。

06 阿里云湖倉一體方案

6.1 整體架構

阿里云MaxCompute在原有的數(shù)據倉庫架構上,融合了開源數(shù)據湖和云上數(shù)據湖,最終實現(xiàn)了湖倉一體化的整體架構(圖11)。 在該架構中,盡管底層多套存儲系統(tǒng)并存,但通過統(tǒng)一的存儲訪問層和統(tǒng)一的元數(shù)據管理,向上層引擎提供一體的封裝接口,用戶可以聯(lián)合查詢數(shù)據倉庫和數(shù)據湖中的表。整體架構還具備統(tǒng)一的數(shù)據安全、管理和治理等中臺能力。

82512312-7628-11ed-8abf-dac502259ad0.png

圖11. 阿里云湖倉一體整體架構 針對第五章提出的湖倉一體的三個關鍵問題,MaxCompute實現(xiàn)了以下4個關鍵技術點。

1.快速接入

MaxCompute全新自創(chuàng)PrivateAccess網絡連通技術,在遵循云虛擬網絡安全標準的前提下,實現(xiàn)多租戶模式下特定用戶作業(yè)定向與IDC/ECS/EMR Hadoop集群網絡整體打通能力,具有低延遲、高獨享帶寬的特點。 經過快速簡單的開通、安全配置步驟即可將數(shù)據湖和購買的 MaxCompute數(shù)倉相連通。

2.統(tǒng)一數(shù)據/元數(shù)據管理

MaxCompute實現(xiàn)湖倉一體化的元數(shù)據管理,通過DB元數(shù)據一鍵映射技術,實現(xiàn)數(shù)據湖和MaxCompute數(shù)倉的元數(shù)據無縫打通。MaxCompute通過向用戶開放創(chuàng)建external project的形式,將數(shù)據湖HiveMetaStore中的整個database直接映射為MaxCompute的project,對Hive Database的改動會實時反應在這個project中,并可以在MaxCompute側隨時通過這個project進行訪問、計算其中的數(shù)據。與此同時,阿里云EMR數(shù)據湖解決方案也將推出Data Lake Formation,MaxCompute湖倉一體方案也會支持對該數(shù)據湖中的統(tǒng)一元數(shù)據服務的一鍵映射能力。MaxCompute側對external project的各種操作,也會實時反應在Hive側,真正實現(xiàn)數(shù)據倉庫和數(shù)據湖之間的無縫聯(lián)動,完全不需要類似聯(lián)邦查詢方案里的元數(shù)據人工干預步驟。 MaxCompute實現(xiàn)湖倉一體化的存儲訪問層,不僅支持內置優(yōu)化的存儲系統(tǒng),也無縫的支持外部存儲系統(tǒng)。既支持HDFS數(shù)據湖,也支持OSS云存儲數(shù)據湖,可讀寫各種開源文件格式。

3.統(tǒng)一開發(fā)體驗

數(shù)據湖里的Hive DataBase映射為MaxCompute external project,和普通project別無二致,同樣享受MaxCompute數(shù)倉里的數(shù)據開發(fā)、追蹤和管理功能?;贒ataWorks強大的數(shù)據開發(fā)/管理/治理能力,提供統(tǒng)一的湖倉開發(fā)體驗,降低兩套系統(tǒng)的管理成本。 MaxCompute高度兼容Hive/Spark,支持一套任務可以在湖倉兩套體系中靈活無縫的運行。 同時,MaxCompute也提供高效的數(shù)據通道接口,可以讓數(shù)據湖中的Hadoop生態(tài)引擎直接訪問,提升了數(shù)倉的開放性。

4.自動數(shù)倉

湖倉一體需要用戶根據自身資產使用情況將數(shù)據在湖和倉之間進行合理的分層和存儲,以最大化湖和倉的優(yōu)勢。MaxCompute開發(fā)了一套智能cache技術,根據對歷史任務的分析來識別數(shù)據冷熱度,從而自動利用閑時帶寬將數(shù)據湖中的熱數(shù)據以高效文件格式cache在數(shù)據倉庫中,進一步加速數(shù)據倉庫的后續(xù)數(shù)據加工流程。不僅解決了湖倉之間的帶寬瓶頸問題,也達到了無須用戶參與即可實現(xiàn)數(shù)據分層管理/治理以及性能加速的目的。

6.2 構建湖倉一體化的數(shù)據中臺

基于MaxCompute湖倉一體技術,DataWorks可以進一步對湖倉兩套系統(tǒng)進行封裝,屏蔽湖和倉異構集群信息,構建一體化的大數(shù)據中臺,實現(xiàn)一套數(shù)據、一套任務在湖和倉之上無縫調度和管理。 企業(yè)可以使用湖倉一體化的數(shù)據中臺能力,優(yōu)化數(shù)據管理架構,充分融合數(shù)據湖和數(shù)據倉庫各自優(yōu)勢。使用數(shù)據湖做集中式的原始數(shù)據存儲,發(fā)揮數(shù)據湖的靈活和開放優(yōu)勢。 又通過湖倉一體技術將面向生產的高頻數(shù)據和任務,無縫調度到數(shù)據倉庫中,以得到更好的性能和成本,以及后續(xù)一系列面向生產的數(shù)據治理和優(yōu)化,最終讓企業(yè)在成本和效率之間找到最佳平衡。 總體來說,MaxCompute湖倉一體為企業(yè)提供了一種更靈活更高效更經濟的數(shù)據平臺解決方案,既適用于全新構建大數(shù)據平臺的企業(yè),也適合已有大數(shù)據平臺的企業(yè)進行架構升級,可以保護現(xiàn)有投資和實現(xiàn)資產利舊。

828eb3ee-7628-11ed-8abf-dac502259ad0.png

圖12. DataWorks湖倉一體化數(shù)據中臺

6.3 典型客戶案例:新浪微博應用「湖倉一體」構建混合云AI計算中臺

案例背景

微博機器學習平臺團隊,主要做社交媒體領域里的推薦主要做社交媒體領域里的推薦/排序、文本/圖像分類、反垃圾/反作弊等技術。 技術架構上主要圍繞開源Hadoop數(shù)據湖解決方案,一份HDFS存儲+多種計算引擎(hive、spark、flink),以滿足以AI為主的多計算場景需求。但微博作為國內Top的社交媒體應用,當前的業(yè)務體量和復雜性已然進入到開源“無人區(qū)”,開源數(shù)據湖方案在性能和成本方面都無法滿足微博的要求。 微博借助阿里巴巴強大的飛天大數(shù)據和AI平臺能力(MaxC+PAI+DW ),解決了超大規(guī)模下的特征工程、模型訓練以及矩陣計算的性能瓶頸問題,進而形成了阿里巴巴MaxCompute平臺(數(shù)倉)+ 開源平臺(數(shù)據湖)共存的格局。

核心痛點

微博希望借助這兩套異構的大數(shù)據平臺,既保持面向AI的各類數(shù)據和計算的靈活性,又解決超大規(guī)模下的計算和算法的性能/成本問題。但因為這兩套大數(shù)據平臺在集群層面完全是割裂的,數(shù)據和計算無法在兩個平臺里自由流動,無形之中增加了大量的數(shù)據移動和計算開發(fā)等成本,進而制約了業(yè)務的發(fā)展。 主要的痛點是:1)安排專人專項負責訓練數(shù)據同步,工作量巨大 2) 訓練數(shù)據體量大,導致耗時多,無法滿足實時訓練的要求 3) 新寫SQL數(shù)據處理query,無法復用Hive SQL原有query。

82bc5ce0-7628-11ed-8abf-dac502259ad0.png

圖13. 新浪微博業(yè)務痛點示意

解決方案

為了解決上述的痛點問題,阿里云產品團隊和微博機器學習平臺團隊聯(lián)合共建湖倉一體新技術,打通了阿里巴巴MaxCompute云數(shù)倉和EMR Hadoop數(shù)據湖,構建了一個跨湖和倉的AI計算中臺。 MaxCompute產品全面升級網絡基礎設施,打通用戶VPC私域,且依托Hive數(shù)據庫一鍵映射和強大完善的SQL/PAI引擎能力,將MaxCompute云數(shù)倉和EMR Hadoop數(shù)據湖技術體系無縫對接,實現(xiàn)湖和的倉統(tǒng)一且智能化管理和調度。

82e68790-7628-11ed-8abf-dac502259ad0.png

圖14. 微博湖倉一體架構圖

案例價值

不僅融合了數(shù)據湖和數(shù)據倉庫的優(yōu)勢,在靈活性和效率上找到最佳平衡,還快速構建了一套統(tǒng)一的AI計算中臺,極大提升該機器學習平臺團隊的業(yè)務支撐能力。無須進行數(shù)據搬遷和作業(yè)遷移,即可將一套作業(yè)無縫靈活調度在MaxCompute集群和EMR集群中。

SQL數(shù)據處理任務被廣泛運行到MaxCompute集群,性能有明顯提升。基于阿里巴巴PAI豐富且強大的算法能力,封裝出多種貼近業(yè)務場景的算法服務,滿足更多的業(yè)務需求。

MaxCompute云原生的彈性資源和EMR集群資源形成互補,兩套體系之間進行資源的削峰填谷,不僅減少作業(yè)排隊,且降低整體成本。

07 總結

數(shù)據湖和數(shù)據倉庫,是在今天大數(shù)據技術條件下構建分布式系統(tǒng)的兩種數(shù)據架構設計取向,要看平衡的方向是更偏向靈活性還是成本、性能、安全、治理等企業(yè)級特性。 但是數(shù)據湖和數(shù)據倉庫的邊界正在慢慢模糊,數(shù)據湖自身的治理能力、數(shù)據倉庫延伸到外部存儲的能力都在加強。在這樣的背景之下,MaxCompute 率先提出湖倉一體,為業(yè)界和用戶展現(xiàn)了一種數(shù)據湖和數(shù)據倉湖互相補充,協(xié)同工作的架構。 這樣的架構同時為用戶提供了數(shù)據湖的靈活性和數(shù)據倉庫的諸多企業(yè)級特性,將用戶使用大數(shù)據的總體擁有成本進一步降低,我們認為是下一代大數(shù)據平臺的演進方向。

編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 大數(shù)據
    +關注

    關注

    64

    文章

    8854

    瀏覽量

    137210

原文標題:變與不變:20年大數(shù)據架構發(fā)展史

文章出處:【微信號:架構師技術聯(lián)盟,微信公眾號:架構師技術聯(lián)盟】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    大數(shù)據技術發(fā)展史簡介 淺談大數(shù)據挖掘與機器學習

    AI人工智能又是基于大數(shù)據技術基礎上發(fā)展起來的,大數(shù)據技術已經很清晰了,但是AI目前還未成熟啊,所以本文就天馬行空一下,從
    的頭像 發(fā)表于 09-29 15:46 ?7097次閱讀
    <b class='flag-5'>大數(shù)據</b><b class='flag-5'>技術發(fā)展史</b>簡介 淺談<b class='flag-5'>大數(shù)據</b>挖掘與機器學習

    恒壓變壓器的發(fā)展史

    本電子書匯集了各類恒壓變壓器原理、產品以及它的的發(fā)展史,它的各項特性在電子行業(yè)得到普遍認可和廣泛使用。清版主刪除,以為附件超大了不能上傳[此貼子已經被作者于2008-7-29 15:14:40編輯過]
    發(fā)表于 07-29 14:55

    常見大數(shù)據應用有哪些?

    大數(shù)據技術為決策提供依據,在***、企業(yè)、科研項目等決策中扮演著重要的角色,在社會治理和企業(yè)管理中起到了不容忽視的作用,很多國家,如中國、美國以及歐盟等都已將大數(shù)據列入國家發(fā)展戰(zhàn)略,微
    發(fā)表于 03-13 16:50

    美國力科示波器發(fā)展史

    都是由同時代最優(yōu)異的電子器件架構而成,同時它本身又有力的推動了電子技術向前進步,工程師只有借助于示波器才能不斷改進產品性能??梢院敛豢鋸埖恼f,示波器的歷史就是一部電子工業(yè)的發(fā)展史,而美國力科公司就是這一歷史進程中非常重要的參與者
    發(fā)表于 06-28 06:44

    藍牙耳機發(fā)展史

    幾年之久,藍牙技術雖然收到了其他技術標準的沖擊。但是在此期間藍牙技術也在不斷的進行改進,最終有了現(xiàn)在的藍牙5.1版本。藍牙技術在當今依然是無線通信
    發(fā)表于 10-22 14:29

    Linux系統(tǒng)發(fā)展史及版本更迭

    運維必知Linux系統(tǒng)發(fā)展史及版本更迭
    發(fā)表于 04-29 14:15

    5G的發(fā)展史

    5G到底是什么?為什么引得一眾通訊巨頭相繼搶占先機?在這里,將用一組圖帶您梳理一下5G的發(fā)展史。在視頻、游戲霸屏移動端的今天,4G已不能滿足龐大的流量需求。4G即將成為明日黃花,5G即將接棒流量市場
    發(fā)表于 12-24 06:25

    大數(shù)據的定義及其應用

    目錄1、大數(shù)據概述1.1. 概述1.2. 大數(shù)據定義1.3. 大數(shù)據技術發(fā)展2、大數(shù)據應用2.1. 大數(shù)
    發(fā)表于 07-12 06:12

    3G發(fā)展史

    3G發(fā)展史
    發(fā)表于 10-29 12:55 ?742次閱讀

    聲卡的發(fā)展史

    聲卡的發(fā)展史    
    發(fā)表于 12-26 11:23 ?1356次閱讀

    EV-DO技術演進發(fā)展分析

    EV-DO技術演進發(fā)展分析  1 引言   根據CDG最新發(fā)布數(shù)據,目前全球的CDMA用戶數(shù)已達4.9億, 全球已有Veriozon、Sprint、KDDI、中國電信、LG Telecom、Telus Mobility、S
    發(fā)表于 01-08 11:35 ?968次閱讀
    EV-DO<b class='flag-5'>技術</b><b class='flag-5'>演進發(fā)展</b>分析

    無線通信技術發(fā)展史及特點分析

    無線通信技術發(fā)展史及特點分析介紹。
    發(fā)表于 05-31 15:13 ?36次下載

    直流電機的發(fā)展史

    直流電機的發(fā)展史(電源技術 是半月刊)-直流電機的發(fā)展史,有需要的可以參考!
    發(fā)表于 09-15 15:56 ?14次下載
    直流電機的<b class='flag-5'>發(fā)展史</b>

    華為云FusionInsight智能數(shù)據助力企業(yè)全面演進現(xiàn)代數(shù)據棧,優(yōu)化數(shù)據服務和管理

    隨著大數(shù)據技術發(fā)展,政企數(shù)字化轉型的首要任務是充分利用大數(shù)據和分析。然而,在使用大數(shù)據技術的過
    的頭像 發(fā)表于 04-12 14:31 ?520次閱讀

    電阻柜的發(fā)展史

    電阻柜發(fā)展史
    的頭像 發(fā)表于 03-08 15:22 ?384次閱讀