新一代云數(shù)據(jù)平臺(tái)架構(gòu)演進(jìn)之路
一、大數(shù)據(jù)發(fā)展回顧
數(shù)據(jù)平臺(tái)是指提供數(shù)據(jù)集成、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)管理、數(shù)據(jù)處理、數(shù)據(jù)分析、數(shù)據(jù)服務(wù)等數(shù)據(jù)全生命周期能力的軟件平臺(tái)。數(shù)據(jù)平臺(tái)能夠屏蔽底層大數(shù)據(jù)引擎的底層細(xì)節(jié),降低數(shù)據(jù)建設(shè)和使用門檻,對(duì)外提供統(tǒng)一的服務(wù)平臺(tái),幫助企業(yè)實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)業(yè)務(wù)。下面我們將從不同發(fā)展階段來(lái)介紹大數(shù)據(jù)平臺(tái)的演化和大數(shù)據(jù)基礎(chǔ)設(shè)施的演進(jìn)過(guò)程。
1、大數(shù)據(jù)平臺(tái)的演化
隨著技術(shù)的迭代更新,數(shù)據(jù)平臺(tái)也在與時(shí)俱進(jìn)、不斷進(jìn)化,回顧整個(gè)發(fā)展歷程,大致可以分為三個(gè)階段:
(1)傳統(tǒng)數(shù)據(jù)時(shí)代:上一世紀(jì) 80 年代到 2000 年左右處于這一階段。數(shù)據(jù)平臺(tái)和計(jì)算平臺(tái)由 Oracle、Teradata 等數(shù)據(jù)庫(kù)廠商提供,數(shù)據(jù)應(yīng)用以 BI 報(bào)表的應(yīng)用為主,主要由 SAP、微策略等 BI 公司提供能力。
(2)大數(shù)據(jù)時(shí)代:從 2000 年以后就進(jìn)入大數(shù)據(jù)時(shí)代。該階段以 Hadoop 的誕生和推廣為主,得到了廣泛的發(fā)展和應(yīng)用,各個(gè)廠商也以此為基礎(chǔ)推出了自己公司的數(shù)據(jù)中臺(tái)、數(shù)據(jù)平臺(tái)等產(chǎn)品。在該階段數(shù)據(jù)平臺(tái)還是以企業(yè)內(nèi)部使用場(chǎng)景為主。
(3)云數(shù)據(jù)時(shí)代:隨著云計(jì)算技術(shù)的普及和發(fā)展,大數(shù)據(jù)平臺(tái)也隨之進(jìn)入了云數(shù)據(jù)時(shí)代。國(guó)外誕生了諸如 Redshift、Snowflake、Databricks 等云數(shù)據(jù)平臺(tái)公司,國(guó)內(nèi)以阿里為例,在阿里云推出 Max Compute、PAI、EMR 等云上計(jì)算引擎,以及御膳房電商數(shù)據(jù)開(kāi)放平臺(tái)、DataWorks 云數(shù)據(jù)開(kāi)發(fā)平臺(tái)等產(chǎn)品。
數(shù)新網(wǎng)絡(luò)是在云數(shù)據(jù)時(shí)代背景下孕育而生,公司的宗旨是為客戶提供全棧式的大數(shù)據(jù)平臺(tái)和服務(wù)能力。上圖中最右側(cè)部分是數(shù)新網(wǎng)絡(luò)提供的國(guó)產(chǎn)開(kāi)源可控云數(shù)據(jù)平臺(tái) DataCyber,整體基于開(kāi)源技術(shù)底座,自底向上依次提供了大數(shù)據(jù)計(jì)算存儲(chǔ)引擎、云數(shù)據(jù)平臺(tái)、面向垂直行業(yè)的數(shù)據(jù)中臺(tái)、以及應(yīng)用層的輕量化分析套件、應(yīng)用市場(chǎng)等能力。
2、大數(shù)據(jù)基礎(chǔ)設(shè)施的演進(jìn)
通過(guò)回顧數(shù)據(jù)平臺(tái)的發(fā)展和演化歷程,可以總結(jié)出大數(shù)據(jù)基礎(chǔ)設(shè)施演進(jìn)的四個(gè)技術(shù)階段。
(1)數(shù)據(jù)倉(cāng)庫(kù)階段:以 OLAP、BI 報(bào)表分析為主。
(2)數(shù)據(jù)平臺(tái)階段:大規(guī)模數(shù)據(jù)存儲(chǔ)和計(jì)算,主要為批處理計(jì)算,同時(shí)結(jié)合大量在線服務(wù)的形式。
(3)數(shù)據(jù)中臺(tái)階段:以阿里為代表提出數(shù)據(jù)中臺(tái)的理念,基于數(shù)據(jù)平臺(tái),結(jié)合數(shù)據(jù)標(biāo)準(zhǔn)、數(shù)據(jù)體系、組織變革機(jī)制,構(gòu)成整個(gè)數(shù)據(jù)中臺(tái)能力。
(4)云數(shù)據(jù)平臺(tái)階段(數(shù)據(jù)云):以云數(shù)倉(cāng)為代表,典型特點(diǎn)是支持多租戶的資源彈性伸縮和按量計(jì)費(fèi),由此發(fā)展出現(xiàn)流批一體、湖倉(cāng)一體、數(shù)智一體、云原生、存算分離、云原生、開(kāi)源開(kāi)放等技術(shù)方向。
云數(shù)據(jù)平臺(tái)的定義:也稱為云數(shù)據(jù)倉(cāng)庫(kù),是基于云計(jì)算技術(shù)、支持多租戶的數(shù)據(jù)平臺(tái)技術(shù)和產(chǎn)品,為用戶提供海量數(shù)據(jù)挖掘和分析服務(wù)。我們理解,云數(shù)據(jù)平臺(tái)更多指的是一種現(xiàn)代化的數(shù)據(jù)架構(gòu),其部署模式可以部署在本地?cái)?shù)據(jù)中心、云上或混合云等多種環(huán)境。
二、云數(shù)據(jù)平臺(tái)演進(jìn)趨勢(shì)
在介紹云數(shù)據(jù)平臺(tái)的演進(jìn)趨勢(shì)之前,我們先回顧一下大數(shù)據(jù)平臺(tái)技術(shù)架構(gòu)的演進(jìn)過(guò)程。主要分為四個(gè)階段:共享存儲(chǔ)架構(gòu)、大規(guī)模并行處理、SQL-ON-Hadoop、云原生架構(gòu)。每個(gè)階段都有各自的技術(shù)特點(diǎn),也是適應(yīng)當(dāng)時(shí)環(huán)境而產(chǎn)生的。
(1)第一代架構(gòu):以共享存儲(chǔ)的架構(gòu)為代表(share storage),支持的節(jié)點(diǎn)很少,擴(kuò)展困難,只能支撐報(bào)表分析的場(chǎng)景為主。
(2)第二代架構(gòu):以大規(guī)模并行處理 MPP 架構(gòu)為代表(share nothing),節(jié)點(diǎn)規(guī)模能夠達(dá)到百級(jí),能夠處理的數(shù)據(jù)規(guī)模得到了一定提升,但仍存在限制。
(3)第三代架構(gòu):以 Hadoop、Spark 為代表,基于分布式的存儲(chǔ)、分布式的資源調(diào)度,獲得了更大規(guī)模的集群規(guī)模及數(shù)據(jù)處理規(guī)模。
(4)第四代架構(gòu):云原生架構(gòu),在新的網(wǎng)絡(luò)傳輸速度背景下,基于統(tǒng)一的分布式存儲(chǔ)、數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)湖技術(shù),支持多種類型計(jì)算引擎,從而滿足更多分析場(chǎng)景的需求。
下面將圍繞云原生架構(gòu),介紹云數(shù)據(jù)平臺(tái)的幾個(gè)重點(diǎn)技術(shù)演進(jìn)方向。
1、云數(shù)據(jù)平臺(tái)演進(jìn)趨勢(shì):多元引擎
在云計(jì)算+大數(shù)據(jù)的背景下,無(wú)論是存儲(chǔ)引擎,還是計(jì)算引擎、實(shí)時(shí)分析引擎,都呈現(xiàn)出多元化的趨勢(shì)。
(1)存儲(chǔ)引擎:云上存儲(chǔ)如 S3、OSS 發(fā)展迅速,私有云和公有云長(zhǎng)期并存,因此本地存儲(chǔ)、云上存儲(chǔ)也將長(zhǎng)期并存。
(2)流批計(jì)算引擎:經(jīng)過(guò)多年的迭代演進(jìn),Spark 和 Flink 逐漸成為企業(yè)級(jí)主流計(jì)算框架,目前呈現(xiàn)出擅長(zhǎng)不同場(chǎng)景的態(tài)勢(shì):Spark 擅長(zhǎng)高吞吐量的計(jì)算,以及機(jī)器學(xué)習(xí)、圖計(jì)算等場(chǎng)景;而 Flink 則擅長(zhǎng)實(shí)時(shí)性要求高、流批一體等場(chǎng)景;不同企業(yè)的選擇也不盡相同。
(3)實(shí)時(shí)分析引擎:以 MPP 架構(gòu)為例,近年來(lái)不斷涌現(xiàn)新的 MPP 查詢引擎、MPP 數(shù)據(jù)庫(kù),每個(gè)引擎都有各自擅長(zhǎng)的場(chǎng)景,并處于快速發(fā)展和升級(jí)中,因此,各個(gè)企業(yè)的選擇差異較大。
基于大數(shù)據(jù)引擎多元化的這一趨勢(shì),云數(shù)據(jù)平臺(tái)需要能夠適配支持多種類型的計(jì)算和存儲(chǔ)引擎。
2、云數(shù)據(jù)平臺(tái)演進(jìn)趨勢(shì):流批一體
第二個(gè)演進(jìn)趨勢(shì)是實(shí)時(shí)化以及流批一體。實(shí)時(shí)處理的需求在廣泛的行業(yè)都有普遍訴求,尤其是電商、物聯(lián)網(wǎng)等。
實(shí)時(shí)數(shù)據(jù)架構(gòu)最為經(jīng)典的是 Lambda 架構(gòu)和 Kappa 架構(gòu),以及由這兩種架構(gòu)衍生的一些混合架構(gòu)方案。以目前的技術(shù)發(fā)展來(lái)看,很難做到統(tǒng)一到一種架構(gòu)。因此,我們需要的是根據(jù)不同的場(chǎng)景,選擇最為合適的實(shí)時(shí)數(shù)據(jù)架構(gòu)。
(1)Lambda 架構(gòu)的核心思想是提供流處理和批處理兩種處理鏈路,從而發(fā)揮流處理和批處理的優(yōu)勢(shì),通過(guò)批處理提供全面、準(zhǔn)確的數(shù)據(jù),通過(guò)流處理提供低延遲的數(shù)據(jù),從而達(dá)到平衡延遲、吞吐量和容錯(cuò)性的目的。為了滿足下游的即席查詢,批處理和流處理的結(jié)果會(huì)進(jìn)行合并。它適用于已有完備的離線數(shù)倉(cāng)平臺(tái),實(shí)時(shí)計(jì)算較少的場(chǎng)景。
(2)Kappa 架構(gòu)的核心思想是通過(guò)改進(jìn)流計(jì)算系統(tǒng)來(lái)解決數(shù)據(jù)全量處理的問(wèn)題,使得實(shí)時(shí)計(jì)算和批處理過(guò)程使用同一套代碼。優(yōu)勢(shì)在于統(tǒng)一了流批數(shù)據(jù)邏輯,但受限于處理性能,適用于以實(shí)時(shí)計(jì)算為主,全量數(shù)據(jù)吞吐量可控的場(chǎng)景。
3、云數(shù)據(jù)平臺(tái)演進(jìn)趨勢(shì):湖倉(cāng)一體
第三個(gè)演進(jìn)趨勢(shì)是湖倉(cāng)一體。數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)湖的介紹和對(duì)比,這里不再詳細(xì)展開(kāi),在企業(yè)發(fā)展的不同階段,需要做到兼顧數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)湖的優(yōu)勢(shì),達(dá)到更好的數(shù)據(jù)管理和使用能力。在湖倉(cāng)分體階段,本質(zhì)上數(shù)據(jù)是沒(méi)有打通的,是存在壁壘的。而湖倉(cāng)一體階段的核心是數(shù)據(jù)統(tǒng)一存儲(chǔ),湖倉(cāng)共享同一份數(shù)據(jù)進(jìn)行計(jì)算或者分析。所以湖倉(cāng)一體架構(gòu)可以更加靈活的支持各種分析場(chǎng)景、機(jī)器學(xué)習(xí)、BI 報(bào)表、推薦算法等。
目前主流的湖倉(cāng)一體方案大致分為兩大類:
(1)在數(shù)據(jù)倉(cāng)庫(kù)上支持?jǐn)?shù)據(jù)湖(左右結(jié)構(gòu)):一般是通過(guò)在數(shù)倉(cāng)中建外部表來(lái)實(shí)現(xiàn),解決數(shù)據(jù)倉(cāng)庫(kù)如何更加靈活,以數(shù)倉(cāng)為核心,支持訪問(wèn)數(shù)據(jù)湖。代表廠商有 Snowflake 等。
(2)在數(shù)據(jù)湖中支持?jǐn)?shù)倉(cāng)能力(上下結(jié)構(gòu)):一般是以數(shù)據(jù)湖存儲(chǔ)為基礎(chǔ),在數(shù)據(jù)湖之上構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)的服務(wù)層,強(qiáng)化數(shù)據(jù)治理和數(shù)據(jù)服務(wù)的提供。代表廠商是 Databricks 等。
這兩種方案本身沒(méi)有優(yōu)劣之分,需要企業(yè)結(jié)合自身的技術(shù)棧和數(shù)據(jù)需求,選擇適合企業(yè)現(xiàn)狀和未來(lái)規(guī)劃。
4、云數(shù)據(jù)平臺(tái)演進(jìn)趨勢(shì):云原生、存算分離
第四個(gè)演進(jìn)趨勢(shì)是云原生、存算分離。Hadoop 大數(shù)據(jù)處理框架在長(zhǎng)期的發(fā)展中一直是存算耦合的方式,在當(dāng)下企業(yè)數(shù)據(jù)中心網(wǎng)絡(luò)進(jìn)入萬(wàn)兆、十萬(wàn)兆帶寬,數(shù)據(jù)規(guī)模增長(zhǎng)顯著高于數(shù)據(jù)計(jì)算需求的背景下,導(dǎo)致存算資源很難進(jìn)行合理分配,存算耦合的優(yōu)勢(shì)變得越來(lái)越弱。另外,數(shù)據(jù)湖、云原生、對(duì)象存儲(chǔ)等技術(shù)的發(fā)展,也都推動(dòng)了企業(yè)大數(shù)據(jù)基礎(chǔ)設(shè)施朝著存算分離的架構(gòu)方向演進(jìn)。
目前主流的存算分離架構(gòu)包含以下兩種:
(1)基于 Hadoop 的存算分離架構(gòu):將 Yarn 集群和 HDFS 集群分別部署兩個(gè)集群,從而實(shí)現(xiàn)存儲(chǔ)與資源管理的解耦,這種方式增加了一種額外的運(yùn)維負(fù)擔(dān)、以及本地讀的性能損失,但是根據(jù)相關(guān)企業(yè)的實(shí)踐經(jīng)驗(yàn)來(lái)看,損失可控,對(duì)于關(guān)注大數(shù)據(jù)平臺(tái)成本、同時(shí)以私有云為主的場(chǎng)景下,是可以采用這種方案的。
(2)云原生存算分離架構(gòu):該架構(gòu)優(yōu)勢(shì)在于資源彈性化、數(shù)據(jù)云上化。在該架構(gòu)下,存儲(chǔ)集群、資源調(diào)度、計(jì)算引擎是高度解耦的,底層存儲(chǔ)可以是 HDFS,也可以是 S3 協(xié)議實(shí)現(xiàn)等;資源調(diào)度則完全擁抱 K8S,計(jì)算引擎可以支持多種主流引擎。
5、云數(shù)據(jù)平臺(tái)演進(jìn)趨勢(shì):混合云、數(shù)據(jù)云
第五個(gè)演進(jìn)趨勢(shì)是多云、混合云、數(shù)據(jù)云。對(duì)于企業(yè)來(lái)說(shuō),數(shù)據(jù)中心同時(shí)在公有云、私有云部署越來(lái)越成為常態(tài),在此背景下要求云數(shù)據(jù)平臺(tái)具有同時(shí)管理本地機(jī)房數(shù)據(jù)和云上數(shù)據(jù)的能力,達(dá)到基于一套平臺(tái)對(duì)不同數(shù)據(jù)進(jìn)行管理的效果,并且要求云數(shù)據(jù)平臺(tái)具有跨云數(shù)據(jù)管理的能力。這也必然產(chǎn)生企業(yè)之間、企業(yè)內(nèi)部的跨云數(shù)據(jù)流動(dòng)問(wèn)題,需要有相應(yīng)的機(jī)制進(jìn)行安全保障。例如,隱私計(jì)算技術(shù)用于解決不同企業(yè)之間的數(shù)據(jù)平臺(tái)之間的數(shù)據(jù)安全流動(dòng)。
三、云數(shù)據(jù)平臺(tái)技術(shù)架構(gòu)
以上介紹了云數(shù)據(jù)平臺(tái)的技術(shù)演進(jìn)趨勢(shì),下面將為大家分享現(xiàn)代化云數(shù)據(jù)平臺(tái)的典型技術(shù)架構(gòu)。
1、總體架構(gòu)設(shè)計(jì)
上圖所示是一個(gè)典型的云數(shù)據(jù)平臺(tái)總體技術(shù)架構(gòu),自底向上依次分為幾部分構(gòu)成:
(1)數(shù)據(jù)源:平臺(tái)支持多種類型的結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)。
(2)湖倉(cāng)存儲(chǔ)引擎:提供大數(shù)據(jù)統(tǒng)一存儲(chǔ)能力,支持 HDFS 和對(duì)象存儲(chǔ)兩種分布式存儲(chǔ)系統(tǒng),支持?jǐn)?shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)湖的主流存儲(chǔ)格式,支持針對(duì)數(shù)據(jù)湖場(chǎng)景進(jìn)行查詢加速。
(3)資源調(diào)度框架:支持 Yarn 和 K8S 兩種分布式資源調(diào)度能力,能夠同時(shí)支持存算耦合、存算分離的數(shù)據(jù)架構(gòu),覆蓋傳統(tǒng)大數(shù)據(jù)集群資源調(diào)度、云原生彈性資源調(diào)度的場(chǎng)景。
(4)計(jì)算分析引擎:支持 Hive/Flink/Spark 等流批引擎、TensorFlow 等機(jī)器學(xué)習(xí)引擎、TSDB/Neo4j 等專用計(jì)算引擎;支持 GaussDB/StarRocks 等 MPP 分析引擎、Presto/Impala 等聯(lián)邦查詢引擎;支持離線數(shù)倉(cāng)、實(shí)時(shí)數(shù)倉(cāng)、湖倉(cāng)一體等開(kāi)發(fā)場(chǎng)景。多元異構(gòu)引擎通過(guò) Hive 元數(shù)據(jù)作為元數(shù)據(jù)標(biāo)準(zhǔn)實(shí)現(xiàn)元數(shù)據(jù)打通和統(tǒng)一管理。
(5)云數(shù)據(jù)操作系統(tǒng)內(nèi)核:提供通用的技術(shù)服務(wù)組件,銜接底層大數(shù)據(jù)引擎和上層數(shù)據(jù)開(kāi)發(fā)治理平臺(tái),這里重點(diǎn)展示了幾個(gè)最為核心的組件:統(tǒng)一元數(shù)據(jù)系統(tǒng)、統(tǒng)一引擎接入網(wǎng)關(guān)、統(tǒng)一任務(wù)調(diào)度系統(tǒng)、數(shù)據(jù)集成系統(tǒng)、跨網(wǎng)傳輸服務(wù);其中,跨網(wǎng)傳輸服務(wù)是專門用于解決混合云等多云場(chǎng)景下數(shù)據(jù)高速、安全流通的基礎(chǔ)服務(wù),例如,隱私計(jì)算場(chǎng)景下的密態(tài)數(shù)據(jù)傳輸。
(6)數(shù)據(jù)開(kāi)發(fā)治理平臺(tái):圍繞數(shù)據(jù)的采集、開(kāi)發(fā)、運(yùn)維、管理、服務(wù)、質(zhì)量、安全等全生命周期,提供一站式全鏈路的數(shù)據(jù)開(kāi)發(fā)和服務(wù)平臺(tái)。
(7)平臺(tái)管理:整個(gè)平臺(tái)的支撐系統(tǒng),包含租戶、賬號(hào)、權(quán)限、項(xiàng)目、資源等基礎(chǔ)能力,通常由一個(gè)多租戶技術(shù)組件來(lái)承載實(shí)現(xiàn)。
限于篇幅原因,下面將主要和大家分享統(tǒng)一元數(shù)據(jù)系統(tǒng)、統(tǒng)一調(diào)度系統(tǒng)、數(shù)據(jù)集成系統(tǒng)這幾個(gè)核心技術(shù)組件的架構(gòu)實(shí)現(xiàn)。
2、核心技術(shù)組件—統(tǒng)一元數(shù)據(jù)系統(tǒng)
為了能夠適用于多元異構(gòu)的大數(shù)據(jù)引擎組件,統(tǒng)一元數(shù)據(jù)服務(wù)支持兩種能力:
第一種是與 Hive Metastore 實(shí)現(xiàn)打通,支持 Hive 元數(shù)據(jù),通過(guò) Hive 元數(shù)據(jù)為計(jì)算分析引擎提供元數(shù)據(jù)管理能力。
第二種是擴(kuò)展支持更廣范圍數(shù)據(jù)源的元數(shù)據(jù)管理能力,基于計(jì)算引擎的自定義 Catalog 擴(kuò)展機(jī)制,為 Spark/Flink 等引擎提供元數(shù)據(jù)能力。
(1)元數(shù)據(jù)服務(wù)管理
基于業(yè)界開(kāi)源的元數(shù)據(jù)標(biāo)準(zhǔn)提供元數(shù)據(jù)能力,主要體現(xiàn)在與 Hive Metastore 進(jìn)行交互,實(shí)現(xiàn)對(duì) Flink、Spark 等計(jì)算引擎的管理。通過(guò)元數(shù)據(jù)接口實(shí)現(xiàn)多元異構(gòu)系統(tǒng)的統(tǒng)一元數(shù)據(jù)存儲(chǔ)和管理,實(shí)現(xiàn)外界元數(shù)據(jù)主動(dòng)發(fā)現(xiàn)、多計(jì)算引擎元數(shù)據(jù)互通、跨多源計(jì)算。
(2)元數(shù)據(jù)權(quán)限管理
其核心能力主要包括:元數(shù)據(jù)權(quán)限控制、統(tǒng)一數(shù)據(jù)權(quán)限、角色權(quán)限配置、訪問(wèn)日志審計(jì)等。
(3)元數(shù)據(jù)治理
其核心能力主要包括:湖表管理與優(yōu)化、數(shù)據(jù)生命周期管理、數(shù)據(jù)血緣、存儲(chǔ)分析與優(yōu)化等。
3、核心技術(shù)組件—統(tǒng)一調(diào)度系統(tǒng)
調(diào)度系統(tǒng)主要分為兩部分:Coordinator 集群和 Worker 集群。
(1)Coordinator 集群(調(diào)度器)
整個(gè)調(diào)度系統(tǒng)的大腦,主要職責(zé)包括:作業(yè)調(diào)度、資源調(diào)度、作業(yè)實(shí)例生成以及作業(yè)實(shí)例下發(fā)、對(duì)外提供服務(wù) API 等。技術(shù)架構(gòu)關(guān)注點(diǎn):高穩(wěn)定性、高可用性、高并發(fā)。
(2)Worker 集群(執(zhí)行器)
主要職責(zé)包括:負(fù)責(zé)作業(yè)的實(shí)際執(zhí)行過(guò)程,可以是本地執(zhí)行,也可以是提交到遠(yuǎn)端執(zhí)行;技術(shù)上核心關(guān)注多種類型任務(wù)的適配性、擴(kuò)展性、資源隔離性等方面。
從功能上,需要覆蓋不同類型的作業(yè),多種周期調(diào)度,靈活的依賴關(guān)系,補(bǔ)數(shù)據(jù)、斷點(diǎn)重跑等完備的調(diào)度功能;從性能和可用性上,調(diào)度器和執(zhí)行器需要滿足分布式無(wú)中心的設(shè)計(jì),能夠?qū)崿F(xiàn)水平擴(kuò)展和故障轉(zhuǎn)移。
值得特別說(shuō)明的是,在超大規(guī)模作業(yè)調(diào)度的場(chǎng)景下,需要進(jìn)行技術(shù)架構(gòu)的進(jìn)一步升級(jí),包括通過(guò)按租戶進(jìn)行 Coordinator 集群水平擴(kuò)展、調(diào)度元數(shù)據(jù)分庫(kù)存儲(chǔ)等技術(shù)手段實(shí)現(xiàn)調(diào)度系統(tǒng)的高可用和穩(wěn)定性。
4、核心技術(shù)組件—數(shù)據(jù)集成系統(tǒng)
數(shù)據(jù)集成系統(tǒng)的核心功能是實(shí)現(xiàn)異構(gòu)數(shù)據(jù)源之間數(shù)據(jù)的高速集成,目前主流的數(shù)據(jù)集成采用 Spark、Flink 等分布式計(jì)算引擎實(shí)現(xiàn)數(shù)據(jù)的高效集成。
(1)在功能方面,能夠支持批量同步、流式同步、全量同步、增量同步等場(chǎng)景。
(2)在架構(gòu)方面,由于采用的是分布式計(jì)算引擎,能夠根據(jù)數(shù)據(jù)規(guī)模決定計(jì)算資源,具有較好的水平擴(kuò)展能力。
(3)在網(wǎng)絡(luò)方面,需要能夠針對(duì)云上、混合云的復(fù)雜網(wǎng)絡(luò)場(chǎng)景,解決跨網(wǎng)段的傳輸能力。
5、關(guān)鍵技術(shù)要點(diǎn)總結(jié)
通過(guò)以上介紹,相信大家對(duì)數(shù)新網(wǎng)絡(luò)云數(shù)據(jù)平臺(tái)的技術(shù)架構(gòu)也有了一定的了解,其關(guān)鍵技術(shù)點(diǎn)主要是:異構(gòu)引擎計(jì)算、統(tǒng)一元數(shù)據(jù)系統(tǒng)、統(tǒng)一調(diào)度系統(tǒng)、數(shù)據(jù)集成系統(tǒng)和一體化架構(gòu)。
四、云數(shù)據(jù)平臺(tái)實(shí)踐案例
1、工業(yè)制造數(shù)據(jù)開(kāi)發(fā)治理平臺(tái)
該案例是面向產(chǎn)業(yè)生態(tài)建設(shè)的客戶,其主要以數(shù)據(jù)為驅(qū)動(dòng)力,加強(qiáng)企業(yè)的設(shè)計(jì)研發(fā)、生產(chǎn)制造、市場(chǎng)服務(wù)等,并且對(duì)企業(yè)數(shù)據(jù)資產(chǎn)進(jìn)行全面工具化管理,針對(duì)合同、制造、適航、績(jī)效等七大業(yè)務(wù)場(chǎng)景提供數(shù)據(jù)服務(wù),提升企業(yè)生產(chǎn)、管理、運(yùn)營(yíng)的效率。
數(shù)新網(wǎng)絡(luò)根據(jù)客戶的需求場(chǎng)景,為其量身打造了流批一體架構(gòu)的一站式大數(shù)據(jù)開(kāi)發(fā)平臺(tái)。通過(guò)異構(gòu)數(shù)據(jù)采集、流批一體計(jì)算、數(shù)據(jù)服務(wù)、數(shù)據(jù)應(yīng)用等功能一站式支持客戶的各個(gè)場(chǎng)景,大大提升了客戶的生產(chǎn)效率。
該解決方案是基于數(shù)新網(wǎng)絡(luò)自主研發(fā)的云數(shù)據(jù)平臺(tái)(CyberMeta)來(lái)實(shí)現(xiàn)的,該平臺(tái)是高度集成、一站式的全鏈路平臺(tái),能夠根據(jù)客戶的業(yè)務(wù)場(chǎng)景和數(shù)據(jù)架構(gòu)輸出定制化的解決方案,例如離線數(shù)倉(cāng)、實(shí)時(shí)數(shù)倉(cāng)、流批一體數(shù)倉(cāng)、湖倉(cāng)一體等方案。
五、問(wèn)答環(huán)節(jié)
Q1:怎么實(shí)現(xiàn)無(wú)中心化?
A1:該問(wèn)題是基于調(diào)度系統(tǒng)的問(wèn)答。集群去中心化設(shè)計(jì)的關(guān)鍵點(diǎn)在于如何設(shè)計(jì)合理的數(shù)據(jù)分片策略。以調(diào)度系統(tǒng)為例,調(diào)度系統(tǒng)的元數(shù)據(jù)是存儲(chǔ)在 Database 中的,可以直接基于 Database 做業(yè)務(wù)元數(shù)據(jù)的分片,如不同節(jié)點(diǎn)負(fù)責(zé)拉取和處理不同租戶或項(xiàng)目的作業(yè)調(diào)度,根據(jù)業(yè)務(wù)場(chǎng)景選擇合適的分片邏輯。
Q2:如何實(shí)現(xiàn)跨不同 VPC 的打通?支持哪些云?
A2:跨不同 VPC 打通需要基于云廠商提供的 VPC 網(wǎng)絡(luò)打通方案來(lái)實(shí)現(xiàn),并且云上部署的大數(shù)據(jù)產(chǎn)品支持的網(wǎng)絡(luò)部署模式也不完全相同。因此,需要結(jié)合大數(shù)據(jù)引擎的部署情況以及云廠商對(duì) VPC 網(wǎng)絡(luò)通道方案進(jìn)行合理的技術(shù)方案設(shè)計(jì)與實(shí)現(xiàn)。
Q3:具體介紹下統(tǒng)一元數(shù)據(jù)服務(wù)包含哪些功能?
A3:元數(shù)據(jù)服務(wù)核心提供兩個(gè)能力:一是構(gòu)建統(tǒng)一的元數(shù)據(jù)服務(wù),通過(guò)元數(shù)據(jù)主動(dòng)發(fā)現(xiàn)與采集,實(shí)現(xiàn)元數(shù)據(jù)統(tǒng)一存儲(chǔ),提供統(tǒng)一的元數(shù)據(jù)服務(wù),實(shí)現(xiàn)存儲(chǔ)、計(jì)算和服務(wù)的全鏈路元數(shù)據(jù)管理能力;二是提供元數(shù)據(jù)產(chǎn)品化的能力,包括數(shù)據(jù)資產(chǎn)管理、元數(shù)據(jù)權(quán)限管理、元數(shù)據(jù)治理等能力。
Q4:整體平臺(tái)的云原生程度如何,部署架構(gòu)是怎樣的?
A4:數(shù)新網(wǎng)絡(luò)提供的云數(shù)據(jù)平臺(tái)采用的是兩種技術(shù)路線并行:一是傳統(tǒng)的(非原生的)技術(shù)架構(gòu);二是云原生技術(shù)模型,基于存算分離的架構(gòu)實(shí)現(xiàn)。兩種技術(shù)架構(gòu)主要是適用于不同的客戶:對(duì)于追求穩(wěn)定并且資源不敏感的用戶,我們會(huì)提供非原生的技術(shù)架構(gòu),例如通過(guò) Hadoop+Spark/Flink 實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)、計(jì)算;對(duì)于資源敏感且對(duì)云原生接受度高、業(yè)務(wù)場(chǎng)景關(guān)注資源彈性伸縮的客戶,我們會(huì)選擇云原生的技術(shù)架構(gòu)提供服務(wù)。目前部署上支持私有云部署、公有云部署、混合云部署。
Q5:混合云如何實(shí)現(xiàn)數(shù)據(jù)安全管理?
A5:在同一租戶內(nèi)部或者企業(yè)內(nèi)部場(chǎng)景下,實(shí)現(xiàn)思路主要體現(xiàn)在以下幾個(gè)方面:一是通過(guò) OpenLDAP+Kerberos+Ranger 等安全組件,支持存儲(chǔ)的安全認(rèn)證和管控;二是基于統(tǒng)一的元數(shù)據(jù)服務(wù),管理分布在混合云上的不同數(shù)據(jù)中心的元數(shù)據(jù)信息,并做好數(shù)據(jù)權(quán)限管理;三是敏感數(shù)據(jù)做好數(shù)據(jù)加密、數(shù)據(jù)脫敏等安全加固,完成處理后做好計(jì)算結(jié)果的保護(hù);四是在跨網(wǎng)傳輸時(shí)做好數(shù)據(jù)安全傳輸。
在跨租戶場(chǎng)景下,數(shù)據(jù)安全管理核心需要保障不同租戶的數(shù)據(jù)不被泄露的前提下進(jìn)行安全使用。可以借助于可信數(shù)據(jù)沙箱、隱私計(jì)算等技術(shù),基于底層的大數(shù)據(jù)引擎底座和大數(shù)據(jù)操作系統(tǒng)內(nèi)核服務(wù),構(gòu)建多方之間的聯(lián)合數(shù)據(jù)分析、聯(lián)合建模預(yù)測(cè)等數(shù)據(jù)流通機(jī)制。
Q6:流批一體如何考慮交互式分析和機(jī)器學(xué)習(xí)?
A6:流批一體核心解決的是數(shù)據(jù)處理邏輯的統(tǒng)一性問(wèn)題,目前主要采用的是基于Flink做流批一體實(shí)時(shí)數(shù)倉(cāng)。交互式分析是針對(duì)高并發(fā)、低延時(shí)實(shí)時(shí)分析處理數(shù)據(jù)的場(chǎng)景,例如基于交互式分析引擎+ BI 工具對(duì)數(shù)據(jù)進(jìn)行多維分析和業(yè)務(wù)探索,它與流批一體計(jì)算針對(duì)的是不同的數(shù)據(jù)處理場(chǎng)景。至于流批一體機(jī)器學(xué)習(xí),業(yè)界有阿里開(kāi)源的 Alink 機(jī)器學(xué)習(xí)平臺(tái),感興趣的話可以了解一下。
Q7:目前 Delta Lake 生產(chǎn)上可用嗎?
A7:目前這幾個(gè)數(shù)據(jù)湖引擎都處在快速迭代更新階段,因此不同版本的功能和穩(wěn)定性會(huì)差異比較大。目前數(shù)新網(wǎng)絡(luò)在數(shù)據(jù)湖引擎方向上面向客戶輸出的是 Hudi 和 Iceberg。
Q8:Yarn 和 K8S 可以一起使用嗎?
A8:這兩種資源調(diào)度框架是根據(jù)不同客戶的場(chǎng)景選擇使用哪種資源調(diào)度框架。例如客戶已經(jīng)有 Hadoop 集群,我們就可以構(gòu)建 Spark/Flink on Yarn 的架構(gòu),直接采用 Yarn 資源進(jìn)行調(diào)度。如果客戶數(shù)據(jù)已上云或者已有 K8S 集群,那么我們會(huì)建議基于 K8S 構(gòu)建大數(shù)據(jù)平臺(tái),Spark/Flink 也都可以不同的 K8S 部署模式。當(dāng)然,也有少數(shù)客戶同時(shí)有兩種場(chǎng)景的需求,此時(shí)客戶也是可以同時(shí)使用 Yarn 和 K8S 分別管理不同類型的計(jì)算資源集群。
Q9:Analysis Ready Schemas 具體指的是什么?
A9:這個(gè)概念是指通過(guò)主動(dòng)元數(shù)據(jù)收集等方式,完成數(shù)據(jù)集 Dataset 的 Schema 收集及結(jié)構(gòu)化、歸一化,數(shù)據(jù)集成系統(tǒng)能夠基于收集的 Schema 信息,方便地定義和配置數(shù)據(jù)同步任務(wù),完成數(shù)據(jù)的提取、傳輸和加載。
Q10:數(shù)據(jù)開(kāi)發(fā)是如何使用元數(shù)據(jù)服務(wù)進(jìn)行開(kāi)發(fā)的?
A10:元數(shù)據(jù)服務(wù)的使用場(chǎng)景很廣泛,在數(shù)據(jù)開(kāi)發(fā)場(chǎng)景中,例如 Web IDE 可以基于元數(shù)據(jù)查看庫(kù)表信息、UDF 信息、實(shí)現(xiàn)表名稱、表字段自動(dòng)補(bǔ)全等功能。在數(shù)據(jù)管理場(chǎng)景中,可以基于元數(shù)據(jù)提供數(shù)據(jù)資產(chǎn)目錄,例如支持?jǐn)?shù)據(jù)地圖、數(shù)據(jù)治理等功能的實(shí)現(xiàn)。尤其在數(shù)據(jù)治理場(chǎng)景下,還可以實(shí)現(xiàn)智能化的能力,例如通過(guò)元數(shù)據(jù)系統(tǒng)探查到上游表發(fā)生了變化,可以自動(dòng)對(duì)下游任務(wù)進(jìn)行告警,甚至是自動(dòng)化處理等。
Q11:大數(shù)據(jù)存儲(chǔ)組件也云化了嗎?
A11:以數(shù)新網(wǎng)絡(luò)的產(chǎn)品為例,不同的客戶采用不同的存儲(chǔ)方案,有些客戶是云化的,有些客戶是本地的。云化的場(chǎng)景主要是在 S3 或者 OSS 中存儲(chǔ),本地的以 HDFS 存儲(chǔ)為主。在混合云的場(chǎng)景下,數(shù)據(jù)存儲(chǔ)還可能是同時(shí)包含云化和本地的。
Q12:如何理解湖倉(cāng)共享同一份數(shù)據(jù)?
A12:具體可以分為兩種場(chǎng)景:一是基于數(shù)據(jù)湖建倉(cāng),數(shù)據(jù)通過(guò)流式采集的方式匯集到數(shù)據(jù)湖中,基于湖數(shù)據(jù)進(jìn)行分析、計(jì)算等。但隨著數(shù)據(jù)體量的增大和企業(yè)不同階段的發(fā)展,數(shù)據(jù)管理、標(biāo)準(zhǔn)化、規(guī)范化的訴求也不斷增加,此時(shí)結(jié)合湖倉(cāng)一體的優(yōu)勢(shì),在數(shù)據(jù)湖的基礎(chǔ)上構(gòu)建數(shù)據(jù)倉(cāng)庫(kù),以更好的實(shí)現(xiàn)數(shù)據(jù)的管理和處理;二是在完備數(shù)倉(cāng)的基礎(chǔ)上打通數(shù)據(jù)湖的能力,該場(chǎng)景不同于湖上建倉(cāng)的上下分層的結(jié)構(gòu),而是左右分層的結(jié)構(gòu),通過(guò)外表等機(jī)制支持湖和倉(cāng)的打通,該場(chǎng)景在嚴(yán)格意義上講并沒(méi)有完全做到數(shù)據(jù)集中化存儲(chǔ)一份。
Q13:新一代云數(shù)據(jù)平臺(tái)等同于云原生數(shù)據(jù)湖嗎?
A13:不完全等同。新一代云數(shù)據(jù)平臺(tái)體現(xiàn)在很多方面,云原生只是其中一個(gè)方面,還包括多云、混合云、多元異構(gòu)引擎、流批一體、湖倉(cāng)一體等方面。云原生數(shù)據(jù)湖只是云數(shù)據(jù)平臺(tái)的一種技術(shù)架構(gòu)和實(shí)現(xiàn)路徑。
Q14:Spark/Flink 上云是用的什么技術(shù)?
A14:Spark/Flink 支持多種 K8S 部署模式,包括 Standalone、Native、Operator 等部署模式,可以重點(diǎn)關(guān)注 Native 和 Operator 模式,能夠方便的支持動(dòng)態(tài)的資源伸縮等能力。
Q15:介紹一下智能調(diào)度方案?
A15:調(diào)度智能化是一個(gè)重要方向。舉兩個(gè)例子,一是基于任務(wù)運(yùn)行的歷史信息,實(shí)現(xiàn)任務(wù)調(diào)度策略、任務(wù)計(jì)算資源的優(yōu)化,以保證整個(gè)平臺(tái)的任務(wù)調(diào)度穩(wěn)定性和高性能。二是基于統(tǒng)一元數(shù)據(jù)服務(wù),實(shí)現(xiàn)調(diào)度系統(tǒng)的智能化告警,甚至是任務(wù)的自動(dòng)化問(wèn)題修復(fù),以此提升數(shù)據(jù)平臺(tái)的智能化和自動(dòng)化運(yùn)維能力。
Q16:StarRocks 和 Doris 是同一個(gè)產(chǎn)品嗎?
A?16:它們都屬于 MPP 數(shù)據(jù)庫(kù),二者從功能和定位上有很大相似之處,但并不是同一個(gè)產(chǎn)品。Doris 是在 Apache 基金會(huì)維護(hù),基于 Apache License 開(kāi)源的 MPP 數(shù)據(jù)庫(kù)。StarRocks 是基于 Elastic License 開(kāi)源的 MPP 數(shù)據(jù)庫(kù),與國(guó)內(nèi)幾個(gè)云廠商都有合作。目前數(shù)新網(wǎng)絡(luò)和 StarRocks 公司已經(jīng)簽署戰(zhàn)略合作協(xié)議,雙方在產(chǎn)品集成、性能壓測(cè)及優(yōu)化等方向均有合作。
今天的分享就到這里,謝謝大家。?