日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一文读懂云原生一体化数仓

發布時間:2024/8/23 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一文读懂云原生一体化数仓 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介:阿里云云原生一體化數倉產品技術深度解讀。

本文大綱

一、云原生一體化數倉的發布背景

1 ?市場情況

2 ?挑戰和痛點

二、云原生一體化數倉是什么

三、云原生一體化數倉的技術理念

1 ?離線實時一體

2 ?湖倉一體

3 ?分析服務一體

4 ?全鏈路數據治理

一、云原生一體化數倉的發布背景

1.1市場情況

IDC 2021年的報告顯示,2021年全球大數據軟件市場規模達預計可達5414.2億人民幣,相比較2020年的4813.6億元人民幣,增長12.5%;2021年中國大數據平臺軟件市場規模預計達125.8億元人民幣。相比2020年增長36.5%。預計未來3年平均復合增長超30%。

阿里云在2021年上半年以明顯優勢位于中國大數據公有云服務市場第一。

我國的十四五規劃中也明確提到,要加快數據的高價值轉化,必須實現以下條件:

① 大體量的數據匯聚、全環節的數據采集以及工業基礎大數據的建設等。

② 多樣性的數據處理,包括多種數據類型、多模態以及多行業的數據處理等。

③ 時效性的數據流動,包括數據的動態更新、數據共享空間的建立等。

④ 高質量的數據治理,將數據的資產和全生命周期很好地管理起來。

⑤ 高價值的數據轉化,包括通過數據進行政府治理、社會治理、風險控制、工業升級、金融科技的升級等。

大數據在不同的行業中已經有越來越多、越來越成熟的應用。國家規劃中也明確提出,我們要培育專業化、場景化的大數據解決方案,構建多層次的工業互聯網平臺、建設行業的大數據平臺等。

1.2挑戰和痛點

現階段,各行業和產業都在利用大數據的能力進行產業升級,這也對承載整個數據分析的基礎大數據的平臺提出了更多和更高的要求。 企業在建設大數據平臺時有諸多挑戰:

● ? ? 時效性、準確性、性價比同時有強需求;

● ? ? 越來越多的非結構化數據難以有效支撐分析決策;

● ? ? 如何割裂的,異構大數據平臺之上進行全域的數據分析。

順應市場的訴求,阿里云重磅推出了云原生一體化數倉,解決各行業企業構建大數據分析平臺的痛點。

二、云原生一體化數倉是什么

云原生一體化數倉是集阿里云大數據產品MaxCompute、DataWorks、Hologres三種產品能力于一體的一站式大數據處理平臺。一體化數倉可以解決企業在建設大數據平臺中對時效性、準確性、性價比、非結構化數據支撐分析決策、異構大數據平臺之上的全域數據分析需求。

通過MaxCompute和Hologres的深度融合,提供豐富和靈活的離線實時一體化的能力,通過更加開放的對數據湖的支持以及對數據分析多樣化統一管理的湖倉一體能力, 通過一份數據的基礎不斷追求對數倉的實時化和在線化的能力結合,最后通過DataWorks自頂向下和自底向上的雙向建模的能力,以及數據治理與企業數據評估模型的新能力來幫助企業更加直觀地感受到自身的數據成熟度。開放的DataWorks插件體系也讓客戶和行業ISV圍繞自身的數據去構建更多的場景化數據分析的能力,從而真正助力其業務的智能化升級。

其核心是3個一體化和全鏈路數據治理能力,包括離線實時一體化、湖倉一體、分析服務一體化、全鏈路數據治理。

A. ?離線實時一體● ? 以MaxCompute和Hologres為核心的從N到1極簡架構,提供離線實時一體化海量云數倉服務;

● ? MaxCompute和Hologres 10X性能高速原生互訪,深度集成;

● ? MaxCompute發布EB級海量云數倉的快速查詢能力。

B. ?湖倉一體

● ? 持續提升易用的湖倉開發體驗;

● ? 新增非結構化數據的湖倉管理能力;

● ? 廣泛支持開源生態對接。

C. ?分析服務一體

● ? 數倉實時化、敏捷化、在線化、一體化趨勢明顯;

● ? 一個平臺上、一份數據實現靈活探索式分析和高并發在線應用查詢,同時實現良好的資源隔離和可用性;

● ? 減少數據割裂,減少數據移動,統一數據服務出口。

D. ?全鏈路數據治理

● ? 面向業務視角自頂向下進行數倉規范建模;

● ? 問題驅動的可持續數據治理與企業數據治理成效評估;

● ? DataWorks開放平臺全新升級。

三、云原生一體化數倉的技術理念

1 ? 離線實時一體

離線計算和實時計算

大數據技術發展早期是面向海量規模的大數據處理而產生的,但是隨著互聯網應用和技術的發展,業務在線化和精細化運營的需求越來越強烈,比如實時的GMV大屏,實時的經營數據分析,實時的用戶畫像和標簽系統等,所以大數據技術逐漸從離線計算開始往實時化方向演進和發展。

離線數倉和實時數倉在很多場景、設計理念和產品能力上具備不同對的特點。離線數倉面向數據加工場景,而實時數倉面向數據分析場景。加工系統為調度服務,分析系統為人機交互和在線應用服務;處理的數據量,加工系統屬于大數據進,大數據出,產出的是加工的結果表,而分析系統屬于大數據進,小數據出,產出的是報表、大屏上的KPI;在時效性上,加工系統通過采用批次加工理念,T+1方式完成數據加工,而分析系統希望數據寫入即可用,實時可更新;在使用上,加工系統是離線的作業提交,作業有進度,中間步驟可重試,分析系統是在線系統,查詢是同步響應,查詢只有成功和失敗兩種狀態。不同的需求場景決定了不同的技術路線,為了擴展性,離線系統采用作業異步調度,資源計算時分配,計算存儲完全解耦的設計,為了實時的性能,實時系統采用RPC同步調用,計算資源預分配,計算存儲運行時綁定等技術。

在從離線到實時化發展的過程中,大數據領域出現了很多優秀的系統以應對各種不同的分析和查詢場景。比如我們可以將實時的數據歸檔到像Hive這樣的離線數倉里進行數據的離線處理后再將聚合后的小規模數據導出到mysql進行后續的報表查詢或者數據訪問,也有將數據經過flink流計算引擎進行前置的實時處理計算后將結果匯總到HBASE/casandra這樣的KV系統進行高并發的點查,或者是實時數據直接寫入clickhouse/druid這樣的mpp系統里進行快速的交互式查詢,還有通過presto進行多個數據源的聯邦查詢,總之為了實現數據的攝取、處理、分析鏈路的實時化,需要搭建和運維多套系統或者服務,最終造成了架構復雜、數據存儲割裂、數據不一致、開發成本高等諸多的問題。

從N到1的離線實時一體化海量云數倉

阿里云為了解決這一問題,推出了以MaxCompute和Hologres為核心的離線實時一體化海量云數倉架構,它用1套架構解決了N種分析場景的需求。過去需要運維N種組件、開發N套系統、對接N種接口、N種安全策略,現在只用1個系統就都解決了,解決了數據割裂和開發復雜的問題,并且讓架構變得非常簡單。

在數據攝取部分,MaxCompute不僅提供傳統的批量寫入,也新近支持了流式寫入能力以提高離線數據鏈路的數據寫入效率和數據通道的穩定性,而Hologres提供了寫入即可見的實時寫入和更新能力,以保證數據寫入和更新的實時性。

在數據計算部分,MaxCompute作為一個EB級海量云數倉,提供了低成本海量規模的數據存儲和計算力。面向高吞吐的設計可以讓一個超大規模的計算任務穩定的產出、復雜的UDF功能可支持用戶通過靈活的編程進行復雜邏輯的數據處理、海量數倉里的計算任務一般會運行時間較長,從分鐘到小時甚至到天級別,MaxCompute持續進行性能優化目前可將離線查詢加速到秒級,也就是說具備從秒級到天級別的廣譜適用性。

Hologres作為一個實時云數倉,通過很多OLAP數倉技術的創新,如CPU向量化技術、全鏈路異步化、以及充分利用ssd寫入友好等特性提供了數據實時寫入、實時更新、實時分析的云數倉服務,支持極致的高并發和亞秒級的低延遲。

MaxCompute和Hologres兩個引擎在場景和技術上形成補充,相輔相成,在他們各自擅長的領域發揮極致的體驗。但是他們畢竟是兩套系統,為了避免數據的割裂,我們已經通過深度融合的手段,打通了兩套系統的元數據和存儲,可實現在數據不移動的情況下,相互訪問,最終對外提供服務和分析的能力,以支持像在線應用、數據大屏、運營看板、即席查詢等多種場景的要求。

MaxCompute和Hologres深度融合技術

1. 元數據可見技術

通過元數據可見技術,實現不同系統之間的數據可見性,進而實現雙向的讀寫能力。MaxCompute的表可以批量導入Hologres的元數據庫中,支持MaxCompute新增表自動同步到Hologres中。反過來,也支持將Hologres的表定義為MaxCompute的外表。通過外表的元數據可見,實現了數據不搬遷,支持雙向的可讀可寫可感知。元數據自動發現技術,更是讓外表的創建和更新完全自動化,減少了大量手工運維調試的工作。用戶不再需要周期性同步表結構,不再需要擔心數據類型的不對齊。

2. 外表加速技術

理想的狀態是離線系統加工好的數據直接可以用于實時系統的交互式分析,但由于調度機制、資源分配機制等局限,僅僅通過離線系統的技術改進可以實現一定的加速效果,但如果要充分發揮交互式分析的計算力,通過實時系統的外表加速技術,可以更有質量實現離線數據的加速分析。在外表加速加速技術中,數據無需搬遷,在查詢運行時,會利用實時系統的計算資源和更高效的RPC調度機制,直接訪問離線系統中的存儲文件。通過實時系統的常駐進程、緩存、預讀取、表達式下推等技術,實現查詢加速,廣泛使用在BI交互式查詢等場景。

3. 高速直讀直寫

外表的實現有兩種思路,一種是通過各自引擎的查詢接口對接,一種是直接訪問對方系統的底層存儲系統。通過查詢接口對接,隔離性好,接口符合規范,對接門檻低,但性能不是最優,因為調用路徑更長,訪問的組件更多;直接訪問底層存儲引擎,侵入性強,容易受到系統技術迭代變化引起的不兼容。所以大部分支持聯邦查詢的系統采用方案一,即標準接口的方式,比如Presto等。而阿里云MaxCompute和Hologres采用了方案二,是因為這兩款產品來自于同一個核心研發團隊,因此有能力解決系統不兼容的問題。兩個系統共享基礎的存儲引擎盤古,但保留了各自在存儲能力上的創新,比如索引設計,采用直讀直寫,相對接口方式,性能有10倍以上的提升,支持了MaxCompute向Hologres 百萬級每秒的數據導入場景,實現數據刷新回寫立即生效。

通過以上三個角度的技術創新,實現了實時系統與離線系統的數據打通,同時保留了兩個系統各自優勢的場景能力。

MaxCompute快速查詢能力

除了MaxCompute和Hologres的深度融合的一體化架構之外,MaxCompute作為海量云數倉也在不斷的進行離線加速的努力。如何以低成本的方式對離線海量數倉實現加速,平衡客戶在性能、延遲和成本上的矛盾是我們要解決的問題。

MaxCompute在原有的架構里擴展支持了內置查詢加速引擎,可將離線查詢加速到秒級。 MaxCompute一直是一個面向吞吐優化的離線數倉,即使是一些小查詢的計算任務,也經常表現出排隊時間長,執行慢等問題。此次MaxCompute新發布的內置查詢加速引擎,將針對小數據量的查詢任務進行延遲優化。主要采用資源搶占高優先級、多層次的Cache、內存/網絡shuffle、向量化執行等技術,極大縮減小查詢任務e2e鏈路上的開銷。

查詢加速引擎支持多種計費模式,后付費模式支持自動識別加速,無須用戶關注即可完成加速,這個背后有一套自動作業特征識別算法,可針對不同規模和復雜度的查詢作業進行離線模式和加速模式的選擇,讓簡單查詢跑的快,復雜查詢算的動;預付費模式也即將支持查詢加速引擎獨享資源組的模式,可以實現穩定的離線加速效果。

數據通道新增支持了流式寫入模式,不僅提高了離線數據鏈路的寫入效率和穩定性,也可以和查詢加速引擎配合,實現近實時的數據可見,可以有效縮短離線業務的洞察時間。

JDBC接口新增支持多種BI工具,如觀遠BI、網易有數BI、Superset等。

2 ? 湖倉一體

大數據的發展20年,形成了數據湖和數據倉庫兩種形態。

過去20年是大數據技術快速發展的20年。縱觀整個計算機科學技術領域,對于數據處理的技術主要分為四個階段,數據庫階段、大數據技術探索階段、大數據技術發展階段、大數據普惠階段。數據庫階段主要是在上個世紀70年代至90年代期間,這個階段主要是數據庫加單機的黃金時代。數據庫系統主要是面向操作,面向事務,面向在線業務系統的一個數據系統。其實在90年代左右,數據倉庫概念就已經出現了。數據倉庫面向的是歷史全量數據分析,探查,但因為當時的整體數據量并不大,所以用一些數據庫技術的擴展,能夠支持當時數據倉庫的需求。

2000年左右,隨著互聯網技術的爆發,我們迎來了大數據時代。在這個階段,我們用傳統數據庫的技術是很難滿足海量數據處理的需求。大家應該都知道,Google的三篇論文,分布式存儲、調度、計算,奠定了整個大數據技術的基礎。基本上在同一個時期,2006年出現了Hadoop的系統,阿里巴巴在2009年發展出了飛天系統,包括微軟等頭部公司都發展出了比較優秀的分布式系統。整個這個階段,整個大數據的技術,其實是把數據做起來,數據大起來再說。

2010年左右,進入了大數據的一個蓬勃發展階段,這個階段是之前我們希望大數據技術從能用轉變為好用。這個階段出現了一系列以SQL表達為主的一些引擎,包括Hadoop體系發展出來Hive、Flink、Presto等一系列引擎。這個時候,逐漸形成了以HDFS為統一的存儲,以ORC、Parquet為開放的文件格式,上面有很多開放引擎為主的一個體系,這個體系像我們今天講的數據湖系統。這個階段,Hadoop的本質其實是一個數據湖系統。那數據湖的本質是什么?本質是統一的存儲,能夠存儲原始的數據,能夠支持多種計算范式,這就是數據湖的本質。

同一時期,阿里巴巴在飛天系統的基礎上發布了 MaxCompute ,Google 發布了Big Query,AWS發布了Redshift。這幾個系統可以稱之為大數據時代下的云數據倉庫。那云數據倉庫系統跟上述Hadoop體系有什么區別呢?云數據倉庫并不對外暴露文件系統,暴露的是對數據的描述,用表的方式,用視圖的方式暴露出來。存儲引擎,計算引擎是被屏蔽在系統里面的,所以存儲引擎,計算引擎可以進行深度的優化,然而用戶是沒有辦法感知的。這個階段可以看出來,整個大數據技術已經開始細分,已經初步的形成了湖的形態和倉的形態。

現在我們所處的這個階段,也就是2015年左右,我們進入了大數據普惠階段。這個階段我們有觀察到兩個趨勢。第一個趨勢,大數據技術的發展除了追求規模,性能之外。更多的是看數據安全、數據治理、穩定性、低成本等企業級能力。我們也可以看出來,阿里巴巴 基于MaxCompute ,構建出了非常有阿里特色的數據中臺系統。開源體系,也發展出了Atlas和Ranger,主要圍繞血緣、治理、安全等開源項目。第二個趨勢,隨著AI、IOT、云原生技術的發展,對于非結構化數據處理的需求越來越強烈。使用云上對象存儲作為統一存儲的趨勢越來越明顯。Hadoop的體系也逐漸由HDFS為統一存儲,發展為云上像S3、OSS這樣的云存儲,做為統一存儲的數據湖體系。與此同時,出現了很多數據湖構建,像AWS Lake Formation以及阿里云發布的DLF這樣的產品。數倉方向,也在為了適應這樣一個趨勢,我們也在跟數據湖做很密切的聯動,發展出了外表,通過外表的方式,可以對數據庫里面的數據進行聯邦計算。

縱觀整個20年的發展,隨著大數據技術的演進,其實是發展出來了倉跟湖的兩種體系。

數據湖和數據倉庫的定義和區別

我們可以用下圖這張表來對比一下數據湖跟數據倉庫到底有什么區別。

整體上來說,數據湖是一個寬進寬出,相對協同比較松耦合的系統。數據倉庫是一個嚴進嚴出,比較嚴格緊耦合的系統。數據湖是數據先進來,然后再開始用,所以是屬于事后建模。可以存儲結構化、半結構化、非結構化數據。數據湖是提供了一套標準的開放接口,來支持更多的引擎,像插拔式的插到這個體系里面,所以它是向所有的引擎開放。但是這里要注意了,正是因為它是插拔式的這種方式,計算跟存儲其實是獨立的兩套系統。它們彼此之間,其實是不能夠相互理解的,也沒有辦法做到深度的優化。這樣其實導致,引擎的優化只能做到適度有限優化。數據湖易于啟動,但是隨著數據規模的增長,一系列的治理管理的問題出現,后期是比較難以運維的。因為數據湖不做Schema的強一致的數據檢查,所以數據治理比較低,難管理使用。因為數據湖的數據是先進來再使用,所以它更適合解決未知的問題,比如探查類的分析,科學計算,數據挖掘等計算處理。

數據倉庫在對比維度里基本都是相反的狀態,數據倉庫是一個嚴格的系統,所以需要事前建模,數據經過轉化清洗進到倉里面,存儲類型變為結構化或者半結構化。因為數據倉庫是一個相對封閉的系統,是一個自閉環的系統,所以數據倉庫向特定引擎開放,但是恰恰因為數據倉庫是一個自閉環系統,它的計算引擎、存儲引擎、元數據之間是可以做到非常深度、垂直的優化,可以獲得一個非常好的性能。數據倉庫因為事前建模,數據才能進來,所以難啟動,相對來講啟動成本較高。但一旦數據進入數倉之后,整個數據的高質量,方便做治理,這個時候它的整體成本會降低,甚至達到一個免運維的狀態。數據倉庫的Schema會做強一致的檢查,所以數據質量很高,易于使用。所以數據倉庫的計算負載天然的適合做離線計算,交互式計算以及BI和可視化。

數據湖的靈活性和數據倉庫的成長性

整體上來講,數據湖更偏靈活性,數據倉庫更偏企業級能力。那么這兩種特點對于企業到底意味著什么呢?我們用下面這張圖來表示。

橫軸代表企業的業務規模,縱軸代表企業構建大數據平臺的整體成本。在企業發展的初期,業務規模還較小,數據從產生到消費還處于一個創新探索的階段,數據湖架構就比較適用,不僅易于啟動和上手,也可以針對臨時的數據處理需求,快速的添加或部署新的服務,而且還有很多開源社區的文章參考。而當企業逐漸成熟起來,數據規模變的很龐大,參與的人員和部門不斷增多,對數據治理、精細化的權限控制、以及成本控制等需求就變得越來越關鍵,那么這個時候繼續使用數據湖,數據處理和管理的開銷就會大幅增加。而數據倉庫架構就更適用,它的高數據質量保證、強管控等能力更適合企業的成長和發展。既然數據湖和數據倉庫在企業發展的不同階段均發揮著關鍵的作用,那么有沒有一種技術或者架構可以同時發揮兩者的優勢呢?通過我們對業界的洞察以及阿里云自身的實踐,我們認為:湖和倉正在發生融合,湖倉一體新的數據管理架構可以很好的解決這個問題。

數據倉庫是一個嚴格的系統,所以數據倉庫更適合做事務支持,Schema強一致檢查和演進,天然支持BI,更容易做實時性。對于數據湖,優勢在于數據類型豐富,支持多種計算模式,有開放的文件系統,開放的文件格式,是存儲計算分離的架構。

所以數據倉庫到湖倉一體的演進,需要從本身擁有的特性發展出數據湖的特性。其實是要跟HDFS、OSS這樣的系統做好聯動,做好融合,所以數據倉庫的結構更偏左右結構。對于數據湖到湖倉一體的演進,是需要更多的站在HDFS、OSS基礎上面,來做出強倉的特性。所以數據湖的結構更像一個上下結構。那么,DeltaLake和Hudi其實就是在上下結構當中插了一層,做了一個湖上面的,能夠支持強倉的文件類型。

但不管是數據倉庫到湖倉一體,還是數據湖到湖倉一體,最終大家演進的這個方向都是一致的,都是湖倉一體。湖倉一體的特性是不變的,四種偏倉的特性,四種偏湖的特性。

阿里云湖倉一體架構介紹和最新發布

阿里云在2020年的云棲大會上首次提出湖倉一體全新的架構,并且在持續的進行架構的升級和技術的優化。上圖左側是阿里云湖倉一體整體架構,從下往上看,底層是網絡層,中間層為湖倉引擎層,在往上是DataWorks 湖倉數據開發層,最上面是業務應用層。我們重點來講下引擎層,阿里云湖倉一體是左右結構,左邊是阿里云以MaxCompute為代表的自研云數倉產品,右邊是阿里云 EMR開源數據湖產品,中間是通過元數據的統一,通過開放格式兼容,以達到數據跟任務可以在數據倉庫和數據湖之間的任意流動。在2020年云棲大會上發布的是,對于Hadoop數據湖的支持。近期我們已經支持阿里云DLF和OSS 的數據湖的湖倉一體。

右邊我們highlight了阿里云湖倉一體近期發布的功能點,

第一個是更易用的湖倉開發體驗,DataWorks進行了湖倉一體化的開發和管理的升級,支持客戶分鐘級的自助打通湖和倉,屏蔽了很多底層的配置細節,讓客戶實現快速的業務洞察。

第二個是更廣泛的生態對接,我們可以對接阿里云DLF元數據服務來支持OSS數據湖查詢,而且也支持Delta lake、Hudi等多種開源文件格式。同時我們也將通過foreign server的方式擴展支持多個外部聯邦數據源,如未來2個月將支持RDS整庫的聯邦映射,比之前單表映射效率更高。

第三個是更高的性能,MaxCompute全新支持智能 Cache配合 內置查詢加速引擎,可以使數據湖查詢性能提升 10+ 倍以上。

第四個是更豐富的數據類型,我們即將支持非結構化數據的湖倉管理能力,這個是我們近期正在研發的新功能,之前講的湖倉一體主要是針對湖里的結構化數據,這次的發布將針對湖里的非結構化數據,我們給客戶提供一種非常簡單的操作方式可以將湖里的非結構化數據映射成MaxComput數倉中的一種特殊對象,然后客戶可以像操作表的方式來操作這個對象,這個好處是可以將MaxCompute+DataWorks強數倉的管理能力投射給非結構化數據,來提高非結構化數據的管理甚至治理能力。

阿里云湖倉一體關鍵技術

不管是從上下結構還是左右結構演進過來的湖倉一體,最終都應該是一個簡單易用的系統體系。阿里云湖倉一體有四大關鍵特性,這四大關鍵特性都是在圍繞怎么把數據湖跟數據倉庫做到更加易用。

1.快速接入

主要有兩個層次,一個是網絡層,一個是湖倉一體的開通層。MaxCompute 支持云上云下任何環境下Hadoop體系的打通,因為MaxCompute 自有的多租戶體系,如何跟特定的一個用戶環境打通,技術方面有很大的挑戰,我們研發了PrivateAccess網絡連通技術,來達到這個目標。第二個是DataWorks進行了湖倉一體化的開發和管理的升級,支持客戶分鐘級的自助打通湖和倉,屏蔽了很多底層的配置細節,讓客戶實現快速的業務洞察

2. 統一的數據/元數據

其中關鍵的技術是,有一個Database級別的元數據映射,就是我們可以把數據湖上面的Database映射成MaxCompute 里面的一個Project。數據湖上面的數據不需要移動,就可以讓 MaxCompute 像訪問操作普通Project一樣進行消費。同時做到數據湖和數據倉庫的數據/元數據做到實時同步,如果數據湖內的一張表數據或者Schema發生變化,可以及時的反應在 MaxCompute 數倉這一側。同時 MaxCompute 具備內置的存儲文件格式,我們也在持續的跟進開源生態內的文件格式,廣泛支持開源數據文件格式Delta Lake和Hudi。

3. 提供統一的開發體驗

數據湖和數據倉庫是兩個不同的數據處理系統,有各自的數據庫對象模式設計,去年我們做了很多工作,統一了兩邊的數據庫對象模型,加上MaxCompute的SQL和Spark語言高度兼容生態,作業腳本可以做到兩邊高度兼容,我們在一些客戶case上,可以做到無縫的進行切換。Dataworks具備多引擎的開發和調度能力,我們在此基礎上,提供了湖倉更加統一的開發和管理功能。并且我們即將支持的非結構化數據的湖倉管理能力,進一步的統一了結構化數據和非結構化數據的開發和管理體驗。

4. 自動數倉

這是我們一直重點投入的領域。MaxCompute cache技術配合離線查詢加速引擎對數據湖查詢場景可加速10倍以上,同時我們還能夠根據業務場景動態調整的策略進行智能化Cache,實現數據在湖倉架構里的冷熱分層。我們的Cache本身需要存儲跟計算做到深度耦合,所以數倉做這層Cache,可以做到更加的極致。另外,我們還嘗試在數據湖的數據上進行打標跟識別,是從數據建模的角度來判定,哪些數據更適合放到倉里面,哪些數據更適合放到湖里面。比如一些結構化被反復訪問,比較高頻的表數據,更適合放到數據倉庫內。如果偏非結構化/半結構化低頻的數據,更適合放到數據湖內。最終的目的是為了在性能、成本以及業務效果上達到一個最佳的平衡。

3 ? 分析服務一體

分析服務一體化是阿里云一體化數倉中一個重要的能力創新,英文叫Hybrid Serving and Analytical Processing,HSAP,是阿里云首先提出的一個架構趨勢的理念。分析是通過數據做決策的過程是分析,常見的有多維分析、探索式分析、交互式分析、Ad Hoc分析多種說法,比如Presto、Greenplum、ClickHouse等系統,通常是用在內部經營報表、領導駕駛艙、指標庫平臺領域,擅長處理復雜多變靈活的查詢。服務是數據服務,通常是TP領域的說法,表示支撐在線業務的高性能、高QPS的數據讀寫需求,數據單次請求量不大,但對SLA、可用性、延時都有很高的要求,與傳統TP的核心區別是,對事務的要求弱于對吞吐和性能的要求,可以采用更靈活的一致性協議,比如只需要訪問的單調遞增性,減少了分布式鎖的開銷,常見于HBase、Redis等NoSQL系統,通常服務toC在線推薦、在線營銷、風控等場景。

兩個場景底層數據來源是統一的(業務數據庫+行為日志),也是互相支撐,在線服務生成的數據需要做二次分析,分析的結果數據用于在線服務,通過分析服務一體化架構,可以簡化系統間數據交換,提升開發效率,為上層應用提供統一的數據服務出口,保證了數據口徑的一致性。

實時數倉趨勢:敏捷化、在線化、一體化

什么是一個有效率、有質量、可靠的實時數倉呢?基于過去多年的觀察和技術實踐,我們發現了實時數倉領域的三個趨勢性特征,敏捷化、在線化和一體化。

● ? ? ?在加工領域,加工方法論進行敏捷化升級,包含加工腳本的輕量化實時化,數據分層的弱化,減少層次,減少調度,從而讓數據從生產到消費的鏈路更加緊湊、簡單,從而縮短數據可用的等待時間。

● ? ? ?在服務領域,大數據團隊直接服務公司的核心在線業務,從成本中心轉為盈利中心,保障在線業務的穩定和高效率,通過數據智能提高營銷效率,提高風控準確度等,這讓大數據技術從內部分析工具轉為在線生產系統,需要在系統設計層面支持更高的可靠性、穩定性以及生產級運維能力。

● ? ? ?在架構領域,通過分析服務一體化融合架構,減少數據割裂,形成統一的數據服務層,可以提升開發效率,降低運維成本,保障了數據口徑的一致性和新鮮度。

數據加工敏捷化

傳統上,搭建一個合理的大數據實時數倉系統是個復雜的工作,基本采用Lambda架構,有實時加工層、離線加工層,甚至還有近實時處理層,數據存儲根據不同的訪問特征,分為離線存儲和在線存儲,在線部分還細分為OLAP系統和Key/Value系統,分別提供靈活分析和在線高性能點查。在應用側,以API方式訪問的多是在線系統,以SQL方式訪問的多是分析系統,不同的系統分別對接不同的存儲引擎,采用不同的協議,使用不同的訪問控制策略。

這套架構在業務變化少,數據質量高時是有效的,但現實要復雜得多,業務的變化越來越敏捷,數據的質量更是參差不齊,數據結構日常頻繁調整,數據質量需要隨時修正重刷,這些都是高頻且耗時的工作。但目前數據散落在多個不同的系統中,數據反復在存儲系統間同步,讓業務的敏捷變得不可能,IT同學每天花費大量的時間在數據的排查修正上,響應業務變化的周期以周為單位,甚至更長。

因此,架構上的數據孤島,必然導致數據同步難,資源消耗大,開發成本高,同時招聘人才也更困難。

如果要對復雜的架構進行簡化,實現數據加工的敏捷化,核心是兩點,一個是簡化狀態存儲,減少數據冗余,這樣數據開發、數據修正只在一份數據上;另一個是加工鏈路的輕量化。

在狀態存儲上,Hologres提供了高吞吐低延時的實時寫入與更新的能力,寫入即可分析,不論單條靈活更新還是上億條批量回刷,都可以支持,基于Hologres構建數據的統一狀態層,顯著減少數據搬遷。

在數倉加工上,采用數倉分層的方法論,支持指標的沉淀和復用,加工可以分為公共層加工與應用層加工,公共層加工采用Flink+Hologres Binlog的方式,實現ODS->DWD->DWS的全鏈路事件實時驅動開發,支持數據寫入即加工。在應用層加工上,通過視圖封裝業務邏輯,減少中間表管理,通過Hologres的分布式查詢能力,為業務層提供良好的分析靈活性,將靈活性從數據工程師交還給業務分析師,實現自助分析、探索式分析。

數據服務在線化

實時數倉的一個核心趨勢是數據服務在線化。數據從針對ToB的對內決策場景拓展到支持ToC的在線業務場景,支持實時用戶畫像,實時個性化推薦,實時風控等,通過數據實現在線轉化的提效。這對系統的執行效率和穩定性提出了更高的要求,從稍微邊緣的分析系統進入mission-critical的在線業務系統,需要數據平臺具備高可用,高并發,低延時,低抖動,要支持云原生的彈性能力,支持服務熱升級,熱擴容,還要具備完善的可觀測性和運維能力。

針對這些需求,Hologres在存儲引擎,執行引擎,運維能力做了大量的創新能力,這包括了存儲上,在原有行存、列存基礎上,支持了行列共存結構,讓同一張表,兼具OLAP和KeyValue兩種優勢場景,同時引入了Shard級多副本能力,實現了單實例內部,通過增加副本數,實現QPS線性增長的能力。通過組合行列共存和shard副本能力,可以支撐新的非主鍵點查能力,廣泛用在訂單檢索等場景中。

系統不可避免會有運維升級的需求,Hologres引入了熱升級的能力,在升級過程中服務不中斷,降低系統運維對在線業務的影響;通過元數據物理備份以及數據文件lazy open等能力,優化了故障恢復時的速度,實際業務驗證表明有10倍以上的恢復提速,分鐘級故障自動恢復,將故障的影響做到了最小。

同時針對企業級安全場景,Hologres提供了數據加密存儲,數據脫敏訪問,查詢日志自助分析等能力,支持完整企業級安全能力。

數據架構分析服務一體化

分析服務一體化是簡化數據平臺,統一數據服務出口的重要趨勢,它也是存儲查詢引擎的能力創新,在一個架構內,支撐了兩種典型的數據場景,既可以執行復雜的OLAP分析,也可以滿足在線服務的高QPS、低延時,在業務上,為用戶創建了統一的數據服務出口,實現了業務敏捷響應,支撐數據自主分析,避免了數據孤島,也簡化了運維。這對技術架構的挑戰很高。因此Hologres在存儲上針對不同場景,設計了行存和列存分別支撐服務場景和OLAP場景,在計算上,在數據共享基礎上,需要有效率支撐細粒度隔離。

Hologres具備基于共享存儲的多實例高可用部署模式。在這個方案中,用戶可以創建多個實例,這些實例代表了不同的計算資源,但所有的實例共享同一份數據,其中一個實例作為主實例,支持數據的讀寫操作,其他實例作為子實例,是只讀的,不同實例之間數據內存狀態是毫秒級實時同步,物理存儲上只有一份。在這個方案中,數據是統一的,權限配置也是統一的,但計算負載通過物理資源區分,做到了100%隔離。讀寫請求不會爭搶資源,支持讀寫隔離,也體現了更好的故障隔離能力。一個主實例,目前最多支持掛載4個子實例,如果是同一Region部署,則共享存儲,如果是不同Region部署,則數據需要復制存儲多份,實現容災的能力。這個方案在大促場景下,被阿里巴巴內部多個核心業務反復驗證的方案,可靠性高。通常我們建議一個主實例作為數據寫入和加工,一個子實例用于內部OLAP經營分析,一個子實例用于對外數據服務,可以根據不同場景計算力的需求,分配不同的計算規格。

通過數據加工層的事件驅動加工與視圖敏捷能力,通過數據存儲層的行列多種存儲結構、多實例共享存儲架構,通過數據計算層的細粒度資源隔離,讀寫分離等,分析服務一體化數倉方案為用戶提供了滿足數據靈活分析與在線服務場景的更精簡架構,更有效率的開發方法論和更容易治理與性價比的基礎組件。

4 ? 全鏈路數據治理

在企業發展初期或者企業數倉建設初期,大家更關注的是如何小步快跑,先把數倉整體框架快速搭建起來,快速滿足業務需求,追求更小的成本和更短的交付時間。這個階段,絕大多數企業選擇以面向開發視角的自底向上來構建數倉,也就是基礎的ETL工作。隨著企業或企業數倉逐步發展成熟,傳統企業數字化轉型的推進,以及數據中臺建設漸入深水區,原有的“精益生產”方式來構建數倉已經無法滿足企業數倉規范化、可持續發展的要求,企業數倉建設開始向“敏捷制造”轉變,更強調標準化、流程化、方法論指導以及組織管理,并借助現代化技術和工具來最大限度發揮人的價值。

在這個背景之下,阿里云DataWorks在過去多年間一直致力于全鏈路數據治理產品體系的建設,希望能夠為企業打造出一套集數據開發和數據治理為一體的一站式平臺,并與MaxCompute和Hologres一道形成云原生一體化數倉產品解決方案。在數據治理方面,阿里云DataWorks在數據質量、數據安全、穩定性保障等基礎能力之上,近期著力打造了智能數據建模、數據治理中心產品,并全新升級了開放平臺,讓用戶和伙伴可以實現自定義數據治理插件,從而幫助企業實現個性化的數據治理。

智能數據建模

阿里云DataWorks全新推出了智能數據建模產品,基于Kimball維度建模理論與阿里巴巴數據中臺建設方法論構建,能夠有效幫助企業實現面向業務視角自頂向下進行數倉規劃與規范建模,并與DataWorks成熟的自底向上的數據開發(ETL)能力形成合力,幫助企業建設規范化和可持續發展的數倉。

1.? 數倉規劃

數倉規劃是數倉建設的基礎,阿里云DataWorks智能數據建模的數倉規劃工具可以支持從業務抽象到數倉頂層設計,包含了數倉分層,定義數據域、業務過程、數據維度等。從而有效解決企業數倉結構混亂、權責不清等問題。

2. 數據標準

沒有數據標準,數據模型就無據可依。阿里云DataWorks的數據標準工具提供了數據字典、標準代碼、度量單位、命名詞典等定義,并支持與數據質量規則無縫打通,從而實現快速落標檢查。

3. 維度建模

在運用專業的建模工具之前,絕大多數企業可能會采用基于文檔的形式來設計和記錄數據模型,剛開始時可以有效解決問題,但文檔面臨著難以持續維護更新的問題,久而久之就會與線上系統脫節,而線上系統的數據模型就會逐步失控。阿里巴巴早期的數倉建設同樣面臨著這個問題,并通過實踐證明,光靠組織制度是難以保證數倉模型的強一致性。為此,阿里云DataWorks基于Kimball維度建模理論構建了維度建模工具。提供了可視化正向建模和逆向建模。通過逆向建模可有效將已經存在的數倉中的表逆向為數據模型,并在此之上進行模型迭代,從而幫助企業解決數倉建模冷啟動的難題。同時,為了提升效率,阿里云DataWorks也提供了類SQL的數據建模語言,讓喜歡寫代碼的數據工程師可以快速進行數據建模,也極大的便利了數據模型的導入導出和備份恢復。

4. 數據指標

同樣,在有專業數據指標管理工具之前,大家可能采用手工寫SQL代碼來創建和管理數據指標,這會帶來指標口徑不一,指標難以復用等難題。阿里云DataWorks全新推出的數據指標工具,可提供原子指標和派生指標的定義,從而有效確保業務指標口徑統一,實現指標的高效產出和復用,滿足企業頻繁的看數用數需求。

數據治理中心

阿里云DataWorks在過去多年發展迭代中,沉淀了非常多的數據治理能力,包含數據質量管理、數據權限管理、敏感數據保護、元數據管理、數據血緣、影響分析、基線保障等等,但要把這些工具用好,依然依賴于人的經驗能力。很多企業在數據治理的過程中,也面臨數據治理的成效不易評估,治理團隊業績不好衡量,從而導致數據治理過程往往淪為項目制、運動式,不可持續。為解決這樣的問題,阿里云DataWorks全新推出了數據治理中心產品,通過問題驅動的方式,幫助企業主動發現待治理問題,然后引導用戶優化和解決問題,再提供數據治理成效的評分模型,幫助企業定量評估數據治理的健康度,從而實現有效的、可持續運營的數據治理過程。

阿里云DataWorks數據治理中心產品提供了五個維度的待治理問題的發現能力,包含研發規范、數據質量、數據安全、計算資源和存儲資源。針對這五個維度,產品內置了非常豐富的治理項掃描機制,能夠在事后識別出問題。例如,發現暴力掃描的任務、長時間未訪問的表等,優化之后就可以大大減少計算和存儲資源成本。同時,產品也內置了檢查項攔截機制,在事前和事中提前發現和攔截問題。例如,可以在任務發布階段,通過發布檢查項,攔截不符合事先定義的代碼規范的任務,從而確保企業研發規范的落實。

針對這五個維度,阿里云DataWorks結合在阿里巴巴內部的實踐,設計了一套健康分評估模型,可以有效的定量衡量數據治理的成效。企業可以通過數據治理健康分,快速識別自身短板,然后針對性進行治理,并通過健康分實現評比和考核,從而達到可持續可運營的數據治理,讓數據治理過程有的放矢,不再無從下手。

同時,阿里云DataWorks數據治理中心產品提供不同角色視角的管理視圖。通過個人視圖,讓數據工程師可快速識別自己的任務和數據表的問題。通過管理者視圖,讓項目管理員或團隊管理員可以查看本項目或本團隊的問題,以合理規劃和推進數據治理工作。團隊中的不同成員,各居其職,實現執行與管理的統一。

DataWorks開放平臺

企業的數據治理過程并非標準化的,阿里云DataWorks數據治理中心提供的產品能力必然也無法完全滿足企業數據治理中的所有需求。因此一套完善的數據治理平臺必須要支持插件化機制,允許企業自定義數據治理插件。我們的數據治理中心中用于問題發現的治理項和問題攔截的檢查項,就可視為一個個數據治理插件,并且DataWorks允許用戶自定義數據治理插件。

為了實現自定義數據治理插件,阿里云DataWorks全新升級了開放平臺,在原有OpenAPI基礎之上,新增了開放事件(Open Event)、擴展點(Hook)和擴展程序(Extensions)能力。您可以通過Kafka來訂閱DataWorks平臺中開放的事件消息。DataWorks對核心流程中的事件提供了擴展點機制,即Hook,當事件發生時,系統會自動中斷流程,同時等待您接收到事件消息并對事件消息進行自定義處理,最后通過OpenAPI將您的處理結果回調給DataWorks,DataWorks將根據您的自定義處理結果選擇執行或者阻斷后續流程,從而實現您對DataWorks處理流程的自定義控制。您訂閱事件、處理事件和回調事件處理結果的程序服務稱之為擴展程序,即插件。通過這種方式,您可以實現各式各樣的自定義數據治理插件,例如任務發布檢查插件、計算費用消耗檢查插件等。

當然DataWorks開放平臺適用場景遠不止實現數據治理插件,通過OpenAPI、開放事件、擴展程序機制,可以幫助您快速實現各類自有應用系統對接DataWorks,方便快捷的進行自定義數據流程管控,自定義數據治理和運維操作,在自有應用系統中及時響應DataWorks中的業務狀態變化。歡迎大家發揮想象力,通過DataWorks開放平臺實現各類行業化、場景化的數據應用,以更好的服務于您或您的客戶進行企業數據中臺建設。

阿里云DataWorks自2009年開始伴隨著阿里巴巴從數倉到數據中臺12年的發展之路,產品久經考驗與打磨,沉淀了阿里巴巴大數據建設的最佳實踐。從2015年開始在阿里云上對外提供服務,迄今已經支撐了眾多部委、地方政府、央企、國企、私企和組織等共計數千家客戶的數字化轉型。 通過本次全新發布的智能數據建模、數據治理中心和開放平臺等數據治理相關產品,阿里云DataWorks將協同MaxCompute、Hologres組成云原生一體化數倉解決方案,進一步幫助企業構建現代化數倉,并通過行之有效的數據治理來確保企業數倉能夠規范、安全、穩定、可持續地發展,同時有效控制IT成本,讓企業真正將數據變成企業資產,讓數據為企業創造更大的價值。?

原文鏈接

本文為阿里云原創內容,未經允許不得轉載。?

總結

以上是生活随笔為你收集整理的一文读懂云原生一体化数仓的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。