天天看點

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

作者:鄭锴 - 阿裡雲進階技術專家,張晨晖 - 阿裡雲産品專家

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

最近幾年資料湖熱度很高,當搞大資料的同學聚在一起時候,經常會談到這方面的話題,可能有的同學說“我們在做 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在湖倉一體的基礎上,支援多引擎,提供一個全域的資料開發和治理的平台。通過這款産品可以幫助企業最終實作您的一切業務資料化,一切資料業務化的功能。

對資料湖感興趣的同學歡迎掃碼加入以下釘釘交流群,不錯過每次直播資訊、探讨更多資料湖 JindoFS+OSS 相關技術問題!

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

後續我們會也在EMR釘釘群定期推送精彩案例,邀請更多技術大牛直播分享。歡迎有興趣的同學掃下方二維碼加入釘釘群進行交流和技術分享。關注公衆号,鎖定每周精彩分享内容!

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

繼續閱讀