雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

最近幾年資料湖熱度很高,當搞大資料的同學聚在一起時候,經常會談到這方面的話題,可能有的同學說“我們在做 Hudi 資料湖,你們用 Delta 還是 Iceberg?”,也會有同學說“我在阿里雲上搞了一個OSS資料湖”、“什麼,你們資料湖用 HDFS?”、“我們在阿里雲上搞 JindoFS,最佳化資料湖”、“最近搞了個湖倉一體”等等的討論。

資料湖的相關討論可以說是千人千面,每一個技術同學面對資料湖的時候,根據自己不同的工作背景,都可能有自己不同的理解,那麼,資料湖到底意味著什麼呢?可以先了解一下資料湖的三要素。

資料湖核心三要素 :

1、包羅永珍的資料

不是指資料庫,也不是資料倉庫;

而是指各種資料,包羅永珍。非結構化資料、半結構化資料和結構化資料。

2、理想的儲存

HDFS? 不是。

物件儲存?It depends。

實際上,公共雲物件儲存才是。

為什麼?海量,彈性;分層、歸檔,低成本;安全,合規。

3、開放的計算

資料廣泛可觸達,充分挖掘價值。

豐富和開放的計算,不止 BI,AI。

針對計算場景的最佳化、加速,效能不打折扣。

那麼到底什麼是雲原生資料湖呢?

從理念上來講,就是按照雲原生的理念構建出來的資料湖儲存系統。運用資料湖構建產品快速搭建出來的,基於oss物件儲存系統挖出來的資料湖。然後基於這樣的訴求,我們可以做BI和AI的分析。那麼我們以阿里雲上的雲原生資料湖為例,可以看下雲原生資料湖的上雲途徑。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

可以看到,我們可以利用阿里雲資料湖構建Data Lake Formation 、統一的物件儲存OSS快速搭建出一個數據湖。

那麼利用這個資料湖,我們可以用資料整合DateHub和 Data Lake Formation 提供的資料入湖的手段,把各種資料來源做資料入湖的處理。那麼我們最主要的業務目的是什麼?是利用上面各種開放豐富的計算來做分析。

我們提供了阿里雲自研的MaxCompute這種分析產品,還有E-MapReduce這個開源大資料全家桶的分析產品,來做BI的分析。我們可以利用阿里雲的PAI、EMR DateScience 這種AI的套件來做AI的智慧分析。

我們剛才說了這個計算是非常開放以及豐富的,如果你在阿里雲上有一個自建的Hadoop,或是CDH這種叢集,同樣可以對接到資料湖,然後進行分析。戰略上面我們還合作了大量的第三方產品,比如Databricks資料洞察,同樣可以對接到資料湖進行分析。

接下來,我們再來看一下資料湖的構建和分析的過程,我們提供了怎樣的支援。以下講的是資料湖構建,我們專門提供了這樣的一個數據湖構建產品Data Lake Formation。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

它的核心就是維護資料湖的元資料,資料湖不光是包括資料本身,還包括資料的元資料。資料的元資料是在Data Lake Formation中,統一管理和儲存的。好處是避免了各個計算產品自己來維護檔案的元資料所帶來的不一致性。統一集中來管理的話,我們還可以做集中的訪問控制上的許可權或日誌審計。Data Lake Formation對接的各種資料來源,比如MySQL、Kafka等,提供了離線和實時入湖的方式。目前我們對接的資料湖的格式,有Delta和Hudi。

接下來重點講解一下,我們在分析產品上,利用開源大資料分析的套件E-MapReduce來做資料湖分析。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

EMR其實是一個開源大資料全家桶的產品,以上只是列出了資料湖分析上的相關支援。在分析引擎和OSS資料湖之間,我們還提供了資料湖加速的支援。我們有了Alluxio這種開源的加速器,同時也有自研的JindoFS加速器。JindoFS對OSS資料湖我們提供了全面對接開源分析引擎的支援。

整個EMR的產品可以run在ACK上,也可以run在ECS上面,利用ECS和ACK的彈性伸縮的能力,我們讓整個資料湖分析變得低成本。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

剛才提到,在EMR產品套件中,有了資料湖加速的這一層次,接下來重點講一下JindoFS和JindoTable雙加速的能力。

JindoFS主要是在檔案系統層面,利用計算側的磁碟資源,對遠端的OSS資料做快取加速,從而大幅度提升Hive、Spark、Presto的分析處理能力。JindoTable和JindoFS相當於是相互配合,它主要是在表分割槽這個層次上面,去做快取去做加速。然後對Parquet、ORC這種格式做了Native的最佳化,從而更進一步提升了上面提到的分析引擎的處理能力。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

除了效能最佳化,我們知道資料湖還需要做成本最佳化,因為裡面儲存了大量的資料。JindoTable和JindoFS同樣互相配合,我們做了分層和歸檔。利用OSS的基礎能力,我們維護資料的熱度、冷度,然後透過Jindo的相關命令,可以對資料進行快取、歸檔和分層這些功能。利用分層的能力,我們可以看到假定一個使用者,如果它有10PB的資料,以HDFS這種方式來做儲存方案,成本會達到上百萬。但如果我們換用OSS資料湖的方案,我們可以把大量的冷資料放在歸檔,整個儲存成本可以大幅度降低。

接下來,我們來看一個數據湖的最佳實踐。來源於上海數禾科技的大資料架構師程俊傑先生的一篇在阿里雲社群分享的案例文章。以下經過他的同意,對他的文章進行了一些摘要和加工。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

上海數禾科技在某雲上面使用的是CDH+EMR,雲上混合的架構。它遷移到阿里雲之後,是按照資料湖的理念做的設計,充分考慮到他們不同的業務需求,以及許可權控制和脫敏相關的部分。

經過過去的一年,他們在成功地遷移到阿里雲資料湖架構上之後,又做了EMR的治理和OSS的治理,這些治理方面的經驗在文章裡面都做了大量的分享。最近他們又升級到了湖倉一體的架構,把元資料用Data Lake Formation來統一管理,然後組合使用EMR和MaxCompute等多個阿里雲計算產品來對資料湖進行分析。

戳我直達文章,獲取具體實戰細節數禾雲上資料湖最佳實踐

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

以上是數禾在阿里雲上面的資料湖架構,我們可以看到它在OSS的資料湖上面,其實有多個Bucket。在這上面,利用JindoFS提供的OSS透明的快取加速能力,然後有多個EMR叢集分別去按照不同的業務訴求來做分析。面對這麼多叢集,他們的排程是用的目前比較流行的大資料排程平臺Airflow。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

剛才提到,資料湖的一個非常大的價值是把儲存成本和計算成本降下來。計算成本其實主要是靠彈性伸縮來降。在EMR裡面,可以去設定彈性伸縮策略和彈性伸縮規則。彈性伸縮規則結合YARN的排程能力,可以看到什麼時候該擴叢集,什麼時候該縮叢集。包括提前伸縮的時間都可以做設定,真正的做到需要多少,就用多少。把計算成本降到最低。這個跟好幾年前做的Hadoop叢集實戰,是完全不一樣的。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

以上主要介紹瞭如何構建雲原生資料湖,那麼如此多的資料結構化、半結構化、非結構化的儲存在你的資料庫和資料倉庫裡,這麼多的資料應該如何來管?先來看一看企業在管理資料的過程中又面臨哪些問題?

1、資料孤島:

資料不集中,重複儲存,重複計算

資料上雲門檻高,資料儲存成本高

2、資料開發和運維成本高:

自研資料平臺難度大,成本高

開源工具擴充套件性,穩定性難以保證

資料質量,運維成本難以匹配業務快速增長需求

3、資料共享應用不易

數倉中的資料對各類BI或應用不便

資料儲存分散,分佈在數倉,資料湖,資料庫中

資料難以共享和統一管理

4、大規模資料難以治理

隨著資料規模的不斷增大,資料治理越發難以進行,資料質量、監控、安全逐漸成為瓶頸

針對這些問題,阿里雲的DataWorks產品提供了一站式的資料開發治理的能力。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

它構建於不同的計算和儲存引擎之上,包括阿里雲自研的大資料服務MaxCompute,開源的大資料平臺EMR/CDH,支援實時計算、圖計算,互動式分析。它構建在OSS 、HDFS、DLF之上湖倉一體的體系下,為大家提供實時離線的資料整合、資料開發,並且透過統一的排程任務和統一的元資料服務,為大家提供了各種各樣的資料治理的能力。包括資料質量,智慧監控,資料地圖,資料安全,資源最佳化等。透過統一的元資料服務,為企業提供從資料平臺到業務系統最後一公里的能力。

最後我們可以透過open API把我們整個平臺開放給客戶,也就是說您可以在不看到DataWorks介面的情況下,深度整合整個DataWorks的產品能力。

那這樣一款產品它哪些核心能力呢?可以概括為以下幾點:

資料整合

資料開發

資料治理

資料服務

首先,它透過資料整合實現了資料的入倉入湖。第二,資料在進入了我們的系統之後,資料開發它會透過支援多引擎的能力對這些資料進行精細化的處理和開發。第三,資料治理在基於多引擎湖倉一體的體系上提供統統一的元資料服務,使您對您的資料可以實現更易用和可用性。最後,透過資料服務使這些資料可以一站式的直達到你的系統中。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

我們首先來看一下資料整合,我們這裡一共提供了50多種不同型別資料之間的相互的同步,比如說關係型資料庫、大資料儲存、訊息佇列以及非結構化的資料,而且同時我們提供了離線和實時的入倉和入湖。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

當我們的業務資料透過資料整合進入到我們的計算和儲存引擎之後,DataWorks提供實時離線的開發,透過支援多引擎的能力以及跨引擎之間的相互排程的能力,根據各種引擎的效能,你可以選擇最優的最合適你的排程引擎,把它們集合成一個整體,對這些資料進行處理和開發。最後這些資料透過我們的資料服務提供給各種BI的分析的工具來展示資料報表和影象的分析。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

上圖也是一個簡單的基於EMR的資料開發的排程的價格圖。我們可以看到它可以支援EMR的不同型別的作業,同時我們還支援一系列的邏輯業務節點,透過支援這些邏輯業務節點,我們可以支援迴圈、順序、分支、跨地域、依賴等等,並且提供這種按日的千萬級的大規模的排程來符合企業這種複雜的邏輯業務結構。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

這些資料經過了精密的資料開發的基礎上,隨著企業業務的不斷髮展,數字化轉型的不同階段,那麼大家對資料治理也呈現了不同層次的不同型別的需求,我們在資料實時的正確產生的基礎上,我們對於資料整個的共享性、易用性,好理解,資料安全,敏感資料識別等等,以及你的成本最佳化,都有了一些更高層次的需求。

那麼DataWorks在各種各樣的資料治理的需求方面,又提供了哪些能力來可以幫助你的企業管理資料、治理資料呢?

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

首先在時效性方面,我們有一個全方位的運維和智慧監控系統,並且透過各式各樣的比如說簡訊、郵件、釘釘、電話來以及移動運維對你進行及時的告警,使您可以在任何地方的任何時間,只要開啟你的手機,就可以對你的線上任務進行及時的處理。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

以上可以看到,這是一款DataWorks獨創的,並且已經獲得了國家專利的智慧基線監控技術。可以看到上圖的K節點,你只要關心你整個資料最後產出的節點,而無需關注它的上游節點,DataWorks會非常智慧的幫你搜索遍歷它的上游節點,並且找出它的關鍵路徑,在關鍵路上的每一個節點設定相應的智慧監控和告警,這樣就可以提前的發現問題,及時干預。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

我們這裡提供30多種的內建模板,並且提供自定義模板的設定,可以讓你對你的任何一張報表根據你的規則設定它的校驗規則,同時它跟剛才的資料開發流程其實是緊密結合的,也就是說你在你的任意一個業務節點,對你的任意的一張表可以設定相應的規則,當你的任務會排程到這個節點的時候,這個規則也同時被觸發。你也可以根據不同的級別來設定各種各樣的報警,甚至去阻塞下游業務,這樣就可以防止髒資料的產生。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

資料在已經以高質量、高效生成的基礎上,DataWorks提供對湖倉一體不同引擎的元資料的統一的採集以及管理。基於這些統一採集管理的原資料,就可以提供全域資料的檢索,資料詳情的分析、資料的熱度、資料的產出資訊以及非常精確的血緣關係。基於這樣血緣關係,你可以對資料進行溯源以及進行各種各樣的資料分析,你的資料就會變得更好理解,更好用更好查詢。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

我們除此以外還提供了一個全鏈路的資料安全的保護。資料安全領域我們提供了租戶隔離Role Base的許可權管理,操作行為的日誌,並且跟開源的Kerberos/LDAP是打通的。除此以外,對整個資料的開發鏈路其實也是有一個全鏈路的安全保障的,從資料傳輸開始,比如說我們可以對資料傳輸資料來源的訪問進行控制,在資料儲存的過程中可以進行儲存加密,資料的備份和恢復,在資料處理的過程中可以進行更細力度安全管控,隨後的資料交換資料下載,然後會進行相應的介面的鑑權,以及進行資料脫敏的處理。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

企業的資產隨著資料量的逐漸的增大,那麼企業對資產的管控也需要需要有越來越高的需求。DataWorks在基於以前數倉的基礎上,也逐漸的把它拓展到剛才我們講的整個的資料湖場景,它可以基於湖倉一體,逐步把整個企業全域的資源盤點和規劃,最佳化給到客戶,使成本得到非常精良的控制。

下面我們以EMR為例子,看一下在EMR這個產品上,到底是怎樣深度結合,進行全域的資料開發和治理的。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

某一個遊戲廠商,它的資料進入了阿里雲的整個系統之後,進入EMR叢集先進行訊息佇列,然後進入EMR叢集進行相應的計算和處理,透過實時計算、互動式分析,最後給到使用者大資料的BI的展現。

我們可以看到在整個鏈路過程中,DataWorks會與整個我們鏈路的各種各樣的資料儲存和計算引擎進行深度的結合,在全鏈路去cover整個資料開發和治理的過程。

雲原生資料湖構建、分析與開發治理最佳實踐及案例分享

以上是一個簡單的demo,大家可以看到DataWorks在EMR上,我們是怎樣進行整合的。(具體相關的介紹可以在文章開頭戳影片連結,觀看具體講解)

最後總結一下,DataWorks在湖倉一體的基礎上,支援多引擎,提供一個全域的資料開發和治理的平臺。透過這款產品可以幫助企業最終實現您的一切業務資料化,一切資料業務化的功能。

作者:鄭鍇 - 阿里雲高階技術專家,張晨暉 - 阿里雲產品專家

相關文章