夜夜躁很很躁日日躁麻豆,精品人妻无码,制服丝袜国产精品,成人免费看www网址入口

網(wǎng)易首頁 > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

逆勢(shì)降本:云上數(shù)據(jù)平臺(tái)年復(fù)削減30%的治理實(shí)踐

0
分享至

作者 | 吳建陽

引 言

隨著業(yè)務(wù)快速發(fā)展,大數(shù)據(jù)平臺(tái)所支撐的業(yè)務(wù)矩陣愈發(fā)龐大且繁雜多樣,數(shù)據(jù)業(yè)務(wù)在高速發(fā)展建設(shè)階段,更關(guān)注的是數(shù)據(jù)交付效率、穩(wěn)定性、平臺(tái)易用性等方面,與此同時(shí),數(shù)據(jù)規(guī)模爆炸式增長和計(jì)算需求的不斷攀升,使大數(shù)據(jù)平臺(tái)成本呈現(xiàn)快速上揚(yáng)態(tài)勢(shì),如何有效控制和優(yōu)化這些成本,成為數(shù)據(jù)團(tuán)隊(duì)面臨的巨大挑戰(zhàn)。

樸樸數(shù)據(jù)平臺(tái)建設(shè)歷經(jīng)多個(gè)發(fā)展階段:從早期的報(bào)表取數(shù) -> 數(shù)倉體系建設(shè) -> 以指標(biāo)平臺(tái)為數(shù)據(jù)建設(shè)核心 -> DATA+AI,而每個(gè)階段的發(fā)展變更均會(huì)對(duì)成本造成巨大沖擊。我司開展較大規(guī)模成本治理迄今已三度春秋,個(gè)中艱辛難以言表,整體可概括為“降本增效”三部曲:成本發(fā)現(xiàn)與分析、成本優(yōu)化與控制、體系化治理構(gòu)建。本文是對(duì)過往成本治理過程做階段性總結(jié),意在復(fù)盤亦為分享,希望對(duì)大家如何開展云上大數(shù)據(jù)平臺(tái)成本治理有所幫助。

成本發(fā)現(xiàn)與分析

2022 年某個(gè)時(shí)間節(jié)點(diǎn),云廠商 TAM 團(tuán)隊(duì)反饋我司月成本急劇上漲,在此之前,數(shù)據(jù)團(tuán)隊(duì)核心關(guān)注點(diǎn)在數(shù)據(jù)中臺(tái)建設(shè),由于云產(chǎn)品服務(wù)計(jì)費(fèi)規(guī)則較為精細(xì)復(fù)雜,需要投入大量時(shí)間學(xué)習(xí)和對(duì)接才能掌握有效的成本分析方法。初期的成本跟進(jìn)依賴于 TAM 團(tuán)隊(duì)月會(huì)反饋,缺少主動(dòng)洞察手段,面對(duì)成本急劇上漲的情況,著手進(jìn)行第一階段成本分析與治理工作。

1.1 分析 & 治理初試

初期,在 SA 和 TAM 團(tuán)隊(duì)的幫助下對(duì)大數(shù)據(jù)成本進(jìn)行分析,主要集中在:存儲(chǔ)、計(jì)算、網(wǎng)絡(luò)流量和 EMR 托管四大方面,根據(jù)服務(wù)類別的成本占比分析結(jié)果,確立下一步優(yōu)化方向和優(yōu)先級(jí)。

計(jì)算層優(yōu)化

EMR 作為大數(shù)據(jù)平臺(tái)基礎(chǔ)架構(gòu)底座,可針對(duì)不同實(shí)例組配置靈活調(diào)度組合各類計(jì)算資源,結(jié)合其彈性伸縮能力滿足不同時(shí)段業(yè)務(wù)計(jì)算所需,關(guān)于 EMR 的使用可參考筆者另一篇文章《EMR 實(shí)戰(zhàn)心得淺談》。EMR 的成本組成可拆分為兩大部分:

  • EMR 集群管理費(fèi)

    • 經(jīng)由 EMR 啟動(dòng)計(jì)算實(shí)例時(shí)產(chǎn)生的管理費(fèi)用,按小時(shí)、實(shí)例規(guī)格大小階梯式收取

  • EMR 計(jì)算實(shí)例 (我司主要使用 EMR ON EC2 模式)

    • EC2 計(jì)算實(shí)例本身費(fèi)用 (On Demand、Spot、Savings Plan 三種計(jì)費(fèi)模式)

    • EC2 計(jì)算實(shí)例產(chǎn)生的跨可用區(qū)流量費(fèi)

    • EC2 計(jì)算實(shí)例所掛載的 EBS 卷費(fèi)用 (系統(tǒng)盤、數(shù)據(jù)盤)

從已產(chǎn)生的 EMR 成本清單數(shù)據(jù)細(xì)化分析,進(jìn)而得出治理方向和措施:

  • 削減 EMR 托管費(fèi)用

    • 全面下線小規(guī)格機(jī)型使用 (低于 8x),最大化減少托管費(fèi)用

    • 結(jié)合業(yè)務(wù)計(jì)算峰谷,配置適當(dāng)?shù)臄U(kuò)縮容策略

  • 降低 EC2 計(jì)算實(shí)例單價(jià)

    • 在不降低業(yè)務(wù)計(jì)算性能前提下,使用單價(jià)相對(duì)便宜的機(jī)型 (如 INTEL -> AMD)

    • 降低 On Demand 計(jì)費(fèi)類型占比,提升 RI & Savings Plan 合約購買比例

    • 有溢出的部分,盡可能多使用 Spot 競(jìng)價(jià)機(jī)型

  • 調(diào)整集群內(nèi)計(jì)算實(shí)例掛載 EBS 卷

    • 啟用 Core 分區(qū)獨(dú)占模式,將存儲(chǔ)與計(jì)算節(jié)點(diǎn)徹底分離

    • 實(shí)踐測(cè)算,在存算分離離線 EMR 集群中,EBS 的配置可結(jié)合計(jì)算節(jié)點(diǎn)核心數(shù)規(guī)格線性配比 (如 1C:10G),實(shí)時(shí)計(jì)算集群中因狀態(tài)存儲(chǔ),比例可酌情往大調(diào)整

    • 自動(dòng)化批量調(diào)整 GP2->GP3

存儲(chǔ)層優(yōu)化

在云上,前期主要使用 EBS 卷和 S3 兩類存儲(chǔ)服務(wù)。前者由于單價(jià)較低,使用者容易忽視其成本影響,當(dāng)集群擴(kuò)大一定規(guī)模時(shí),特別是早期低規(guī)格實(shí)例數(shù)量較多時(shí),EBS 卷的使用容量會(huì)隨之激增,導(dǎo)致成本上漲,EBS 卷的治理方向可參考上文所列,本節(jié)不再贅述。

由于湖倉的建設(shè)和推廣使用,S3 存儲(chǔ)用量每年均大幅度上漲,導(dǎo)致存儲(chǔ)費(fèi)用極其可觀。早期對(duì) S3 的使用缺乏認(rèn)知,結(jié)合業(yè)務(wù)讀寫的特性 (缺少熱度觀測(cè)和存在歷史數(shù)據(jù)回刷),數(shù)據(jù)均存放在標(biāo)準(zhǔn)層 (Standard Storage),避免請(qǐng)求費(fèi)大于存儲(chǔ)費(fèi)的情況。因此,首次針對(duì) S3 存儲(chǔ)開展治理行動(dòng),集中在:

  • 清理無效數(shù)據(jù)和調(diào)整數(shù)據(jù)保留周期

  • 關(guān)閉數(shù)據(jù)桶的版本控制

  • 未完成分段上傳清理

治理完成后,共計(jì)清理數(shù)據(jù)容量 PB+,以標(biāo)準(zhǔn)層費(fèi)率計(jì)算月削減成本十萬 +。

流量層優(yōu)化

云服務(wù) (S3、EC2 等) 使用過程若存在跨可用區(qū)數(shù)據(jù)傳輸是需要額外收取費(fèi)用,具體收費(fèi)條目可查看官網(wǎng)說明。為保障計(jì)算集群可用性和穩(wěn)定性,我司在 A/B 區(qū)分別構(gòu)建了多個(gè)業(yè)務(wù) EMR 集群,直接加劇了此類費(fèi)用的產(chǎn)生,由于流量費(fèi)用夾雜在 EC2 的費(fèi)用中,難以被直接觀測(cè)到,直至成本出現(xiàn)較大異常增量時(shí)才被分析識(shí)別出來。

在 SA 和 TAM 的協(xié)助下,分析各 VPC 間數(shù)據(jù)流向及所產(chǎn)生的成本條目,最終完整地呈現(xiàn)流量成本構(gòu)成:

  • VPC Peering:主要成本產(chǎn)生自離線 Bigdata 和在線 PROD 的 VPC 之間數(shù)據(jù)往返傳輸流量

  • DTAZ-Bigdata VPC:bigdata VPC 內(nèi)部 DTAZ 流量,業(yè)務(wù)流向?yàn)?AZ1 的 kafka 到 AZ2 的 EMR,再返回到 AZ1 的分布式數(shù)據(jù)庫

  • NAT GW Bigdata:主要為 EMR 通過 NAT GW 拉取 S3 數(shù)據(jù)

  • S3 DTO 與 EC2 VPN DTO:S3 公網(wǎng)拉取數(shù)據(jù)與建立專線通道從 bigdata VPC 拉數(shù)據(jù)

以此依據(jù)可得出優(yōu)化措施為:

  • 分析跨可用區(qū)流量熱點(diǎn),調(diào)整 EMR 集群計(jì)算任務(wù)分布架構(gòu),盡量往數(shù)據(jù)源可用區(qū)靠近

  • 調(diào)整 EMR 集群訪問 S3 endpoint 方式

1.2 構(gòu)建更周全的分析方法

CUR+ 自定義標(biāo)簽

首次治理即取得明顯成效后,深刻認(rèn)知到洞察成本花費(fèi)在哪里的重要性,而要實(shí)現(xiàn)洞察的前提是要熟悉并掌握 CUR(Cost and Usage Report) 清單分析 (詳見鏈接:CUR 連接)。CUR 清單里提供較為精細(xì)的費(fèi)用明細(xì)數(shù)據(jù),結(jié)合各種計(jì)費(fèi)規(guī)則基本可還原出月成本構(gòu)成,計(jì)費(fèi)規(guī)則可從 TAM 團(tuán)隊(duì)對(duì)接獲取。

除 CUR 基本數(shù)據(jù)詞典定義外,我司設(shè)計(jì)了一套標(biāo)簽體系,進(jìn)一步區(qū)分清單中每條費(fèi)用對(duì)應(yīng)使用方歸屬,標(biāo)簽涵蓋:

  • 系統(tǒng)標(biāo)簽:數(shù)據(jù)中心 region、環(huán)境 env、應(yīng)用 appId、歸屬域 domain

  • 應(yīng)用擴(kuò)展標(biāo)簽:平臺(tái)類型 system、實(shí)例類型 instance-type ......

  • 特定領(lǐng)域標(biāo)簽:emr 集群名 emr-cluster、emr 實(shí)例角色 emr-role、kafka 集群名 kafka-cluster ......

為便于統(tǒng)一分析,我們對(duì) CUR 清單數(shù)據(jù)建模后使用 Spark 匯入湖倉,再整合對(duì)接到自研 BI 平臺(tái),便于持續(xù)監(jiān)控和上卷下鉆分析。也可采用云原生服務(wù)組合方式實(shí)現(xiàn),如 Glue+Lambda+Athena+QuickSight。下圖為 S3 成本下鉆分析的一個(gè)示例,通過細(xì)分操作類型可進(jìn)一步確定成本分布是否合理。


基于這份每日成本清單明細(xì),在后續(xù)的一項(xiàng)治理行動(dòng) (針對(duì)桶級(jí)別全局開啟智能分層上線) 提供了很重要的數(shù)據(jù)依據(jù),而智能分層的全面上線在存儲(chǔ)層帶來年節(jié)約上百萬的治理效果。

inventory 和 access log 組合

S3 本身提供了一些監(jiān)控工具,其中筆者認(rèn)為最為重要的有兩個(gè):inventory 和 access log。

inventory

inventory 是一個(gè)元數(shù)據(jù)信息統(tǒng)計(jì)鏡像功能,用戶自定義前綴匹配和指定時(shí)間點(diǎn)后,可導(dǎo)出一份對(duì)象元數(shù)據(jù)信息到指定數(shù)據(jù)桶 (詳見: s3 inventory),用戶可據(jù)此開展治理行動(dòng)項(xiàng) (抓大放小),這也是前期我們針對(duì) S3 治理的一個(gè)重要數(shù)據(jù)依據(jù)來源。inventory 導(dǎo)出后由 manifest 和 symlink 分割不同時(shí)間周期的元數(shù)據(jù)情況,對(duì)于 ORC 和 Parquet 格式的清單文件,不支持使用 Apache Hive 和 Spark 讀取 symlink.txt 文件,因此建議 symlink 設(shè)置為 CSV 格式導(dǎo)出,便于進(jìn)一步數(shù)據(jù)處理。

在 inventory 文件中存儲(chǔ)每個(gè)對(duì)象的信息 (絕對(duì)路徑,如 s3://bucket1/xxxx/xxxx/file1.parquet),而在實(shí)踐過程中,此類明細(xì)數(shù)據(jù)對(duì)于治理開展幫助不大,因?yàn)橛脩粜枰氖敲恳患?jí)路徑的情況。針對(duì)此問題,我們使用 spark 對(duì) inventory 文件中每個(gè)對(duì)象信息按路徑拍平,并逐級(jí)處理兩類操作:

  • 聚合出每級(jí)路徑大小、文件數(shù)

  • 遞歸將底層文件最后更新時(shí)間反射到上層每一級(jí)路徑


path                      size      files_cnt      last_modified_date
s3://bucket1/xxx          20g          2000        2025-08-28 15:28:30
s3://bucket1/xxx/xxxx     10g          1000        2025-08-28 15:28:30

經(jīng)此處理后的 inventory 數(shù)據(jù),可迅速確定各級(jí)路徑 (對(duì)象存儲(chǔ)中無路徑這一概念,此為虛擬概念) 的大小和最后更新時(shí)間,這為治理過程判斷極大地提高了效率和準(zhǔn)確性。

access log

access log 詳細(xì)記錄了上層各類應(yīng)用對(duì) S3 存儲(chǔ)桶提交的各種請(qǐng)求操作,因此在安全審計(jì)和訪問查詢方面很有用,開啟方式詳見:s3 access log。以我們的數(shù)據(jù)規(guī)模對(duì)應(yīng)每日產(chǎn)生的 access log 量達(dá)數(shù)十億條,分析 access log 的難度和成本無疑是巨大的。到了治理第二階段,再依靠于人工確認(rèn)數(shù)據(jù)訪問情況顯然不現(xiàn)實(shí),此時(shí)迫切需要真實(shí)的數(shù)據(jù)文件訪問熱度信息。我們使用 Spark 將每日產(chǎn)生的 access log 做 ETL 處理后接入湖倉 ODS 層,再將其與 inventory 結(jié)合,最終還原出每一級(jí)路徑的訪問和元數(shù)據(jù)信息:

bucket:桶名
path:路徑信息
size:路徑大小
files_count:路徑文件數(shù)
request_count:請(qǐng)求總次數(shù)
operation:操作類型
operation_count:操作次數(shù)
operation_datetime:最后請(qǐng)求時(shí)間
last_modified_date:最后修改時(shí)間
cur_time:日期分區(qū)

s3 inventory 是隔日類鏡像式導(dǎo)出,客觀上會(huì)存在元數(shù)據(jù)空洞,例:在兩次導(dǎo)出間隔期間若存在某些對(duì)象文件創(chuàng)建和刪除,所操作的對(duì)象文件不會(huì)被 inventory 記錄,但會(huì)存在于 access log 中。針對(duì)此問題,我們的做法是將 inventory 和 access log 以 bucket+path 為關(guān)聯(lián)鍵,按生成時(shí)間點(diǎn)切割后做 Full Join,如此可將數(shù)據(jù)訪問熱度最大化進(jìn)行還原,過程實(shí)現(xiàn)參考下圖:

inventory 和 access log 組合為后續(xù)開展的一系列 s3 治理專項(xiàng)提供極為重要的數(shù)據(jù)依據(jù),在存儲(chǔ)層成本節(jié)約做出巨大貢獻(xiàn)。

1.3 階段一治理小結(jié)

第一階段治理通常具有最高 ROI,主要得益于前期粗放式資源使用模式下存在的優(yōu)化空間。歷經(jīng)一個(gè)季度分批推進(jìn),以成本占比作為優(yōu)化順序,完成上述三個(gè)層面優(yōu)化專項(xiàng)后,實(shí)現(xiàn)不影響業(yè)務(wù)增長前提下月成本同比削減 32% 的治理成果,也為第二階段更深層次的治理奠定了一些分析基礎(chǔ)。

成本優(yōu)化與控制

完成第一階段的成本分析方法構(gòu)建與治理后,雖然取得了顯著的成本節(jié)約效果,但隨著業(yè)務(wù)持續(xù)增長和數(shù)據(jù)規(guī)模不斷擴(kuò)大,僅依靠一次性治理行動(dòng)難以實(shí)現(xiàn)長期的成本控制目標(biāo)。因此,需要從更深層次的平臺(tái)能力建設(shè)和技術(shù)架構(gòu)改造入手,構(gòu)建可持續(xù)的成本優(yōu)化措施。

第二階段圍繞兩個(gè)維度展開:一是平臺(tái)能力建設(shè),從數(shù)據(jù)生命周期管理、任務(wù)性能診斷、計(jì)算效率提升等方面提升平臺(tái)的內(nèi)在效率;二是技術(shù)改造專項(xiàng),從計(jì)算引擎升級(jí)、架構(gòu)遷移、資源使用優(yōu)化等方面實(shí)現(xiàn)技術(shù)棧的整體成本降低。通過這種"內(nèi)外兼修"的優(yōu)化策略,建立長效的成本管控機(jī)制,確保在業(yè)務(wù)快速發(fā)展的同時(shí),成本增長保持在可控范圍內(nèi)。

2.1 平臺(tái)能力建設(shè)

數(shù)據(jù)生命周期管理

數(shù)據(jù)平臺(tái)建設(shè)過程中,為滿足業(yè)務(wù)使用所需引入多種數(shù)據(jù)源,主要有 Hive、Clickhouse、Elasticsearch、Cassandra。隨著數(shù)據(jù)業(yè)務(wù)擴(kuò)增和時(shí)間推移,大量歷史數(shù)據(jù)長期占用存儲(chǔ)資源,但實(shí)際訪問頻次不一,造成資源浪費(fèi)。若以人工方式實(shí)現(xiàn)數(shù)據(jù)清理,面臨著效率低下和難以規(guī)?;芾淼膯栴},因此需要一個(gè)自動(dòng)化數(shù)據(jù)生命周期管理工具。

該工具設(shè)計(jì)之初即涵蓋數(shù)據(jù)平臺(tái)常用數(shù)據(jù)源對(duì)象,數(shù)據(jù)源對(duì)象從資產(chǎn)元數(shù)據(jù) API 接口獲取,自動(dòng)按域過濾,從源頭上規(guī)避用戶配置規(guī)則執(zhí)行時(shí)誤操作其他域同名對(duì)象。數(shù)據(jù)生命周期是基于預(yù)定義規(guī)則自動(dòng)管理數(shù)據(jù)平臺(tái)存量數(shù)據(jù)的系統(tǒng)化解決方案,支持對(duì)數(shù)據(jù)集按不同執(zhí)行窗口實(shí)現(xiàn)自動(dòng)清理,保障數(shù)據(jù)留存在合理區(qū)間。同時(shí)具備執(zhí)行監(jiān)控能力,支持清理容量大小、記錄數(shù)等量化指標(biāo),便于事后治理效果評(píng)估。運(yùn)營至今,每日清理的數(shù)據(jù)容量可觀,實(shí)現(xiàn)清理量抵消增量的目標(biāo)。

此外,還開發(fā)了任務(wù)生命周期管理,用于數(shù)據(jù)開發(fā)驗(yàn)證階段的任務(wù)運(yùn)行管控,避免開發(fā)驗(yàn)證類任務(wù)長期運(yùn)行造成計(jì)算資源浪費(fèi)。

Spark 任務(wù)診斷治理

進(jìn)入主題之前,先提個(gè)問題:為什么需要診斷治理?

數(shù)據(jù)開發(fā)者經(jīng)常面臨的問題有:

  • 資源使用不平衡:比較常見的情況是集群中內(nèi)存被申請(qǐng)滿了,但是 CPU 還有剩余,亦或 CPU 用光但內(nèi)存還有剩余

  • 運(yùn)行時(shí)間不穩(wěn)定:同個(gè)作業(yè)多次運(yùn)行時(shí)間波動(dòng)幅度大

  • 資源濫用:每個(gè)業(yè)務(wù)方都希望自己的作業(yè)能盡可能快的完成,導(dǎo)致資源被濫用,帶來一些不必要的資源緊張

從這些問題不難得出任務(wù)診斷治理的必要性。

診斷治理平臺(tái)的實(shí)現(xiàn)分為 4 個(gè)模塊:數(shù)據(jù)采集 -> 診斷分析 -> 生成報(bào)告 -> 治理優(yōu)化。

數(shù)據(jù)采集

利用原生 spark listener bus 機(jī)制,任務(wù)指標(biāo)數(shù)據(jù)采集后推送到 kafka,如下圖所示:

診斷分析

使用 Flink 對(duì) kafka 中指標(biāo)數(shù)據(jù)做診斷分析處理,支持診斷類型:

  • 資源成本類:任務(wù) CPU 利用率、任務(wù)內(nèi)存利用率、任務(wù)花費(fèi)

  • 耗時(shí)類:Application 運(yùn)行時(shí)長、Job/Stage 階段運(yùn)行時(shí)長

  • 失敗類:Application/Job/Stage/Task 粒度失敗檢測(cè)

  • 空跑類:任務(wù) submit 之后未提交 Job 運(yùn)行

  • 效率類:數(shù)據(jù)傾斜、Task 長拽尾 or 讀寫卡頓、大表掃描、GC 異常...

診斷類型較多,以任務(wù) CPU 和內(nèi)存利用率的診斷為例簡(jiǎn)述實(shí)現(xiàn)過程

  • 任務(wù) CPU 利用


  • 任務(wù)內(nèi)存利用率 (以堆內(nèi)內(nèi)存為例)

  • 實(shí)現(xiàn)過程類似 CPU 利用率,不同之處是采用 peakMemory 作為計(jì)算指標(biāo),若能采集 executor GC 獲取內(nèi)存利用率,會(huì)更精準(zhǔn)一些

生成報(bào)告

上游診斷分析處理后,診斷服務(wù)按 application 粒度將結(jié)果指標(biāo)整合,形成最終的任務(wù)診斷報(bào)告。報(bào)告采用結(jié)構(gòu)化設(shè)計(jì),從兩個(gè)方面呈現(xiàn):一是任務(wù)元數(shù)據(jù)信息,如歸屬集群、任務(wù) ID、任務(wù)名、負(fù)責(zé)人、耗時(shí)等;二是診斷信息,除診斷異常等級(jí)、命中異常項(xiàng)這類概要信息外,用戶可切換診斷類型頁查看詳情數(shù)據(jù)分析,便于快速異常定位。

治理優(yōu)化效果

所產(chǎn)生的診斷數(shù)據(jù)結(jié)果,平臺(tái)運(yùn)維人員可推進(jìn)數(shù)據(jù)開發(fā)人員優(yōu)化。工具上線后,數(shù)據(jù)運(yùn)維團(tuán)隊(duì)多次開展 Spark 任務(wù)資源利用率治理,實(shí)測(cè)結(jié)果顯示,在執(zhí)行時(shí)間相近前提下,離線計(jì)算集群資源水位線最高能下降 20~30%,成本節(jié)約效果顯著。

Spark 小文件自動(dòng)合并

作為數(shù)據(jù)從業(yè)人員,對(duì)于 Spark 計(jì)算生成小文件的問題應(yīng)不陌生。數(shù)據(jù)開發(fā)者常見做法是增加 repartition 算子以減少小文件的生成,但通常來說,每個(gè)批次生成數(shù)據(jù)集大小、動(dòng)態(tài)分區(qū)插入數(shù)據(jù)量等均會(huì)給數(shù)據(jù)開發(fā)人員造成困擾,如何配置才能達(dá)到理想狀態(tài)是個(gè)難題。為此,我們深入研究社區(qū)內(nèi)幾種小文件合并實(shí)現(xiàn)方案后,最終選擇自研實(shí)現(xiàn)。

合并的核心思路是在 Commit 前進(jìn)行攔截,通過重寫 SparkSqlParquetOutputCommitter 方式加入合并 job 檢測(cè),當(dāng)數(shù)據(jù)開發(fā)人員提交的 Spark 任務(wù)生成的小文件達(dá)到閾值時(shí),會(huì)串行觸發(fā) compact 和 delete Job,且針對(duì)小文件眾多的情況,會(huì)多輪觸發(fā) compact 直至達(dá)到預(yù)設(shè)閾值。

小文件合并插件上線后效果 (取一線上表為例)


從圖中可以看出,小文件合并插件上線后,天分區(qū)文件個(gè)數(shù)大幅下降,對(duì)應(yīng)的天分區(qū)路徑訪問次數(shù)也隨之明顯減少,具體數(shù)據(jù)顯示:?jiǎn)我惶旆謪^(qū)文件數(shù)減少 97%,下游訪問頻次減少 85%,其他小文件表的合并效果因小文件規(guī)模數(shù)量而異。

小文件合并過程會(huì)對(duì)上游任務(wù)造成一定延時(shí),但換來的是下游計(jì)算任務(wù)效率大幅提升和資源有效削減,產(chǎn)生的影響正面大于負(fù)面。這一點(diǎn)可通過小文件合并插件上線后運(yùn)行一段時(shí)間的數(shù)據(jù)得到驗(yàn)證:離線任務(wù)診斷系統(tǒng)新生成的低資源利用率待治理任務(wù)數(shù)達(dá)到總 DAG 數(shù) 25%,證實(shí)了整體計(jì)算任務(wù)效率得到提升。

2.2 技術(shù)架構(gòu)改造專項(xiàng)

EMR 升級(jí)

我司自 2019 年開始使用 EMR。

彼時(shí),Spark3.0 發(fā)布不久,雖推出許多重磅特性,但其穩(wěn)定性有待提升,結(jié)合 hudi 官方建議的集成版本,內(nèi)部研討決定基于 Spark 2.4.x 和 Hudi 0.5.x 構(gòu)建離線湖倉 1.0 版本。之后 Hudi 社區(qū)發(fā)展迅猛,陸續(xù)推出許多數(shù)據(jù)湖領(lǐng)域稀缺特性,且在實(shí)時(shí)湖倉領(lǐng)域 flink-hudi 也日趨完善,結(jié)合數(shù)據(jù)業(yè)務(wù)發(fā)展在性能和功能方面述求,使得升級(jí)成為剛需。

持續(xù)至今,已完成兩次 EMR 原地升級(jí) (EMR5 -> EMR6 -> EMR7),第二次是今年剛完成,均涉及集群管理、元數(shù)據(jù)、存儲(chǔ)、離線計(jì)算、實(shí)時(shí)計(jì)算等全平臺(tái)范圍組件,核心組件版本迭代如下:

spark: 2.4.5 -> 3.1.1 -> 3.5.2
hudi: 0.5.3 -> 0.10.0 -> 0.15.0
flink: 1.11 -> 1.13 -> 1.18
hadoop: 2.8.5 -> 3.2.1 -> 3.4.0
hive: 2.3.4 -> 3.1.2 -> 3.1.3

每次 EMR 升級(jí)難度極大,過程中如履薄冰,需大膽規(guī)劃,小心求證。升級(jí)推進(jìn)過程較為漫長,時(shí)間跨度周期以半年計(jì),可概括為如下步驟:

  • 風(fēng)險(xiǎn)評(píng)估:了解鏈路主要組件新版本特性,梳理風(fēng)險(xiǎn)點(diǎn),確定升級(jí)目標(biāo)大致可行性

  • 制定計(jì)劃:制定升級(jí)改造計(jì)劃,拆解升級(jí)目標(biāo)映射到個(gè)人,以串行與并行方式推進(jìn)

  • 升級(jí)測(cè)試:升級(jí)功能細(xì)粒度測(cè)驗(yàn),評(píng)估是否符合預(yù)期以及投入人力周期

  • 兼容性驗(yàn)證:涉及平臺(tái)底層,需特別關(guān)注上層應(yīng)用兼容性,如讀寫訪問、任務(wù)提交、數(shù)據(jù)兼容性等

  • 切換方案:制定升級(jí)切換計(jì)劃和回滾方案,分批次進(jìn)行切換,將問題影響程度降至最小

  • 逐步升級(jí) & 復(fù)盤整改:組件 & 服務(wù)單位功能按自測(cè) -->PRE 集群 -->PROD 集群逐步升級(jí),將遇到的問題均記錄下來,總結(jié)、復(fù)盤和整改。當(dāng)存在較大范圍共性問題時(shí),修復(fù)后視情況校正切換方案 (主體不變,細(xì)節(jié)調(diào)整隨機(jī)應(yīng)變),直至完成全線切換

事后復(fù)盤整個(gè)升級(jí)專項(xiàng)推進(jìn)過程,存在諸多思慮不周之處。雖然主體方向未變,但過程中充滿各種變數(shù) (客觀和主觀因素),有些變數(shù)甚至足以影響專項(xiàng)的落地實(shí)施,尤其是行進(jìn)至中后期,非主觀性阻力因素尤為嚴(yán)重。得益于數(shù)據(jù) & 上下游業(yè)務(wù)部門的大力支持,團(tuán)隊(duì)以不變應(yīng)萬變,見招拆招,攻克諸多困難,一起完成升級(jí)專項(xiàng)落地。

經(jīng)歷兩次全面升級(jí)后,數(shù)據(jù)平臺(tái)在多個(gè)維度取得收益。性能方面,Spark 的新特性在大部分離線場(chǎng)景計(jì)算效率提升 30~50%,成本優(yōu)化效果明顯;功能方面,hudi 和 flink 大量的新版本特性完善了流式湖倉管理能力,滿足業(yè)務(wù)對(duì)數(shù)據(jù)新鮮度和計(jì)算效率的述求;穩(wěn)定性方面,計(jì)算任務(wù)穩(wěn)定性得到明顯提升的同時(shí),生態(tài)兼容性也得到較好的整合,為數(shù)據(jù)平臺(tái)長期穩(wěn)定運(yùn)行奠定了堅(jiān)實(shí)的基礎(chǔ)。

Flink 架構(gòu)優(yōu)化

前文用較大的篇幅介紹了關(guān)于 Spark 成本優(yōu)化,本節(jié)著重闡述我司如何針對(duì) Flink 進(jìn)行成本優(yōu)化,圍繞兩個(gè)層面展開:Flink 容器化演進(jìn)和 Flink Hudi 優(yōu)化。

Flink 容器化

平臺(tái)建設(shè)初期,F(xiàn)link 任務(wù)運(yùn)行在 EMR YARN 集群中。持續(xù)幾年后,隨著業(yè)務(wù)團(tuán)隊(duì)計(jì)算任務(wù)擴(kuò)增,穩(wěn)定性逐漸成為數(shù)據(jù)平臺(tái)團(tuán)隊(duì)面臨的重大挑戰(zhàn),主要體現(xiàn)在:資源隔離粒度粗糙存在資源爭(zhēng)搶、集群計(jì)算節(jié)點(diǎn)容易被大狀態(tài)任務(wù)打崩、集群擴(kuò)縮容速度有限等幾方面?;诜€(wěn)定性和成本因素考量,于 2024 年初啟動(dòng) Flink 容器化適配工作,簡(jiǎn)單列舉 Flink on YARN vs K8S 對(duì)比:


確定方向后,下一步則是部署模式的選型 (Native vs Operator),選型期間做了較深入的調(diào)研,包含深度研讀社區(qū)文檔、部署驗(yàn)證、與業(yè)內(nèi)多個(gè)大廠技術(shù)團(tuán)隊(duì)交流,最終結(jié)合當(dāng)前平臺(tái)建設(shè)現(xiàn)狀及未來動(dòng)態(tài)彈性伸縮的需求,選擇 FKO(Flink Kubernetes Operator) 方案。選型 FKO 方案的關(guān)鍵因素:

  • 便捷式管理集群作業(yè):FKO 提供了更高級(jí)的抽象和管理功能,專用于管理和運(yùn)行 Flink 作業(yè)。它可以處理 Flink 特定的配置、依賴項(xiàng)和作業(yè)管理,簡(jiǎn)化作業(yè)的部署和操作,無需為不同 job 定義各自單獨(dú) YAML 聲明。FKO 可以自動(dòng)管理 Flink 作業(yè)的生命周期,包括創(chuàng)建、更新、擴(kuò)展和停止作業(yè),同時(shí)可以按需求自動(dòng)縮放作業(yè)資源,并提供作業(yè)級(jí)別的操作和監(jiān)控功能。

  • 聲明式:以腳本命令行創(chuàng)建需要額外確認(rèn)資源是否按預(yù)期創(chuàng)建成功,而借助 FKO 的控制器模式,用戶只需聲明所期望的集群運(yùn)行資源及狀態(tài),其余全部交由 FKO 保證實(shí)現(xiàn)。如運(yùn)行中突然出現(xiàn) JM/TM 節(jié)點(diǎn)故障,F(xiàn)KO 會(huì)自動(dòng)重建節(jié)點(diǎn)以恢復(fù)集群運(yùn)行狀態(tài)。

  • 故障恢復(fù):FKO 集成了 Flink 的故障恢復(fù)機(jī)制,如 Checkpoint 和自動(dòng)重啟恢復(fù):1. 用戶只需指定 autoSavePointSeconds 和保存路徑,F(xiàn)KO 會(huì)自動(dòng)定期保存快照;2. 流式任務(wù)的顯著特點(diǎn)是長期運(yùn)行,運(yùn)行過程中可能面臨各種因素導(dǎo)致任務(wù)失敗,借助 FKO,用戶可以指定任務(wù)恢復(fù)策略 FromSavePointOnFailure,自動(dòng)處理作業(yè)的狀態(tài)恢復(fù)和故障處理,提供更可靠的作業(yè)運(yùn)行環(huán)境。

  • 生態(tài)集成成熟度:FKO 與 Flink 生態(tài)系統(tǒng)緊密集成,可以使用 Flink 的特性和工具,如保存點(diǎn)、檢查點(diǎn)、狀態(tài)后端、指標(biāo)等,還支持 Flink 配置和用戶代碼的自定義,以滿足特定的需求。同時(shí)集成 Ingress,方便用戶訪問 WEB UI 查看作業(yè)運(yùn)行情況或者查看運(yùn)行日志。

歷經(jīng)一個(gè)季度的開發(fā)迭代,內(nèi)部流計(jì)算任務(wù)管理平臺(tái)集成 FKO 正式上線,之后逐步推廣給數(shù)據(jù)開發(fā)者使用。得益于前期的充分調(diào)研和驗(yàn)證,F(xiàn)link ON YARN -> Kubernetes 的切換過程整體較為平滑,雖有間歇性問題出現(xiàn),但都被數(shù)據(jù)團(tuán)隊(duì)攻克解決,未發(fā)生重大阻塞。最終我們花費(fèi)近兩個(gè)季度時(shí)間完成全部通用性任務(wù)切換,再結(jié)合資源利用率的治理推進(jìn),實(shí)現(xiàn)通用流計(jì)算集群月成本削減 30% 的目標(biāo)。

Flink Hudi 優(yōu)化

社區(qū)內(nèi)關(guān)于 Flink Hudi 的優(yōu)化案例眾多,本節(jié)僅列舉我司內(nèi)部實(shí)踐后效果明顯的兩個(gè)專題案例。

Hudi 表入湖合并

Flink Hudi 實(shí)時(shí)表入湖從零開始擴(kuò)大使用規(guī)模,初期出于表接入效率考量,采用表與實(shí)時(shí)任務(wù)一對(duì)一捆綁關(guān)系。至第二階段成本治理時(shí),實(shí)時(shí)表入湖所占用的計(jì)算資源已上千核,成本比重較為明顯。因此,實(shí)時(shí)表入湖合并很自然地被列為一個(gè)成本優(yōu)化方向。

社區(qū)雖提供了一套單 job 多表 sink 解決方案,但經(jīng)過一段時(shí)間實(shí)踐后,發(fā)現(xiàn)在性能和穩(wěn)定性方面難以滿足我司使用需求,主要問題包括:?jiǎn)?job 內(nèi)大表可能占用過多資源影響小表寫入、單表接入問題可能導(dǎo)致整個(gè)作業(yè)失敗、單 job 表數(shù)量增加時(shí)性能會(huì)急劇性下降、不同表引用不同配置時(shí)管理復(fù)雜。經(jīng)調(diào)研后,另行實(shí)現(xiàn)合并方案,核心設(shè)計(jì)思路:同源 source 接入后按表粒度構(gòu)建 multi job 提交運(yùn)行,作業(yè)內(nèi)表和 job 保持一對(duì)一捆綁關(guān)系,提交后每個(gè) job 各自運(yùn)行 Pipelines.hoodieStreamWrite。以一個(gè) topic(mysql db) 多表配置為例,數(shù)據(jù)管理人員可在自研數(shù)據(jù)集成服務(wù)中按不同階段表數(shù)據(jù)量級(jí)拆分為多個(gè)批次分別創(chuàng)建作業(yè)運(yùn)行,從而極大地消除了穩(wěn)定性方面的影響。

合并分批推進(jìn),該項(xiàng)完成后取得 Flink Hudi 入湖集群計(jì)算資源削減 20% 的治理收益。

Bucket Index

實(shí)時(shí)表入湖合并方案上線后雖然使集群資源用量得到削減,但在數(shù)據(jù)業(yè)務(wù)團(tuán)隊(duì)對(duì)數(shù)據(jù)新鮮度愈發(fā)強(qiáng)烈的背景下,一段時(shí)間后規(guī)模用量再度翻涌上來。此外,在 flink on emr yarn 模式下經(jīng)常因計(jì)算節(jié)點(diǎn)異常導(dǎo)致任務(wù)重啟現(xiàn)象,而 flink hudi 每次重啟狀態(tài)恢復(fù)的代價(jià)極大,個(gè)別大表會(huì)卡在 bootstrap 階段長達(dá)半小時(shí)以上,導(dǎo)致實(shí)時(shí) ODS 層數(shù)據(jù) SLA 頻繁遭受質(zhì)疑。

針對(duì)此問題的解法來自于社區(qū),這正是開源技術(shù)的魅力所在。Apache Hudi 在 0.14 版本支持 Bucket Index 方案,與其他索引機(jī)制相比尤為特殊,其核心實(shí)現(xiàn)原理是基于記錄鍵哈希值進(jìn)行確定性分桶,通過預(yù)分桶機(jī)制避免全局索引性能開銷,客戶端在插入過程中,直接定位傳入記錄對(duì)應(yīng)的待寫入文件位置,無需顧及全局性記錄鍵分布情況,原有備受詬病的 bootstrap 和大狀態(tài)存儲(chǔ)問題也隨之得到根除。

因 Bucket Index 改造涉及實(shí)時(shí) ODS 層數(shù)據(jù),需嚴(yán)加謹(jǐn)慎對(duì)待。數(shù)據(jù)團(tuán)隊(duì)先針對(duì)該方案實(shí)現(xiàn)原理進(jìn)行剖析研究,接著集成到平臺(tái)上驗(yàn)證測(cè)試,平臺(tái)開發(fā)人員按功能和性能類別分別進(jìn)行驗(yàn)證,覆蓋十幾種測(cè)試用例場(chǎng)景,充分驗(yàn)證效果符合預(yù)期后再結(jié)合 Flink & Hudi 升級(jí)規(guī)劃,分批切換生效,最終無損完成全量 flink hudi ods 表 (上千張) 的升級(jí)切換。

在推進(jìn)升級(jí)切換的同時(shí),也完成全量 hudi 表任務(wù) flink on yarn -> k8s 的平滑切換,Hudi Bucket Index 方案上線后效果極其明顯,以如下一組數(shù)據(jù)體現(xiàn):


2.3 階段二治理小結(jié)

相比于第一階段,第二階段的成本治理邁入更深層次的優(yōu)化領(lǐng)域,為達(dá)成治理目標(biāo),除上文列舉的典型優(yōu)化方案外,內(nèi)部還制定了多個(gè)治理專項(xiàng),采用雙線并行推進(jìn)模式,在保持業(yè)務(wù)增量的前提下再度實(shí)現(xiàn)月成本節(jié)約 30% 的治理效果。

體系化治理構(gòu)建

前兩個(gè)階段成本治理以技術(shù)視角開展,在取得成果的同時(shí)也意識(shí)到一些局限性,即單純依賴技術(shù)優(yōu)化難以實(shí)現(xiàn)可持續(xù)性的體系化成本管控,需從更高維度的能力建設(shè)入手。阿里的數(shù)據(jù)治理實(shí)踐指出,成本治理的核心目標(biāo)應(yīng)聚焦于人效和資源,通過技術(shù)平臺(tái)建設(shè)提升單位人效也是一種至關(guān)重要且有效的降本措施,這也是我司投入大量資源建設(shè)大數(shù)據(jù)研發(fā)治理平臺(tái)套件的一大根因。

在平臺(tái)范圍內(nèi),從數(shù)據(jù)生產(chǎn)到數(shù)據(jù)消費(fèi)涉及的環(huán)節(jié)和處理鏈路繁多且復(fù)雜,而首要難關(guān)就是如何識(shí)別并分離數(shù)據(jù)處理鏈路。若能針對(duì)每個(gè)處理環(huán)節(jié)給予標(biāo)簽定義,再輔以一定程度的量化 (計(jì)量和計(jì)費(fèi)),即可持續(xù)性進(jìn)行全鏈路數(shù)據(jù)成本治理。治理的理想狀態(tài)是經(jīng)由平臺(tái)工具化將治理過程的理念、方法、流程沉淀下來,再結(jié)合多維度治理措施,實(shí)現(xiàn)在數(shù)據(jù)開發(fā)交付過程中順帶完成數(shù)據(jù)治理,達(dá)成治技合一的效果。整體框架遵循如下原則:

3.1 成本數(shù)倉

成本數(shù)倉按 ODS、DWD/DWS、DIM、ADS 等經(jīng)典層級(jí)結(jié)構(gòu)設(shè)計(jì)即可,層級(jí)越簡(jiǎn)單計(jì)算損耗越小。

指標(biāo)定義

在大數(shù)據(jù)平臺(tái)中成本消耗來源眾多,典型成本來源包括:

  • 物理機(jī)計(jì)算資源:CPU、GPU、內(nèi)存、硬盤等

  • 網(wǎng)絡(luò)傳輸:交換機(jī)、路由器、網(wǎng)絡(luò)帶寬等

  • 機(jī)房基礎(chǔ)設(shè)施:機(jī)柜租賃、電費(fèi)、防火墻等

  • 大數(shù)據(jù)平臺(tái)架構(gòu)各層軟件服務(wù)研發(fā)成本

現(xiàn)實(shí)中,我們很難將單一性計(jì)算任務(wù)與上述所有環(huán)節(jié)鏈路花費(fèi)關(guān)聯(lián)起來,因此只需將數(shù)據(jù)平臺(tái)上可用于優(yōu)化和治理部分成本信息予以量化即可,于大數(shù)據(jù)平臺(tái)而言,主要以 存儲(chǔ)和計(jì)算 這兩類指標(biāo)作為量化表達(dá),如:

  • 離線計(jì)算任務(wù):CPU、MEM、計(jì)算緩存容量、任務(wù)歸屬元數(shù)據(jù)信息

  • Hive、S3:表 / 分區(qū)存儲(chǔ)容量、路徑訪問頻次及類型、資產(chǎn)歸屬元數(shù)據(jù)信息

量化

計(jì)算實(shí)際成本的規(guī)則極為復(fù)雜,如階梯式計(jì)費(fèi)、折扣、代金券、波動(dòng)用量、分?jǐn)偟?,需要系統(tǒng)性工程建設(shè)。受限于大量細(xì)分計(jì)費(fèi)項(xiàng)無法關(guān)聯(lián)到業(yè)務(wù)團(tuán)隊(duì)一級(jí),一種較為可行的量化方案是結(jié)合業(yè)務(wù)用量再構(gòu)建一層抽象定價(jià)關(guān)系,即以達(dá)成收支平衡為目標(biāo)對(duì)云資源用量再作售賣。

計(jì)算層

對(duì)于計(jì)算任務(wù)的資源指標(biāo)量化均按 CPU(vcore_second)、MEM(mem_second) 每秒用量進(jìn)行量化,實(shí)現(xiàn)計(jì)算任務(wù)在 YARN 或 Kubernetes 運(yùn)行時(shí)指標(biāo)度量統(tǒng)一,便于后期資源使用分析、成本分?jǐn)偱c治理。

存儲(chǔ)層

以 S3 為例,其計(jì)費(fèi)體系極為龐大,有冷熱分層、階梯式存儲(chǔ)用量計(jì)價(jià)、操作分類計(jì)費(fèi)等數(shù)十種細(xì)分類型,概括起來可分為三大類:存儲(chǔ)、數(shù)據(jù)請(qǐng)求、數(shù)據(jù)傳輸。

計(jì)費(fèi)說明及定價(jià)實(shí)現(xiàn)參考


  • 存儲(chǔ)

    • 按 S3 存儲(chǔ)類定義費(fèi)率

    • SS/FA 層:¥ 0.006122 per GB / day,IA 層:¥ 0.004397 per GB / day,AIA 層:¥ 0.001098 per GB / day

    • 各存儲(chǔ)層使用容量結(jié)合存儲(chǔ)類費(fèi)率,計(jì)算出存儲(chǔ)單價(jià)費(fèi)率

    • 假設(shè) A 用戶使用 s3 多個(gè)桶總存儲(chǔ) 1PB,各層存儲(chǔ)用量分布 (SS 層 /20TB、FA 層 /150TB、IA 層 /170TB 、AIA/660TB),則日均存儲(chǔ)量化成本 = ¥ 2600.5504 / day,轉(zhuǎn)化為 GB 的存儲(chǔ)單價(jià)費(fèi)率為¥ 0.00248

    • 計(jì)算每日量化成本與賬單成本的差異系數(shù) (折扣影響),如系數(shù)為 1,則存儲(chǔ)單價(jià)費(fèi)率不變

  • 數(shù)據(jù)請(qǐng)求:處理 access log 訪問明細(xì)數(shù)據(jù),按 operator 類型劃分 ETL 處理還原計(jì)算出路徑產(chǎn)生的讀寫請(qǐng)求費(fèi)用

  • 數(shù)據(jù)傳輸:DTO 部分使用明確,一般按團(tuán)隊(duì)使用劃分歸屬


用戶可基于資產(chǎn)用量和每日單價(jià)費(fèi)率,以通俗易懂的方式計(jì)算得到存儲(chǔ)成本量化參考。

數(shù)據(jù)采集與建模入倉

在成本領(lǐng)域中除資源使用計(jì)量外,還需采集云廠商賬單數(shù)據(jù)、API 調(diào)用和日志數(shù)據(jù)等,以補(bǔ)充成本分析維度信息。數(shù)據(jù)采集入倉時(shí)命名需符合規(guī)范。示例:

  • ODS 層,庫名:ods_govern

  • DWD 層,庫名:dwd_govern_cost,表命名規(guī)范:{一級(jí)主題}_{二級(jí)主題}

成本數(shù)倉涉及業(yè)務(wù)過程較為單一,主要以實(shí)現(xiàn)成本 [量化 + 分?jǐn)俔 為業(yè)務(wù)核心,建模部分可遵循 OneData 概念,以維度建模為基礎(chǔ)構(gòu)建總線矩陣,定義業(yè)務(wù)域、數(shù)據(jù)域、業(yè)務(wù)過程、度量 / 指標(biāo)、維度、維度屬性。入倉 ETL 時(shí)需預(yù)先規(guī)劃數(shù)據(jù)加載和更新策略,分場(chǎng)景采取增量或批量處理等方式,確保成本數(shù)據(jù)及時(shí)、準(zhǔn)確地在各層傳遞。

3.2 持續(xù)化治理產(chǎn)物

數(shù)據(jù)治理平臺(tái)

治理到達(dá)一定程度后,為實(shí)現(xiàn)常態(tài)化、持續(xù)性的治理目標(biāo),需要工具平臺(tái)提供支撐,數(shù)據(jù)治理平臺(tái)隨之誕生。我司的數(shù)據(jù)治理平臺(tái)自頂向下采用 <治理領(lǐng)域 - 治理對(duì)象 治理項(xiàng)> 三層設(shè)計(jì)。

  • 治理領(lǐng)域?qū)樱喊礃I(yè)務(wù)特性劃分,如成本 (計(jì)算和存儲(chǔ))、質(zhì)量、穩(wěn)定性、安全等

  • 治理對(duì)象層:領(lǐng)域內(nèi)治理目標(biāo),如計(jì)算任務(wù)、存儲(chǔ)表、數(shù)據(jù)開發(fā)過程質(zhì)量等

  • 治理項(xiàng)層:可執(zhí)行的具體動(dòng)作,如計(jì)算任務(wù)資源優(yōu)化、存儲(chǔ)表數(shù)據(jù)活性度等

用戶可在此框架內(nèi)定義和捆綁治理任務(wù),底層治理項(xiàng)數(shù)據(jù)均來自指標(biāo)平臺(tái),依托于成熟的指標(biāo)管理體系,最大程度削減口徑確認(rèn)和數(shù)據(jù)處理成本。

雙層治理協(xié)作模式

以過往的治理經(jīng)歷而言,采用雙層治理協(xié)作模式(用戶層治理和平臺(tái)層治理)效果最佳,雙方以 OKR 作為媒介對(duì)齊治理目標(biāo)后,各自開展治理行動(dòng)項(xiàng)。以成本治理為例,雙方協(xié)作方式如下圖所示:


平臺(tái)層治理

平臺(tái)層接入各類治理類指標(biāo)后抽象為計(jì)算、存儲(chǔ)兩類可治理資源,根據(jù)預(yù)設(shè)規(guī)則判定形成待治理項(xiàng),確保治理過程標(biāo)準(zhǔn)化和自動(dòng)化,待治理項(xiàng)生成后推送給負(fù)責(zé)人做后續(xù)治理操作,同時(shí)平臺(tái)會(huì)監(jiān)控治理進(jìn)度,量化治理效果。除此之外,平臺(tái)層對(duì)技術(shù)架構(gòu)改進(jìn)優(yōu)化實(shí)現(xiàn)成本優(yōu)化的幅度是巨大的,如對(duì)平臺(tái)計(jì)算引擎升級(jí)、汰換和湖倉一體迭代升級(jí)等。

用戶層治理

用戶層負(fù)責(zé)具體治理措施的執(zhí)行和業(yè)務(wù)層面的優(yōu)化,基于已制定的預(yù)算和治理目標(biāo),有節(jié)奏地開展治理事項(xiàng),在治理完成后查看治理收益,評(píng)估投入產(chǎn)出比。需特別注意的是:平臺(tái)在建立用量管控機(jī)制的同時(shí),需完善 <個(gè)人 -> 項(xiàng)目 ->組織架構(gòu)>層級(jí)關(guān)系,按組織架構(gòu)治理推進(jìn)的優(yōu)勢(shì)是方便直接找到相干人,便于追蹤和跟進(jìn)目標(biāo)進(jìn)度,依托于組織架構(gòu)的上下級(jí)匯報(bào)關(guān)系,能使治理推進(jìn)更加順暢。

治理健康分

治理類別劃分多個(gè)領(lǐng)域,涉及資源成本、數(shù)據(jù)質(zhì)量、數(shù)據(jù)安全、數(shù)倉 / 組件穩(wěn)定性等各個(gè)方面,圍繞著這些領(lǐng)域會(huì)各自形成具體的治理策略和方法,在運(yùn)營發(fā)展到一定階段時(shí),就需要一個(gè)多方共認(rèn)的治理考核指標(biāo) (如健康分),使各個(gè)團(tuán)隊(duì)有一個(gè)統(tǒng)一的量化標(biāo)準(zhǔn),共同朝著同一個(gè)目標(biāo)努力。

健康分是以數(shù)據(jù)資產(chǎn)在數(shù)據(jù)生產(chǎn)、數(shù)據(jù)流通、數(shù)據(jù)特性、數(shù)據(jù)管理、任務(wù)性質(zhì)等元數(shù)據(jù)為依托,經(jīng)模型化數(shù)據(jù)處理后進(jìn)行綜合評(píng)估,在個(gè)人、組織的維度呈現(xiàn)資產(chǎn)狀態(tài)的綜合分值。以成本領(lǐng)域 -spark 任務(wù)計(jì)算這個(gè)治理對(duì)象為例,我們將其拆分為五個(gè)維度呈現(xiàn):


這種多維度的健康分評(píng)估體系,能夠較全面地反映治理對(duì)象的健康狀況,同時(shí)結(jié)合數(shù)據(jù)治理運(yùn)營機(jī)制,周期性調(diào)整維度組合和權(quán)重,避免健康分計(jì)算失衡。

結(jié) 語

以當(dāng)前視角回顧大數(shù)據(jù)成本治理歷程,能深刻體會(huì)到成本、穩(wěn)定性、易用性三者之間既互斥又平衡的三角博弈關(guān)系,表象為:追求成本最優(yōu)往往需要在穩(wěn)定性和易用性做權(quán)衡取舍;過度成本壓縮會(huì)極大概率地增加系統(tǒng)不穩(wěn)定性;過分追求平臺(tái)易用性和穩(wěn)定性則會(huì)帶來資源成本浪費(fèi)。因此,成本治理絕非簡(jiǎn)單的降本行為,而是在多重約束條件下尋求最優(yōu)解的系統(tǒng)工程,這種平衡關(guān)系不能一蹴而就,需要在持續(xù)的實(shí)踐中不斷調(diào)整和完善。

道雖遠(yuǎn),行則將至。在大數(shù)據(jù)成本治理這一漫長而復(fù)雜的道路上,從最初的被動(dòng)應(yīng)對(duì)成本壓力,到如今建立起相對(duì)完善的治理體系,這一路走來充滿挑戰(zhàn)與收獲,特別感謝在此歷程中內(nèi)外部團(tuán)隊(duì)的大力支持,才讓我們?cè)谥卫磉@條道路上披荊斬棘。

未來,隨著業(yè)務(wù)規(guī)模的持續(xù)擴(kuò)大和技術(shù)架構(gòu)的不斷演進(jìn),成本治理工作亦將面臨新的挑戰(zhàn)和機(jī)遇。我們將繼續(xù)秉承精益求精的態(tài)度,在實(shí)踐中總結(jié)經(jīng)驗(yàn),在創(chuàng)新中尋求突破,為構(gòu)建更加高效、穩(wěn)定、經(jīng)濟(jì)的大數(shù)據(jù)平臺(tái)而不懈努力,愿我們都能在各自的技術(shù)道路上行穩(wěn)致遠(yuǎn)。

作者信息

吳建陽,樸樸科技大數(shù)據(jù)運(yùn)維負(fù)責(zé)人,在大數(shù)據(jù)平臺(tái)離線 / 實(shí)時(shí)計(jì)算、數(shù)據(jù)湖、OLAP 等基礎(chǔ)設(shè)施,具有多年的大數(shù)據(jù)實(shí)戰(zhàn)經(jīng)驗(yàn)。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
沉默而榮耀的吳石將軍:被出賣前未被老蔣懷疑,毛人鳳也不敢動(dòng)他

沉默而榮耀的吳石將軍:被出賣前未被老蔣懷疑,毛人鳳也不敢動(dòng)他

半壺老酒半支煙
2025-10-02 18:33:19
不要被館長的暗獨(dú)給蒙蔽了!

不要被館長的暗獨(dú)給蒙蔽了!

談芯說科技
2025-10-02 21:02:07
39億“學(xué)費(fèi)”,不要和流氓國家打交道

39億“學(xué)費(fèi)”,不要和流氓國家打交道

難得君
2025-07-23 14:46:04
華為Mate80Pro+ 狂野升級(jí),還沒早買Mate 70的恭喜了!

華為Mate80Pro+ 狂野升級(jí),還沒早買Mate 70的恭喜了!

科技堡壘
2025-10-03 10:18:16
可別被電影里的場(chǎng)景忽悠了,真實(shí)的八里橋之戰(zhàn)完全不是這樣

可別被電影里的場(chǎng)景忽悠了,真實(shí)的八里橋之戰(zhàn)完全不是這樣

知兵堂軍事
2025-10-01 10:50:47
戒酒的驚人發(fā)現(xiàn)!新研究:戒酒3年以上,死亡率或接近從未喝酒者

戒酒的驚人發(fā)現(xiàn)!新研究:戒酒3年以上,死亡率或接近從未喝酒者

王二哥老搞笑
2025-10-03 14:08:47
突然!降息100基點(diǎn)

突然!降息100基點(diǎn)

中國基金報(bào)
2025-10-03 10:15:39
票數(shù)大幅領(lǐng)先,國民黨新主席已定?張亞中:我是臺(tái)灣人也是中國人

票數(shù)大幅領(lǐng)先,國民黨新主席已定?張亞中:我是臺(tái)灣人也是中國人

肖茲探秘說
2025-09-16 17:09:49
決勝局5-1被逆轉(zhuǎn),王曉彤/徐奕2-3早田希娜/朱芊曦,無緣女雙決賽

決勝局5-1被逆轉(zhuǎn),王曉彤/徐奕2-3早田希娜/朱芊曦,無緣女雙決賽

釘釘陌上花開
2025-10-03 14:02:26
大唐死局,無解

大唐死局,無解

我是歷史其實(shí)挺有趣
2023-10-18 10:21:49
窮人的富養(yǎng)是帶孩子到處旅游,增長了欲望;富人的富養(yǎng)竟是......

窮人的富養(yǎng)是帶孩子到處旅游,增長了欲望;富人的富養(yǎng)竟是......

霹靂炮
2025-06-06 22:31:58
崔麗麗2012年和職業(yè)伯樂合影遭曝光,網(wǎng)友:難怪她能年薪百萬

崔麗麗2012年和職業(yè)伯樂合影遭曝光,網(wǎng)友:難怪她能年薪百萬

映射生活的身影
2025-10-02 20:13:11
《羊蹄山》泡溫泉場(chǎng)景引熱議:新女主臀部不如境井仁

《羊蹄山》泡溫泉場(chǎng)景引熱議:新女主臀部不如境井仁

游民星空
2025-10-02 17:14:11
阿爾瓦雷斯身價(jià)一分不漲 周期內(nèi)14場(chǎng)7球5助 比貝林厄姆低8000萬歐

阿爾瓦雷斯身價(jià)一分不漲 周期內(nèi)14場(chǎng)7球5助 比貝林厄姆低8000萬歐

智道足球
2025-10-03 10:56:43
北京國慶假期八天“穿越三季”!降雨降溫具體時(shí)間→

北京國慶假期八天“穿越三季”!降雨降溫具體時(shí)間→

北京女性
2025-10-03 10:25:21
個(gè)人收入開始嚴(yán)查?10月起,如果你賬戶收入超過這個(gè)數(shù),得注意

個(gè)人收入開始嚴(yán)查?10月起,如果你賬戶收入超過這個(gè)數(shù),得注意

山丘樓評(píng)
2025-10-02 15:06:30
從歷史真相,還原林彪的彪悍和粟裕的委屈。

從歷史真相,還原林彪的彪悍和粟裕的委屈。

諾諾談史
2025-10-03 06:45:31
突發(fā)!腿筋拉傷!杰倫格林轟然倒下

突發(fā)!腿筋拉傷!杰倫格林轟然倒下

鬼魅突破上籃
2025-10-03 10:10:11
好瘦!全紅嬋罕見現(xiàn)身公安局,走路大搖大擺+大腿肌肉緊繃,去干啥?

好瘦!全紅嬋罕見現(xiàn)身公安局,走路大搖大擺+大腿肌肉緊繃,去干啥?

手工制作阿殲
2025-10-03 10:44:21
國民黨主席選舉殺出“黑馬”,洪秀柱一錘定音,謀求兩岸統(tǒng)一

國民黨主席選舉殺出“黑馬”,洪秀柱一錘定音,謀求兩岸統(tǒng)一

現(xiàn)代小青青慕慕
2025-10-02 04:40:33
2025-10-03 17:11:00
InfoQ incentive-icons
InfoQ
有內(nèi)容的技術(shù)社區(qū)媒體
11552文章數(shù) 51494關(guān)注度
往期回顧 全部

科技要聞

特斯拉Q3交付超預(yù)期,股價(jià)高開低走大跌

頭條要聞

航班故障連換3駕飛機(jī)均未起飛 吉祥航空回應(yīng)

頭條要聞

航班故障連換3駕飛機(jī)均未起飛 吉祥航空回應(yīng)

體育要聞

四冠中鋒,比所有人更早開始新賽季

娛樂要聞

李純馬頔官宣結(jié)婚,曬結(jié)婚照秀幸福

財(cái)經(jīng)要聞

國家出手!三大世界級(jí)城市群定了

汽車要聞

元戎啟行9月合作車型 交付量突破3萬臺(tái)

態(tài)度原創(chuàng)

教育
時(shí)尚
數(shù)碼
藝術(shù)
軍事航空

教育要聞

小學(xué)經(jīng)典盈虧問題

伊姐十一熱推:電視劇《刺殺小說家2》;電視劇《風(fēng)林火山》......

數(shù)碼要聞

Intel千元價(jià)位市場(chǎng)變天,酷睿Ultra 5 230F配置成主流玩家新選擇

藝術(shù)要聞

故宮珍藏的墨跡《十七帖》,比拓本更精良,這才是地道的魏晉寫法

軍事要聞

九三閱兵前夕受閱部隊(duì)集結(jié)畫面首次公開

無障礙瀏覽 進(jìn)入關(guān)懷版 色与欲影视天天看综合网| 97国产精华| 国产综合久久久久| 亚国产欧美在线人成| 99欧美日本一区二区留学生| 亚洲精品不卡av在线播放| 四库影院成人无码精品| 日本XXXX毛少妇高清HD| 国产精品欧美福利久久| 69xxx欧美| 国产一二三四区中| 97国产大学生情侣在线视频| 亚洲毛片不卡av在线播放一区| 九久九久热精品| 凹凸熟女白浆国产91| 久久男人av| 国产99在线观看| 欧美黑人日逼| 免费aiai18视频在线观看成人礼| 天天视频黄网站在线观看| 碰视频在线视频| 疯狂做受xxxx高潮欧美日本| 国产特级毛片aaaaaa高清| 亚洲av成人无码天堂| Xx肥妇扒开粉嫩久久久久久| 夜夜躁日日躁| 久久久毛片| xx国产一区| 中国女人久久久久久| 久久久成人免费视频| 久久综合免费一区二区三区| 奇米7777影视| 影音先锋欧美激情| 97免费人妻无码视频| 国产日韩一区在线精品| 久久久久国产精品免费消防器| 无码人妻一区二区三区东京热| 亚洲国产第一区二区香蕉| 你懂的AV九色| 日韩最新中文字幕| 少妇天堂久久精品成人毛片|