資料湖架構及概念簡介
摘要:本文整理自阿里雲開源大資料技術專家陳鑫偉在7月17日阿里雲資料湖技術專場交流會的分享。本篇內容主要分為兩個部分:
- 資料湖演進歷程
- 雲原生資料湖架構
一、資料湖演進歷程
什麼是資料湖?
資料湖概念於 2010 年提出,其目的是解決傳統資料倉儲和資料集市所面臨的兩個問題:其一,希望透過統一的後設資料儲存解決資料集市之間的資料孤島問題;其二,希望儲存原始資料,而非儲存資料集市建設過程中經過裁剪後的資料,以避免資料原始資訊的丟失。當時,開源的 Hadoop 是資料湖的主要代表。
隨著雲端計算的發展, 2015 年,各個雲廠商開始圍繞雲上的物件儲存重新解讀和推廣資料湖。雲上物件儲存具有大規模、高可用和低成本的優勢,逐步替代了 HDFS 成為雲上統一儲存的主流選擇。雲上的物件儲存支援結構化、半結構化和非結構化的資料型別,同時以存算分離的架構和更開放的資料訪問方式支援多種計算引擎的分析,主要代表有 AWS S3 和阿里雲的OSS。
2019年,隨著 Databricks 公司和 Uber 公司陸續推出Delta Lake、Hudi 和 Iceberg 資料湖格式,透過在資料湖的原始資料之上再構建一層後設資料層、索引層的方式,解決資料湖上資料的可靠性、一致性和效能等問題。同時,流式計算技術如Flink、AI 技術等也開始在資料湖上有了更廣泛的應用。
同年,AWS 和阿里雲也相繼推出了 Data Lake Formation 等資料湖構建和管理的產品,能夠幫助使用者更快速地構建和管理雲上資料湖。資料湖架構的不斷演進和成熟也得到了更多客戶的關注和選擇。
資料湖架構演進
早期,使用者基本在 IDC 機房裡基於伺服器或虛擬機器建設 Hadoop 叢集,主要的儲存為 HDFS ,主流的計算引擎為 Hive 和 Spark 等。
隨著雲端計算的發展,很多使用者為了解決 IDC 機房在資源擴縮容和運維方面的困難,開始選擇在雲上構建自己的資料湖平臺。可以選擇雲上提供的大資料構建平臺,比如EMR,來幫助快速建設和部署多個叢集。
但大部分早期使用者選擇直接將雲下的架構搬到雲上,依然以 HDFS為主要的儲存,因此 HDFS 的問題依然存在,比如 NameNode 的擴充套件性問題、穩定性問題;比如計算資源和儲存資源的耦合問題等;資料也儲存於叢集內部,跨叢集、跨引擎的資料訪問也會存在問題。
而現在更主流的選擇是資料湖架構,基於雲上物件儲存如OSS做統一儲存。在儲存之上,有一套管控平臺進行統一的後設資料管理、許可權管理、資料的治理。再上層會對接更豐富的計算引擎或計算產品,除了 Hadoop、Hive、Spark 等離線分析引擎,也可以對接流式的引擎比如 Flink,Olap引擎如 ClickHouse、 Doris、 StarRocks 等。
二、雲原生資料湖架構
阿里雲資料湖發展歷程
阿里雲在資料湖方向已經經過了很多年的發展。最早期的 OSS 釋出於2011年,彼時資料湖的應用場景還很少。直到 2015 年,阿里雲釋出了雲上 EMR 產品,開始將 Hive 和Spark 放至 EMR 叢集,再將資料放至OSS,存算分離的架構開始流行。
2018年和 2019 年,阿里雲相繼推出了資料湖分析DLA和資料湖構建DLF兩款專門面向資料湖的產品。 2022 年推出的資料湖儲存(OSS-HDFS)以及 EMR Data Lake 叢集,資料湖解決方案的產品矩陣逐步形成。
整個歷程中,有三個標誌性事件:2019年,阿里雲釋出了 《阿里云云原生資料湖白皮書》 ,很多業內夥伴都基於這份白皮書開始研究學習和建設自己的資料湖;同年阿里雲也打通資料湖和自研的 MaxCompute 雲原生數倉,推出了湖倉一體架構; 2022 年,阿里雲成為首批透過通訊院的雲原生資料湖測評認證的企業。
資料湖建設思路及挑戰
經過多年沉澱,阿里雲在資料湖的建設上也積累了一定的經驗和思路。我們認為資料湖的建設主要包括四個階段。
第一階段:資料入湖。
透過各種各樣的入湖方式將資料匯入資料湖。入湖方式可以根據自己的業務需求和場景進行選擇,比如全量入湖、CDC更新入湖、實時追加寫入以及整個 Hadoop 叢集搬遷上雲等。
第二階段:資料湖儲存與管理。
幫助使用者更好地管理發現和高效使用資料湖裡的資料。此階段主要包括以下幾個方面:
① 資料目錄與檢索:一方面能夠提供後設資料的服務,另一方面能夠提供資料的快速檢索能力。
② 許可權控制與審計:因為資料湖本身是相對開放和鬆散的體系,需要有比較強的許可權管控的能力來保證企業資料的安全性。
③ 資料質量控制:避免資料湖發展成資料沼澤的關鍵手段。
④ 湖表管理與最佳化:管理最佳化 資料湖格式。
⑤ 儲存管理與最佳化:物件儲存提供了資料冷熱分層的特性,但這些特性落地時還需要輔以自動化的手段以進行儲存管理最佳化。
第三階段:資料處理與分析。
可以根據實際場景選擇多種資料處理和分析方式,比如做離線分析、實時計算、互動式分析、AI訓練等。
第四階段:資料服務與應用。
資料湖較為開放,因此可以直接用 BI 系統、視覺化系統連線資料湖上的引擎,進行實時分析或視覺化的資料展示等。另一方面,資料湖裡的資料也可以再進一步同步或 Sink 到更專業的資料系統中,比如到 ES 裡進行進一步資料檢索,比如到ClickHouse/ Doris/ StarRocks等做更豐富的多元分析。
阿里云云原生資料湖解決方案
經歷了多年的摸索後,阿里雲推出了一個較為完整的雲原生資料湖解決方案,整體架構如上圖所示:
底層是儲存層: 統一儲存各類資料,並對外提供檔案訪問的介面和協議。
第二層是管控層: 可以理解為服務化的管控與最佳化,一方面提供統一的後設資料、統一許可權管控,另一方面提供智慧化資料湖管理、快速資料檢索等能力。
第三層是多元的計算與分析層: 可以透過很多開源或阿里雲自研的分析引擎對湖內資料進行加工和處理。
最上層是資料開發治理層: 提供了面向湖和倉完善的資料開發體系以及資料治理平臺。
由此可見,資料湖的建設不僅僅是大資料相關技術的整合和應用,同時也是一個複雜的系統工程,需要有成熟的方法論以及平臺型的基礎設施做支撐,才能建設出安全可靠、功能完善、成本可控的企業級資料湖。
瞭解更多:
[1] 資料湖構建Data Lake Formation:
[2] 開源大資料平臺EMR:
[3] 資料湖揭秘—Delta Lake : https://developer.aliyun.com/article/909818
[4] 資料湖構建—如何構建湖上統一的資料許可權: https://developer.aliyun.com/article/918403
[5] 關於 Data Lake 的概念、架構與應用場景介紹: https://developer.aliyun.com/article/944650
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70004426/viewspace-2912914/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Scrapy架構及資料流圖簡介架構
- 資料湖+資料倉儲 = 資料湖庫架構架構
- 資料湖 VS 資料倉儲之爭?阿里提出大資料架構新概念:湖倉一體阿里大資料架構
- 資料湖--架構師如何助力“湖加速”?架構
- 資料湖架構,為什麼需要“湖加速”?架構
- 讀資料湖倉08資料架構的演化架構
- 大資料分類和架構簡介大資料架構
- 資料庫 Mysql 邏輯架構簡介資料庫MySql架構
- 讀資料湖倉04資料架構與資料工程架構
- 大資料架構和模式(一)——大資料分類和架構簡介大資料架構模式
- 漫談“資料湖”之價值與架構架構
- GridGain的資料湖加速器簡介AI
- 通用資料湖倉一體架構正當時架構
- 談談如何從資料湖(Data Lake)架構轉向資料網格(Data Mesh)架構架構
- Zookeeper簡介及分散式概念分散式
- ELK架構簡介架構
- Apache Kafka資料模型概念簡介 - BaeldungApacheKafka模型
- Hive簡介、應用場景及架構原理Hive架構
- 資料結構簡介資料結構
- 分散式 PostgreSQL - Citus 架構及概念分散式SQL架構
- 分散式 PostgreSQL - Citus 架構及概念分散式SQL架構
- 大資料Lambda架構概念及應用大資料架構
- 軟體架構簡介架構
- 微服務架構簡介微服務架構
- Flume(一):簡介架構架構
- postgresql相關開源軟體及架構簡介SQL架構
- hadoop生態圈綜合簡介及架構案例Hadoop架構
- ffmpeg資料結構簡介資料結構
- Redis資料結構簡介Redis資料結構
- Kubernetes 架構及基礎概念架構
- Openstack架構概念圖-簡單彙總架構
- 架構設計 | 分散式事務①概念簡介和基礎理論架構分散式
- HBase 系統架構及資料結構架構資料結構
- 四種JavaEE架構簡介Java架構
- 微服務架構模式簡介微服務架構模式
- Microservice架構模式簡介ROS架構模式
- 資料庫和資料湖的關鍵概念性差異資料庫
- 資料架構建設方法及案例架構