大數(shù)據(jù)的創(chuàng)新——數(shù)據(jù)湖
掃描二維碼
隨時(shí)隨地手機(jī)看文章
數(shù)據(jù)管理成為核心競(jìng)爭(zhēng)力,直接影響財(cái)務(wù)表現(xiàn)。當(dāng)“數(shù)據(jù)資產(chǎn)是企業(yè)核心資產(chǎn)”的概念深入人心之后,企業(yè)對(duì)于數(shù)據(jù)管理便有了更清晰的界定,將數(shù)據(jù)管理作為企業(yè)核心競(jìng)爭(zhēng)力,持續(xù)發(fā)展,戰(zhàn)略性規(guī)劃與運(yùn)用數(shù)據(jù)資產(chǎn),成為企業(yè)數(shù)據(jù)管理的核心。數(shù)據(jù)資產(chǎn)管理效率與主營業(yè)務(wù)收入增長率、銷售收入增長率顯著正相關(guān);此外,對(duì)于具有互聯(lián)網(wǎng)思維的企業(yè)而言,數(shù)據(jù)資產(chǎn)競(jìng)爭(zhēng)力所占比重為36.8%,數(shù)據(jù)資產(chǎn)的管理效果將直接影響企業(yè)的財(cái)務(wù)表現(xiàn)。
讓數(shù)據(jù)產(chǎn)生價(jià)值才叫成功。早期有不少的公司引入了 Hadoop,將企業(yè)的各種結(jié)構(gòu)化非結(jié)構(gòu)化數(shù)據(jù)加載至 Hadoop 環(huán)境當(dāng)中,想讓自己的數(shù)據(jù)發(fā)揮更大的價(jià)值,但這并不容易。2016 年,Gartner 公司估計(jì)有 60% 的大數(shù)據(jù)項(xiàng)目遭遇失敗。一年之后,他們表示 60% 的估計(jì)太過保守,這個(gè)數(shù)字應(yīng)該是 85%。大數(shù)據(jù)存儲(chǔ)已經(jīng)走到了一個(gè)新的階段,肯定會(huì)有新的革命性技術(shù)來替換它。
大數(shù)據(jù)的未來
前十多年,大數(shù)據(jù)的發(fā)展主要集中在技術(shù)框架上,社區(qū)出現(xiàn)了一系列優(yōu)秀的作品,如最開始引領(lǐng)大數(shù)據(jù)風(fēng)潮的 Hadoop,到計(jì)算引擎 Spark、Flink ,消息中間件 Kafka ,以及資源調(diào)度器 Kubernetes 等等,大數(shù)據(jù)領(lǐng)域的技術(shù)框架已經(jīng)比較成熟。
通過開源架構(gòu)策略,現(xiàn)代化數(shù)字企業(yè)逐漸意識(shí)到自己的目標(biāo)是通過業(yè)務(wù)實(shí)現(xiàn)數(shù)據(jù)的價(jià)值化,未來將會(huì)把更多的精力投向研究底層數(shù)據(jù)消費(fèi)和上層的產(chǎn)品應(yīng)用。
2019 年 6 月,谷歌以 26 億美元收購了數(shù)據(jù)分析公司 Looker。同月,Salesforce 宣布以 157 億美元收購 BI 企業(yè) Tableau 。2019 年 9 月,Cloudera 宣布收購商業(yè)智能實(shí)時(shí)分析廠商 Arcadia Data。這些收購案例都說明企業(yè)的目標(biāo)開始轉(zhuǎn)向解讀所積累的海量數(shù)據(jù)。
賦能業(yè)務(wù),快速應(yīng)對(duì)挑戰(zhàn),正是數(shù)據(jù)湖所能提供的。數(shù)據(jù)湖的概念,最早是在 2011 年由 Dan Woods 提出,”是一個(gè)集中化存儲(chǔ)海量的、多個(gè)來源,多種類型數(shù)據(jù),并可以對(duì)數(shù)據(jù)進(jìn)行快速加工,分析的平臺(tái),本質(zhì)上是一套先進(jìn)的企業(yè)數(shù)據(jù)架構(gòu)“。例如在社交廣告中的用戶畫像,需要行為日志等非結(jié)構(gòu)化數(shù)據(jù),經(jīng)過層層數(shù)據(jù)加工形成業(yè)務(wù)價(jià)值。以后也會(huì)延伸到圖像、語音等類型。這些就是數(shù)據(jù)湖能提供的特別優(yōu)勢(shì)。
Apache Ozone 項(xiàng)目是由大數(shù)據(jù)公司 Hortonworks 貢獻(xiàn)出來的,最初是為了解決 Hadoop 系統(tǒng)中的對(duì)象存儲(chǔ)問題。面對(duì) Hadoop 向云上發(fā)展的方向,騰訊選擇了在一年多前正式加入 Ozone,組了一支隊(duì)伍,利用騰訊的業(yè)務(wù)場(chǎng)景和數(shù)據(jù)規(guī)模,進(jìn)行協(xié)同開發(fā),擴(kuò)展成數(shù)據(jù)湖存儲(chǔ),并推進(jìn)技術(shù)落地。InfoQ 采訪了騰訊大數(shù)據(jù)海量存儲(chǔ)與數(shù)據(jù)湖研發(fā)負(fù)責(zé)人堵俊平,了解數(shù)據(jù)湖的發(fā)展和面臨的挑戰(zhàn),本文基于這次采訪。堵俊平曾在 Hortonworks 供職 4 年,負(fù)責(zé) YARN 團(tuán)隊(duì),目前在騰訊負(fù)責(zé)騰訊大數(shù)據(jù)的海量存儲(chǔ)、海量計(jì)算以及數(shù)據(jù)湖等研發(fā)方向,有 10 多年的云計(jì)算與大數(shù)據(jù)產(chǎn)品研發(fā)經(jīng)驗(yàn)。
今年 10 月,他將在 QCon 全球軟件開發(fā)大會(huì)(上海站)2019 作題為《OZone - 下一代數(shù)據(jù)湖存儲(chǔ)》的演講。
數(shù)據(jù)湖是數(shù)據(jù)倉庫的進(jìn)階
關(guān)于數(shù)據(jù)湖的定義確實(shí)是一個(gè)業(yè)界有較多爭(zhēng)議的地方。狹義的數(shù)據(jù)湖指的是數(shù)據(jù)湖存儲(chǔ),即可以存放海量數(shù)據(jù)(各種格式)的地方,包括 Hadoop 的文件系統(tǒng) HDFS 或者云上的對(duì)象存儲(chǔ)系統(tǒng) S3 都屬于這個(gè)范疇。廣義的數(shù)據(jù)湖除了數(shù)據(jù)湖存儲(chǔ),還包括數(shù)據(jù)湖的管理和分析,即提供一整套工具,提供數(shù)據(jù)目錄(Data Catalog)服務(wù)以及統(tǒng)一的數(shù)據(jù)訪問。業(yè)界很重要的趨勢(shì),是從傳統(tǒng)的數(shù)據(jù)倉庫向數(shù)據(jù)湖的方向在演進(jìn)。
1. 傳統(tǒng)的數(shù)倉體系
最早出現(xiàn)的是數(shù)據(jù)庫一體機(jī),是由單獨(dú)的硬件軟件所構(gòu)成,這種數(shù)倉的問題也很明顯,它需要一個(gè)專有的硬件設(shè)計(jì),你只要用的不是通用的硬件,一般成本都會(huì)比較高。第二,它的擴(kuò)展性非常差,在往前推十年、二十年是可以的,但是在這樣的大數(shù)據(jù)時(shí)代,大家都不想隨意地拋棄掉自己的數(shù)據(jù)和數(shù)據(jù)資產(chǎn),所以一體機(jī)模式的數(shù)倉肯定要被這個(gè)時(shí)代淘汰掉。
2. 分布式的數(shù)倉階段
這個(gè)階段也分兩塊,一塊是從分庫分表,從邏輯上把這個(gè)數(shù)據(jù)分成不同的模塊,放在不同的數(shù)據(jù)庫上面;另外一個(gè)方式,整個(gè)過程是通過 MPP 這個(gè)架構(gòu),通過一些獨(dú)立的數(shù)據(jù)庫組建出來 MPP 數(shù)據(jù)庫,總體來說 MPP 數(shù)據(jù)庫還是非常強(qiáng)大的。但是 MPP 有一個(gè)限制,它不能支持海量的數(shù)據(jù),因?yàn)楦嗵砑庸?jié)點(diǎn),尤其是當(dāng)它的擴(kuò)展規(guī)模超過 100 個(gè)節(jié)點(diǎn)以上的時(shí)候,會(huì)發(fā)現(xiàn)大的任務(wù)幾乎無法執(zhí)行,因?yàn)樽盥墓?jié)點(diǎn)會(huì)拖累整個(gè)任務(wù)的執(zhí)行。
3. 云原生的數(shù)倉階段
這些 adhoc 分析的任務(wù)在業(yè)務(wù)不斷變化的情況下,包括經(jīng)歷波峰、波谷,對(duì)計(jì)算資源有不同的需求,這個(gè)時(shí)候云原生數(shù)倉就會(huì)越來越流行,因?yàn)樗且粋€(gè)多集群的,彈性可伸縮的,并且支持海量的高并發(fā)。這里說回傳統(tǒng)的 MPP 數(shù)倉,還有個(gè)問題,就是 SQL 并發(fā)能力跟單機(jī)數(shù)據(jù)庫是一樣的,因?yàn)椴l(fā)的所有 SQL 都要在每一臺(tái)機(jī)器上去執(zhí)行,無法突破單機(jī)數(shù)據(jù)庫的并發(fā)限制。
無論是傳統(tǒng)數(shù)倉還是新型數(shù)倉,無論是類似 Teradata,還是 MPP 架構(gòu),或者是 Oracle 單機(jī)加強(qiáng)版架構(gòu),都是從數(shù)據(jù)庫發(fā)展而來的。使用的場(chǎng)景也主要是用格式化的數(shù)據(jù)。但數(shù)據(jù)湖并不要求很強(qiáng)的數(shù)據(jù)格式,非結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù)都行,也不要求數(shù)據(jù)入庫之前需要像數(shù)倉那樣建立嚴(yán)格的一套 ER 模型,或者其他的范式模型。
數(shù)據(jù)可以很輕松進(jìn)入數(shù)據(jù)湖,用戶也可以延遲數(shù)據(jù)的采集、數(shù)據(jù)清洗、規(guī)范化的處理,可以把這些延遲到業(yè)務(wù)需求來了之后再進(jìn)行處理。這跟早期的數(shù)倉思維就很不一樣,它相對(duì)于企業(yè)來說,靈活性比較強(qiáng)。傳統(tǒng)的數(shù)倉,因?yàn)槟P头妒降囊?,業(yè)務(wù)不能隨便的變遷,變遷涉及到底層數(shù)據(jù)的各種變化。傳統(tǒng)數(shù)倉沒法支持業(yè)務(wù)變化。對(duì)于數(shù)據(jù)湖來說,尤其像互聯(lián)網(wǎng)行業(yè)中新的應(yīng)用,不斷的發(fā)生變化,它的數(shù)據(jù)模型也不斷的變化。相對(duì)來說,數(shù)據(jù)湖就更加的靈活,能更快速的適應(yīng)上層數(shù)據(jù)應(yīng)用的變化。
數(shù)據(jù)湖的三個(gè)層次,分為數(shù)據(jù)庫等底層存儲(chǔ)、元數(shù)據(jù)管理、跨不同數(shù)據(jù)源的 SQL 引擎。數(shù)據(jù)湖也是數(shù)據(jù)倉庫發(fā)展的高級(jí)階段,對(duì)于數(shù)倉來說,數(shù)據(jù)湖有很多擴(kuò)展能力。數(shù)倉解決的核心問題,數(shù)據(jù)湖也解決了一遍,而且涉及面更廣。比如說,數(shù)據(jù)庫的數(shù)據(jù)有對(duì)齊的要求,數(shù)據(jù)庫是面向應(yīng)用的,每個(gè)應(yīng)用可能需要一個(gè)數(shù)據(jù)庫。如果一個(gè)公司有幾十個(gè)應(yīng)用,就會(huì)有幾十個(gè)數(shù)據(jù)庫。幾十個(gè)數(shù)據(jù)庫之間怎么去連接分析、統(tǒng)一分析?是沒有辦法的。隨后就由數(shù)據(jù)庫發(fā)展成了一個(gè)數(shù)據(jù)倉庫,數(shù)據(jù)倉庫不面向任何應(yīng)用。但是,它對(duì)接到數(shù)據(jù)庫,如果需要每天定時(shí)有些 ETL 的批處理的任務(wù),將不同應(yīng)用和數(shù)據(jù)匯總起來,按照一些范式模型去做連接分析,得到一定時(shí)間段的總體數(shù)據(jù)視圖。這個(gè)前提是很多數(shù)據(jù)庫要給數(shù)倉供應(yīng)數(shù)據(jù)。這些供應(yīng)數(shù)據(jù)是數(shù)據(jù)庫是表格化、規(guī)范化的方式。
但現(xiàn)在互聯(lián)網(wǎng)企業(yè)的應(yīng)用,大部分?jǐn)?shù)據(jù)不再來源于數(shù)據(jù)庫了,它可能來源于日志,比如用戶的行為日志,或機(jī)器的日志,可能來源于各種各樣的非格式化的數(shù)據(jù)。這時(shí)就必須要用數(shù)據(jù)湖這種方式??梢钥缭街皵?shù)倉建模種種的約束,針對(duì)業(yè)務(wù)需求去做聯(lián)合分析和查詢。對(duì)上層數(shù)據(jù)應(yīng)用所提供的接口更像是一個(gè)統(tǒng)一的界面,屏蔽了底層異構(gòu)數(shù)據(jù)源的差異,這也是大數(shù)據(jù)發(fā)展未來的重要趨勢(shì)。
面向未來,數(shù)據(jù)湖做出的變革
存儲(chǔ)計(jì)算分離
二十年前,Google 用普通硬盤代替了昂貴的專有硬件設(shè)備方案,但當(dāng)時(shí)的網(wǎng)絡(luò)帶寬只有 100M。為了快讀訪問,同時(shí)也創(chuàng)造出了計(jì)算和存儲(chǔ)耦合的架構(gòu)。Hadoop 延續(xù)了計(jì)算存儲(chǔ)一體化的方式。
存儲(chǔ)計(jì)算一體化架構(gòu)的性能是經(jīng)過了優(yōu)化的:通過任務(wù)調(diào)度的方式,將計(jì)算調(diào)度到離數(shù)據(jù)更近的地方,訪問更快也省資源。而云端的場(chǎng)景,采用的是計(jì)算和存儲(chǔ)分離的方式,第一性能可能不是最重要的點(diǎn),第二大家更考慮”彈性伸縮“,業(yè)務(wù)需要大的波峰時(shí)候,需要很多的資源,業(yè)務(wù)相對(duì)在低谷的時(shí)候,希望資源可以是收縮的。
Ozone 這樣的下一代數(shù)據(jù)湖兼顧 Hadoop 的計(jì)算存儲(chǔ)一體化和云的彈性伸縮的優(yōu)勢(shì),一方面實(shí)現(xiàn)了邏輯上的計(jì)算存儲(chǔ)分離,同時(shí)在任務(wù)調(diào)度時(shí),又能做到數(shù)據(jù)和機(jī)架感知功能(data、rack awareness),能讓計(jì)算更貼近存儲(chǔ)。
這也是對(duì)傳統(tǒng)云存儲(chǔ)數(shù)據(jù)訪問方式的一個(gè)變革。
高性能高可靠的海量存儲(chǔ)
Hadoop 的三副本保證了數(shù)據(jù)的可靠性,傳統(tǒng)的大數(shù)據(jù)的 HDFS 寫的方式是依次寫多個(gè)副本。在寫性能優(yōu)化上,Ozone 采用 Raft 分布式通訊協(xié)議,同時(shí)寫幾個(gè)副本。這種局部創(chuàng)新,讓 Ozone 得到了很好的性能上的提升。
對(duì)于 Hadoop 存儲(chǔ)面向云的演化,還要看 HDFS 如何跟云上的對(duì)象存儲(chǔ)配合。在 HDFS 上,所有的元數(shù)據(jù)(命名空間、塊管理等)都會(huì)放在單個(gè)的 NameNode 節(jié)點(diǎn)上,如果考慮到同時(shí)并行的文件操作以及數(shù)據(jù)塊上報(bào)、RPC 的響應(yīng)等因素,這個(gè)時(shí)候就會(huì)遭遇擴(kuò)展瓶頸。如果集群存儲(chǔ)的是海量小文件,元數(shù)據(jù)體量會(huì)劇烈暴增,這個(gè)瓶頸期會(huì)更快到來。所以這種架構(gòu)不適合海量的高性能大數(shù)據(jù)處理。Ozone 將元數(shù)據(jù)進(jìn)行了分散處理,規(guī)避了以前的問題。并且云上的對(duì)象存儲(chǔ)方式,從硬件上和通用 API 訪問的方式上,性價(jià)比比較高。Ozone 除了提供文件接口,為了跟云去做對(duì)接,還提供了對(duì)象存儲(chǔ),這樣就可以在云上部署類似的系統(tǒng),對(duì)數(shù)據(jù)訪問進(jìn)行無縫的集成,而且相比傳統(tǒng)的云端對(duì)象存儲(chǔ)還可以做高性能的拓?fù)涓兄?。這相當(dāng)于在傳統(tǒng)的對(duì)象存儲(chǔ)和 HDFS 海量分布式文件存儲(chǔ)中做了取長補(bǔ)短,也是一個(gè)重要的變革。
面向機(jī)器學(xué)習(xí)
現(xiàn)在面對(duì)機(jī)器學(xué)習(xí)和離線計(jì)算,跟大數(shù)據(jù)場(chǎng)景下處理的數(shù)據(jù)方式不一樣,現(xiàn)在需要去處理的可能是一張張圖片,或云語料文字,這種數(shù)據(jù)的顆粒度更小,不像傳統(tǒng)的大數(shù)據(jù)應(yīng)用那么集中。這種海量小文件,不是傳統(tǒng)的 HDFS 所擅長的,正好在 Ozone 里得到了解決,可以支撐小文件或?qū)ο蟠鎯?chǔ)方式,對(duì)機(jī)器學(xué)習(xí)的發(fā)展也有促進(jìn)作用。
現(xiàn)在深度學(xué)習(xí)和超大規(guī)模的神經(jīng)網(wǎng)絡(luò)潮流來了之后,更離不開大量的數(shù)據(jù)。AI 和大數(shù)據(jù)在技術(shù)層面上,兩個(gè)社區(qū)也開始相互對(duì)接融合,不斷出現(xiàn)在大數(shù)據(jù)平臺(tái)做深度學(xué)習(xí)的 AI 框架,這樣的平臺(tái)能在底層有調(diào)度的能力,能同時(shí)調(diào)度好 AI 模型訓(xùn)練、推理以及做數(shù)據(jù)預(yù)處理的任務(wù)。
針對(duì)云和機(jī)器學(xué)習(xí)場(chǎng)景,Ozone 項(xiàng)目具有很多特點(diǎn),包括:無限的擴(kuò)展能力,強(qiáng)一致性的對(duì)象存儲(chǔ)能力,與主流計(jì)算調(diào)度框架 YARN 和 Kubernetes 無縫對(duì)接,以及同時(shí)兼容對(duì)象存儲(chǔ)與 HDFS API 等。這些技術(shù)特性也決定了 OZone 的現(xiàn)在的發(fā)展方向。
堵俊平總結(jié)說:”大數(shù)據(jù)存儲(chǔ)已經(jīng)走到了一個(gè)新的階段,肯定會(huì)有新的革命性技術(shù)來替換它。“
未來挑戰(zhàn)
數(shù)據(jù)湖的使用場(chǎng)景,是為了將各種數(shù)據(jù)匯集到一起,但現(xiàn)在的數(shù)據(jù)引擎太千差萬別了,SQL 引擎是一套,NoSQL 包括 Cassandra、HBase 又是另一套東西,還有類似 Elasticsearch 和圖計(jì)算等等。很多引擎都自帶存儲(chǔ),將這些數(shù)據(jù)從不同的引擎里去拉通,堵俊平覺得是很有價(jià)值的。但是目前還沒有哪家公司有工具能完全做到,大部分是選擇少數(shù)幾個(gè)數(shù)據(jù)引擎去統(tǒng)一。堵俊平表示”騰訊內(nèi)部有研發(fā)項(xiàng)目,來做類似的事情。希望能夠把各種各樣的數(shù)據(jù)引擎和元數(shù)據(jù)都能夠做一個(gè)聚合和統(tǒng)一,這樣才能真正達(dá)到理想中的數(shù)據(jù)湖管理和統(tǒng)一數(shù)據(jù)分析的愿景“。
未來,數(shù)據(jù)科學(xué)將成為一門專門的學(xué)科,被越來越多的人所認(rèn)知。各大高校將設(shè)立專門的數(shù)據(jù)科學(xué)類專業(yè),也會(huì)催生一批與之相關(guān)的新的就業(yè)崗位。與此同時(shí),基于數(shù)據(jù)這個(gè)基礎(chǔ)平臺(tái),也將建立起跨領(lǐng)域的數(shù)據(jù)共享平臺(tái),之后,數(shù)據(jù)共享將擴(kuò)展到企業(yè)層面,并且成為未來產(chǎn)業(yè)的核心一環(huán)。