阿里妹導讀:資料湖可以很好地幫助企業應對當前資料場景越來越多、資料結構越來越複雜、資料處理需求越來越多樣化的問題。阿里雲從2018年起就開始佈局資料湖,推出了雲原生資料湖分析Data Lake Analytics(DLA),從資料湖管理(幫助客戶高效管理構建資料湖),Serverless Spark(提供高價效比的大規模計算),Serverless SQL(提供高價效比的線上互動式分析)三個方面幫助客戶挖掘資料價值。本文分享相關技術挑戰及解決方案。
一 資料湖的機遇與挑戰
二 如何管理與構建資料湖?
已經在資料湖儲存OSS上面的資料如何高效的構建後設資料。
非OSS資料如何高效的入湖建倉。
1 海量檔案後設資料自動構建技術
格式豐富:包括CSV、Text、JSON、Parquet、Orc、Avro、hudi、Delta Lake等格式,其中CSV、Text又包含多種自定義的分隔符等。
檔案數在百萬級別:OSS的擴充套件性及價效比較好,使用者儲存在OSS的檔案會是百萬級別。
檔案動態上傳:儲存在OSS上面資料檔案具有動態持續上傳的特性,新的檔案如何快速增量修改後設資料。
2 入湖建倉資料組織技術
三 雲原生資料湖平臺需打通雲基礎設施
1 資源高效供給
2 安全防護
一次金鑰:每個Job任務都會去TokenServer申請臨時的Token,Job失效Token會過期,如果存在攻擊行為,則平臺會直接讓Token過期,則訪問Meta等服務會被拒絕。
預防DDOS&注入攻擊:所有的訪問平臺服務的請求,都會對接到安全防護中心,安全防護中心檢測有任何攻擊或者注入行為,直接關閉網路埠。
計算容器隔離:計算節點間採用阿里雲自研的安全容器,容器本身可以實現VM相同的安全隔離級別。
安全白名單:使用者互相之間的網路是完全隔離的。
ENI虛擬網路卡:打通VPC需要配置自己賬號下的安全組和虛擬交換機(VSwitch),配置之後結算節點容器會分配使用者VPC對應VSwitch網段的的IP,並掛載使用者的安全組。
3 高吞吐網路頻寬
- 訪問OSS服務是透過高吞吐的頻寬服務。
- 使用ENI技術訪問自持VPC,跟在自持VPC內ECS上部署計算引擎訪問自持VPC內資料一樣,頻寬同樣是VPC內網頻寬。
四 Serverless Spark服務的技術挑戰
1 Spark訪問OSS最佳化
社群版本的問題
Spark OSS訪問最佳化
2 多租戶UI服務
HistoryServer的痛點
DLA多租戶SparkUI
五 Serverless SQL服務的技術挑戰
全記憶體計算帶來的極致速度。
支援完整SQL語義帶來的強大表達力。
易用的外掛機制使得我們可以對任何資料來源進行關聯查詢。
強大的社群使得我們使用之後沒有後顧之憂。
一個使用者如果提交大量大查詢將可能佔用叢集所有資源,導致其它使用者無法使用。
單Coordinator使得整個服務的可用性無法得到保證。
1 多租戶隔離技術
全域性排程層面:即使一個租戶使用了過多的計算力資源也不會及時被懲罰,只有新查詢會被Block。
Worker排程層面:所有租戶的Split是在同一個佇列裡面進行排程,一個租戶如果有過多Split會影響其它租戶。
2 Multi-Coordinator技術
可用性隱患: 一旦Coordinator當機、整個叢集將不可用達5到10分鐘。
無法實現無縫升級,升級過程中影響所有使用者的查詢使用。
六 雲原生資料湖端到端最佳實踐
提供統一開放的Meta服務對OSS資料進行管理,支援庫表許可權。
利用後設資料爬取功能,可以一鍵建立OSS上的後設資料資訊,輕鬆自動識別CSV/JSON/Parquet等格式,建立好庫表資訊,方便後續計算引擎使用。
一鍵將RDS/PolarDB/MongoDB等資料庫的資料同步到OSS儲存當中,搭建冷熱資料分層的業務架構,對多源海量資料進行資料洞察分析。
支援流式構建Hudi格式,滿足T+10分鐘的延遲要求,極大提升分析的端到端的延遲。
Serverless化SQL分析,幫助您即開即用資料湖。使用者無需購買任何資源,即可執行標準的SQL語法查詢資料。
支援對資料湖儲存OSS Cache加速,提升10倍的效能。
支援RDS、PolarDB、ADB、MongoDB資料十種資料來源的分析。
對比傳統的Presto、Impala方案提升10x的價效比提升。
Serverless化Spark計算,幫助您自主玩轉資料湖。使用者無需購買任何資源,即可使用雲原生的Spark服務,支援OSS 數PB的資料清洗、機器學習、使用者可程式設計,玩轉資料湖。
每分鐘可彈出500個節點參與計算。
對比傳統的自建Spark方案提升3x的價效比提升。