一、數(shù)據(jù)湖
數(shù)據(jù)湖在學(xué)術(shù)上的定義是一種在系統(tǒng)或者存儲庫以自然格式存儲的方法。它有助于存儲各種模式和結(jié)構(gòu)形式的數(shù)據(jù),通常是對象塊或者文件。
為什么現(xiàn)在會提出新的自然存儲格式方法?以前如何存儲數(shù)據(jù)?在使用數(shù)據(jù)倉庫時需調(diào)動處理大量的數(shù)據(jù)。正是因為大數(shù)據(jù)的產(chǎn)生,提出了數(shù)據(jù)湖的概念。
大數(shù)據(jù)來了,它就像水一樣,我們無法把水存在傳統(tǒng)的倉庫里。一是它太大了,二是它很廉價,三是它的形態(tài)不一樣了。大數(shù)據(jù)速度大快,就像洪水一樣,在使用過程中沒法做減庫、入庫的操作,要快速以自然的格式存儲。因此,傳統(tǒng)數(shù)據(jù)倉庫存的是結(jié)構(gòu)化數(shù)據(jù),數(shù)據(jù)湖里存的是非結(jié)構(gòu)化、半結(jié)構(gòu)化的數(shù)據(jù)。
二、數(shù)據(jù)湖實踐報告
采用數(shù)據(jù)湖存儲數(shù)據(jù)的原因,一方面是現(xiàn)階段及未來需要處理大量非結(jié)構(gòu)化的數(shù)據(jù),另一方面是為了機(jī)器學(xué)習(xí)和人工智能的分析使用。數(shù)據(jù)湖的產(chǎn)生會把數(shù)據(jù)倉庫的一部分功能移植到數(shù)據(jù)湖中,數(shù)據(jù)湖的成本比數(shù)據(jù)倉庫的成本更低廉。
經(jīng)過使用調(diào)研,近一半的人認(rèn)為企業(yè)使用數(shù)據(jù)湖已經(jīng)迫在眉睫,四分之一的人認(rèn)為已經(jīng)部署了數(shù)據(jù)湖,另外四分之一的人會在一年內(nèi)部署數(shù)據(jù)湖。
很多人把傳統(tǒng)數(shù)據(jù)放在數(shù)據(jù)湖里,數(shù)據(jù)湖不光有原始數(shù)據(jù),它也有大量的數(shù)據(jù)加工處理工作。它的數(shù)據(jù)量在不斷增加,逐步邁向PB級。
從數(shù)據(jù)管理來說,數(shù)據(jù)湖還是由傳統(tǒng)的數(shù)據(jù)倉庫團(tuán)隊管理和IT部門管理,業(yè)務(wù)部門只占少數(shù)。大部分是工程師、架構(gòu)師和分析師在用數(shù)據(jù)湖,業(yè)務(wù)員和非技術(shù)人員用得比較少。
從架構(gòu)和平臺的采納方面來說,目前數(shù)據(jù)湖以Hadoop為多,傳統(tǒng)數(shù)據(jù)可以采用關(guān)系型數(shù)據(jù)湖,二者結(jié)合使用的也很好。
三、HashData云端數(shù)據(jù)湖解決方案
在青云QingCloud上的數(shù)據(jù)湖包括存儲、分析和搜索幾個模塊。存儲用的是QingStor對象存儲;分析用的是HashData V2版本計算引擎;數(shù)據(jù)攝取用的是QingMR,結(jié)合Kalka做存儲;機(jī)器學(xué)習(xí)除了配有QingMRSteaming和SparkMR,還有SQL機(jī)器學(xué)習(xí)的工具。
在存儲方面,大家對數(shù)據(jù)湖的需求是數(shù)據(jù)湖要存得住、存得起。對象存儲支持海量的數(shù)據(jù)存儲,可以無限擴(kuò)展,存大數(shù)據(jù)沒問題。存得起,就要我們提供一個經(jīng)濟(jì)實用的存儲。從存儲角度來看,如果使用對象存儲,會大幅降低數(shù)據(jù)湖的存儲成本。
存儲成本降下來了,如何保證你的計算性能?從計算層面,HashData采用了V2架構(gòu)。
(1)物聯(lián)網(wǎng)客戶使用實例
HashDataV1版本在塊存儲磁盤上,大概有2萬IoT傳感器設(shè)備,每時每刻都在不斷地產(chǎn)生數(shù)據(jù),數(shù)據(jù)膨脹得非常厲害。如何按照客戶需求降低成本?通過青云的測試分級存儲機(jī)制,實現(xiàn)了既大幅降低了存儲成本,又保證了查詢性能的目標(biāo)。
HashDataV2的架構(gòu)繼承了GreenPlum體系,用SQL解決問題,這簡化了數(shù)據(jù)湖的使用。
(2)大數(shù)據(jù)工具
大數(shù)據(jù)應(yīng)用對實時性要求比較高。目前用得比較多的三個工具:Storm、Spark Steaming和FLink。對比Spark Steaming和Storm:
實時性:Spark Steaming從計算模型來看是準(zhǔn)實時;Storm是實時的,數(shù)據(jù)進(jìn)入后便實時進(jìn)行處理。
延時性:Storm達(dá)到毫秒級,Spark Steaming達(dá)到秒級。
存儲量:Spark Steaming更3<-點,它更符合大數(shù)據(jù)的處理需求,實現(xiàn)秒級接受可滿足一般應(yīng)用場景需要。若產(chǎn)生幾萬條乃至10萬條數(shù)據(jù)方可批量寫入,不需要逐條寫。
HashData標(biāo)配是采用SparkSteaming做實時數(shù)據(jù)的攝取。
機(jī)器學(xué)習(xí)分析Spark MLab是通用的,更多的是做MADlib,MADlib是Apache的頂級開源項目,只在PostgreSQL和GreenPlum體系里可以用。它的特點是基于SQL,以前用Spark做機(jī)器學(xué)習(xí),用Python、Skyline或R。SQL大部分工程師都會用,學(xué)一兩周就能簡單上手。Spark能做的具體功能,它也可以做。它也是InDatabase的數(shù)據(jù)分析,數(shù)據(jù)湖就在其所屬的平臺上,如果要采用另外的工具分析,這里有大量的數(shù)據(jù)交換。它在Base里減少數(shù)據(jù)交換,并且可以充分利用HashData的并行計算,可以保證其性能。
四、云端數(shù)據(jù)治理和數(shù)據(jù)安全
前面談到數(shù)據(jù)治理和數(shù)據(jù)安全。HashData秉承PostgreSQL和GreenPlum完整的權(quán)限管理功能,如Table、Database和Funtcion等。
在元數(shù)據(jù)管理上,存到HashData里的表和字段,除了存到數(shù)據(jù)節(jié)點上之外,還會把元數(shù)據(jù)存到GlobalCatalog上,這時數(shù)據(jù)治理工具或者DPU管理員可清楚地知道存到數(shù)據(jù)湖里有哪些數(shù)據(jù)、什么時候存的、數(shù)據(jù)有多大都可一目了然,數(shù)據(jù)治理非常方便。
HashData主要應(yīng)用場景就有工業(yè)數(shù)據(jù)湖。工業(yè)數(shù)據(jù)湖IoT有大量的數(shù)據(jù)需要做分析、預(yù)測性維修等。一部分是電信用戶行為分析、日志分析;還有交通大數(shù)據(jù)處理工作,例如卡口信息,在工作范圍內(nèi)大量拍照,拍照后人工智能攝像頭可以很方便地把牌照信息進(jìn)行結(jié)構(gòu)化處理解析出來,結(jié)構(gòu)化數(shù)據(jù)的存到HashData上,如牌照、車牌顏色等都存在數(shù)據(jù)庫里,并進(jìn)一步分析其流量、高速公路繳費信息等。
總結(jié)來說,HashData的優(yōu)勢是把它放在對象存儲的成本降下來了,同時保證性能不變。HashData也繼承了云的特點,通過鼠標(biāo)操作就可以在幾分鐘內(nèi)把集群起起來,不需要花一兩天的工夫安裝部署。技術(shù)生態(tài)秉承了原來GreenPlum、PostgreSQL這種用SQL解決問題的思路。在彈性方面,HashData支持在線擴(kuò)容。