女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

京東廣告基于Apache Doris的冷熱數(shù)據(jù)分層實(shí)踐

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2025-07-16 13:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、背景介紹

京東廣告圍繞Apache Doris建設(shè)廣告數(shù)據(jù)存儲服務(wù),為廣告主提供實(shí)時(shí)廣告效果報(bào)表和多維數(shù)據(jù)分析服務(wù)。歷經(jīng)多年發(fā)展,積累了海量的廣告數(shù)據(jù),目前系統(tǒng)總數(shù)據(jù)容量接近1PB,數(shù)據(jù)行數(shù)達(dá)到18萬億行+,日查詢請求量8,000萬次+,日最高QPS2700+。 隨著業(yè)務(wù)的不斷增長與迭代,數(shù)據(jù)量持續(xù)激增,存儲資源逐漸成為瓶頸。近兩年存儲資源經(jīng)歷了多次擴(kuò)容,存儲容量增加了近十倍,而日查詢請求量僅增長兩倍。同時(shí),計(jì)算資源的利用率因頻繁擴(kuò)容而相應(yīng)降低,導(dǎo)致資源浪費(fèi)。通過對查詢請求的分析,我們發(fā)現(xiàn)日常查詢中有99%集中在近一年的數(shù)據(jù)上,數(shù)據(jù)使用呈現(xiàn)出明顯的冷熱現(xiàn)象。基于此,希望借助Apache Doris探索一種滿足線上服務(wù)要求的冷熱數(shù)據(jù)分層解決方案,在數(shù)據(jù)不斷膨脹的情況下,降低數(shù)據(jù)的存儲和使用成本。

二、冷熱分層方案介紹

截至當(dāng)前,我們的數(shù)據(jù)冷熱分層實(shí)踐已歷經(jīng)兩種方案,分別是Doris冷數(shù)據(jù)入湖和Doris冷熱數(shù)據(jù)分層。Doris冷數(shù)據(jù)入湖方案通過SDC(Spark-Doris-Connector)將Doris中的冷數(shù)據(jù)轉(zhuǎn)入湖中,入湖后的冷數(shù)據(jù)可通過Doris外表進(jìn)行查詢。Doris冷熱數(shù)據(jù)分層方案則通過在Doris中設(shè)置數(shù)據(jù)的TTL時(shí)間,由Doris根據(jù)數(shù)據(jù)的TTL時(shí)間自動(dòng)判斷冷熱數(shù)據(jù),并將冷數(shù)據(jù)移至相對廉價(jià)的存儲介質(zhì)。冷數(shù)據(jù)入湖方案借鑒了騰訊游戲的相關(guān)經(jīng)驗(yàn)(https://cloud.tencent.com/developer/article/2251030),并在Apache Doris 1.2版本中進(jìn)行了實(shí)踐;而Doris冷熱數(shù)據(jù)分層方案則是最近上線的新一代冷熱數(shù)據(jù)分層方案。以下將結(jié)合我們過往的實(shí)踐經(jīng)驗(yàn),簡要介紹這兩種方案。

冷熱分層V1:數(shù)據(jù)湖方案

在數(shù)據(jù)湖方案中,需將Doris的數(shù)據(jù)依據(jù)業(yè)務(wù)時(shí)間進(jìn)行冷熱劃分。在類似場景中,業(yè)務(wù)時(shí)間即為Doris表的分區(qū)時(shí)間。為實(shí)現(xiàn)Doris數(shù)據(jù)入湖,需借助Spark-Doris-Connector(SDC)將Doris中的冷數(shù)據(jù)遷移至數(shù)據(jù)湖(如Iceberg)。查詢時(shí),需根據(jù)業(yè)務(wù)時(shí)間對查詢進(jìn)行冷熱區(qū)分,將冷數(shù)據(jù)查詢(冷查詢)與熱數(shù)據(jù)查詢(熱查詢)分別路由至不同的查詢引擎。冷數(shù)據(jù)查詢通過查詢改寫,將查詢重定向至數(shù)據(jù)湖對應(yīng)的外部表;熱數(shù)據(jù)查詢則無需改寫,直接查詢Doris中的OLAP表。

wKgZPGh3Pp2ANereAAICmBaTQhA383.jpg

數(shù)據(jù)入湖方案的優(yōu)勢在于,冷數(shù)據(jù)的查詢與下載能夠與線上Doris系統(tǒng)實(shí)現(xiàn)解耦,從而確保線上操作的穩(wěn)定性不受影響。這種解耦設(shè)計(jì)確保了冷數(shù)據(jù)的處理和查詢不會干擾線上Doris系統(tǒng)的正常運(yùn)行。通過將冷數(shù)據(jù)與線上系統(tǒng)分離,可以確保線上系統(tǒng)在處理實(shí)時(shí)數(shù)據(jù)時(shí)保持高效和穩(wěn)定。這對于需要高可用性和低延遲的在線廣告報(bào)表業(yè)務(wù)而言尤為重要。

數(shù)據(jù)入湖方案的主要劣勢包括以下幾點(diǎn):首先,需借助ETL工具實(shí)現(xiàn)數(shù)據(jù)從Doris到數(shù)據(jù)湖的遷移。ETL工具能夠自動(dòng)化數(shù)據(jù)遷移過程,但這也意味著需要額外的資源和時(shí)間來配置及運(yùn)行這些工具。其次,為了獲取完整的數(shù)據(jù)集,必須對Doris中的熱數(shù)據(jù)和數(shù)據(jù)湖中的冷數(shù)據(jù)進(jìn)行UNION操作。這意味著在進(jìn)行數(shù)據(jù)分析或查詢時(shí),需要同時(shí)訪問兩個(gè)不同的數(shù)據(jù)存儲系統(tǒng),這不僅增加了系統(tǒng)的復(fù)雜性,還可能影響查詢性能。例如,如果一個(gè)分析需要同時(shí)查詢熱數(shù)據(jù)和冷數(shù)據(jù),那么查詢時(shí)間可能會顯著增加,因?yàn)橄到y(tǒng)需要從兩個(gè)不同的地方獲取數(shù)據(jù)。最后,數(shù)據(jù)入湖后,Schema變更操作需得到相應(yīng)數(shù)據(jù)湖的支持。這意味著如果需要對數(shù)據(jù)結(jié)構(gòu)進(jìn)行修改,例如添加或刪除字段,必須確保數(shù)據(jù)湖能夠支持這些變更。這可能需要額外的技術(shù)支持和維護(hù)工作。


冷熱分層V2:Apache Doris冷熱數(shù)據(jù)分層方案

Apache Doris 1.2 的冷熱數(shù)據(jù)分層方案基于本地磁盤,熱數(shù)據(jù)存儲于 SSD,而冷數(shù)據(jù)則轉(zhuǎn)移至性能較低的 HDD,以此實(shí)現(xiàn)數(shù)據(jù)分層。然而,此方案存在以下缺點(diǎn):首先,該方案更適合物理機(jī)部署,而不適用于容器或 Kubernetes (K8S) 部署。當(dāng)前,大多數(shù)公司已轉(zhuǎn)向基于容器或 K8S 的部署方式,物理機(jī)部署已較為罕見。其次,需要預(yù)先估算冷數(shù)據(jù)的存儲空間,然而,冷數(shù)據(jù)量會隨時(shí)間逐漸增加,難以準(zhǔn)確預(yù)估其容量。因此,我們并未在 Doris 1.2 中采用 Doris 原生的冷熱數(shù)據(jù)分層方案,而是希望探索一種基于分布式文件系統(tǒng)作為冷數(shù)據(jù)存儲的新方案。

wKgZO2h3Pp6AfmYpAAFtpwxva1Y955.jpg

Apache Doris 2.0 的冷熱數(shù)據(jù)分層功能支持將冷數(shù)據(jù)存儲于如 OSS 和 HDFS 等分布式存儲系統(tǒng)中。用戶可通過配置相應(yīng)的存儲策略來指定數(shù)據(jù)的冷熱分層規(guī)則,進(jìn)而通過為表或分區(qū)設(shè)定存儲策略,實(shí)現(xiàn)冷數(shù)據(jù)自動(dòng)遷移至外部存儲系統(tǒng)。基于分布式存儲的 Doris 冷熱數(shù)據(jù)分層方案具有簡潔性,避免了數(shù)據(jù)湖方案的復(fù)雜性。然而,該方案的缺點(diǎn)在于冷熱數(shù)據(jù)統(tǒng)一在一個(gè)集群中進(jìn)行管理和使用,高優(yōu)先級的熱查詢可能會受到冷查詢的影響,因此需要對冷數(shù)據(jù)查詢進(jìn)行適當(dāng)?shù)南蘖鳌R韵聦⒔榻B我們在從 Doris 1.2 的數(shù)據(jù)湖方案升級至 Doris 2.0 基于分布式存儲的冷熱數(shù)據(jù)分層過程中遇到的一些問題及其解決方案。

三、問題解決

3.1 Apache Doris2.0性能優(yōu)化&問題修復(fù)

為了實(shí)現(xiàn)基于分布式存儲的冷熱數(shù)據(jù)分層,需將Doris集群由1.2版本升級至2.0版本。盡管我們在前期已與社區(qū)共同完成了大量Doris開發(fā)工作,但在具體實(shí)施冷熱數(shù)據(jù)分層過程中,仍遇到了若干問題。以下是幾個(gè)典型問題。

查詢性能下降問題

在性能Diff階段,我們發(fā)現(xiàn),在報(bào)表小查詢場景(平均tp99<20ms)中,Doris 2.0相較于我們之前的Doris 1.2版本,性能下降約50%左右。經(jīng)過分析,我們發(fā)現(xiàn)Doris 2.0的FE默認(rèn)啟用了新的優(yōu)化器,而該優(yōu)化器在SQL Rewrite階段使用了更多的規(guī)則進(jìn)行重寫,從而導(dǎo)致了性能下降。通過進(jìn)一步的壓測、分析以及與社區(qū)的交流,我們得出結(jié)論:除非在Doris 2.0中對新優(yōu)化器進(jìn)行更深層次的優(yōu)化,否則很難使性能達(dá)到Doris 1.2的水平。因此,在我們的應(yīng)用場景中,我們關(guān)閉了Doris 2.0的新優(yōu)化器功能。在使用舊優(yōu)化器的情況下,我們還是遇到了以下性能問題:

分桶裁剪失效

當(dāng)查詢命中表的Rollup后,底層數(shù)據(jù)掃描量明顯增多,查詢耗時(shí)較1.2明顯升高。查看執(zhí)行計(jì)劃,發(fā)現(xiàn)執(zhí)行計(jì)劃掃描了對應(yīng)分區(qū)下面的所有分桶數(shù)據(jù),分桶裁剪沒有生效。修復(fù)PR:https://github.com/apache/doris/pull/38565

wKgZPGh3Pp6AUQ-aAAGr_KG42G0222.jpg


前綴索引失效

當(dāng)從1.2升級到2.0時(shí),升級前于1.2時(shí)創(chuàng)建的Date類型的字段在查詢時(shí)如果將它和DateTime類型(如類似Date>="2024-10-01 00:00:00")進(jìn)行比較,F(xiàn)E會對Date類型進(jìn)行自動(dòng)類型提升(類似CAST(Date as datetime) >= Datetime("2024-10-01 00:00:00"))。 提升后的謂詞在BE處理的時(shí)候和底層數(shù)據(jù)存儲的實(shí)際類型(Date("2024"))不能進(jìn)行比較,導(dǎo)致對應(yīng)前綴索引失效,引起查詢性能大幅下降。這種情況我們通過在FE端進(jìn)行類型對齊進(jìn)行了修復(fù)https://github.com/apache/doris/pull/39446。 修復(fù)后索引生效,性能得到大幅提升。

wKgZO2h3Pp-AGPjjAAGcswJYbnc021.jpg


FE CPU使用率高問題

在對Doris2.0進(jìn)行壓力測試時(shí),觀察到FE節(jié)點(diǎn)的CPU使用率相較于Doris1.2顯著上升,在相同的QPS請求下,Doris2.0的CPU使用率幾乎翻倍。資源消耗明顯增加。在測試過程中,我們對FE節(jié)點(diǎn)進(jìn)行了火焰圖分析,識別出性能消耗較高的函數(shù);同時(shí),我們與社區(qū)成員進(jìn)行了充分的溝通,最終確定了多個(gè)資源消耗點(diǎn),并實(shí)施了相應(yīng)的優(yōu)化措施。

wKgZO2h3PqGAOyQtAEgSKj3HI40562.png

時(shí)間比較效率優(yōu)化

廣告報(bào)表場景下時(shí)間比較操作是幾乎每個(gè)查詢在分區(qū)裁剪時(shí)都會用到,而Doris2.0對時(shí)間的比較需要先轉(zhuǎn)化為字符串再進(jìn)行比較,這種比較沒有直接使用數(shù)據(jù)結(jié)構(gòu)自身的成員變量進(jìn)行比較效率高,這里我們通過PR:https://github.com/apache/doris/pull/31970對分區(qū)裁剪時(shí)的時(shí)間比較操作進(jìn)行了優(yōu)化,優(yōu)化后CPU使用率整體降低25%左右。

物化視圖字段列重寫優(yōu)化

在表有Rollup而沒有物化視圖時(shí),Doris FE對查詢的執(zhí)行計(jì)劃還是會使用只需作用于物化視圖的改寫規(guī)則進(jìn)行優(yōu)化改寫,這些無效的改寫不僅造成CPU利用率提升還會影響查詢延時(shí)。 PR: https://github.com/apache/doris/pull/40000對這種情況進(jìn)行優(yōu)化,在無物化視圖情況下避免無意義的執(zhí)行計(jì)劃改寫。

此外,我們還通過使用for循環(huán)代替流操作、關(guān)鍵路徑減少日志輸出等進(jìn)行了CPU使用率優(yōu)化,最總Doris 2.0 FE CPU消耗最終達(dá)到1.2版本等同水平。

BE 內(nèi)存使用率高

在對 Doris 2.0 版本的集群使用過程中,發(fā)現(xiàn)BE內(nèi)存使用率會極緩慢持續(xù)升高,長期使用的情況下,Doris BE 階段存在 OOM 風(fēng)險(xiǎn)。排查該現(xiàn)象和 SegmentCache的配置有關(guān):

Doris2.0使用了SegmentCache,用于對底層數(shù)據(jù)文件對象緩存。但2.0對于SegmentCache的內(nèi)存使用計(jì)算存在問題且默認(rèn)閾值設(shè)置過大,導(dǎo)致一直觸發(fā)不到SegmentCache使用閾值;隨著segment文件數(shù)量的增加,SegmentCache使用量會越來越大。結(jié)合日常內(nèi)存使用量的評估及壓測驗(yàn)證,我們重新調(diào)整了合理的SegmentCache使用閾值;在保證Cache命中率基本不變的情況下降BE常駐內(nèi)存使用率從 60%以上降低到25%一下,有效避免了 BE 節(jié)點(diǎn) OOM的風(fēng)險(xiǎn)。


經(jīng)過一系列優(yōu)化后,2.0版本查詢性能參數(shù)(TP99耗時(shí)、FECPU消耗、BE CPU消耗)有了較大優(yōu)化,基本和1.2版本對齊。

wKgZO2h3PqOAeQiDAAD-qxtxAxc888.png

3.2 冷數(shù)據(jù) Schema Change(SC)優(yōu)化

Schema Change(SC) 是Apache Doris等實(shí)時(shí)數(shù)倉日常使用當(dāng)中的高頻操作,其中,Add Key Column 的操作是廣告數(shù)據(jù)報(bào)表中使用較多的場景,實(shí)踐中發(fā)現(xiàn)冷數(shù)據(jù)添加 Key 列的SC操作存在如下問題:

1.Schema Change 退化:冷數(shù)據(jù)的Add Key Column 操作會退化成Direct Schema Change(DSC);DSC操作比較重,需要對全量數(shù)據(jù)進(jìn)行重新讀取和寫入。在實(shí)際使用過程中對于含大量冷數(shù)據(jù)的表進(jìn)行 Add Key Column 操作需要重新對遠(yuǎn)端海量數(shù)據(jù)進(jìn)行讀寫,增大系統(tǒng)IO負(fù)載的同時(shí),SC 任務(wù)耗時(shí)也很長。實(shí)踐中一張冷數(shù)據(jù)量20T左右的表,整個(gè)SC耗時(shí)在7天以上,對于需要緊急上線的業(yè)務(wù)體感極差。

2.數(shù)據(jù)冗余:冷數(shù)據(jù)Schema Change(SC)時(shí),Tablet 的每個(gè)副本都會獨(dú)立進(jìn)行 SC 操作,導(dǎo)致原來冷數(shù)據(jù)單副本存儲在SC后變成多副本,冷數(shù)據(jù)存儲資源浪費(fèi)嚴(yán)重。

為了優(yōu)化和修復(fù)上述冷數(shù)據(jù) Schema Change 遇到的問題,我們對冷數(shù)據(jù)的 Schema Change 進(jìn)行了如下優(yōu)化:

實(shí)現(xiàn)冷數(shù)據(jù) Linked Schema Change

針對冷數(shù)據(jù) Add Key Column類型的SC 退化成 Direct Schema Change 導(dǎo)致 SC 任務(wù)執(zhí)行緩慢的問題,我們對冷數(shù)據(jù)Add Key Column類型SC的流程進(jìn)行深度優(yōu)化,利用遠(yuǎn)端存儲系統(tǒng)(ChubaoFS)的CopyObject接口,實(shí)現(xiàn)在遠(yuǎn)端直接進(jìn)行數(shù)據(jù)復(fù)制,避免數(shù)據(jù)文件從遠(yuǎn)端拉取到Apache Doris,經(jīng)數(shù)據(jù)重寫后再存儲到遠(yuǎn)端存儲系統(tǒng)的巨大IO開銷。該優(yōu)化減少了兩次網(wǎng)絡(luò)傳輸和一次數(shù)據(jù)轉(zhuǎn)換的開銷,這樣能夠極大加速Add Key Column場景下冷數(shù)據(jù)Schema Change的執(zhí)行速度。經(jīng)測算優(yōu)化后SC執(zhí)行速度提升40倍, 相關(guān)PR已合并社區(qū)2.0分支:https://github.com/apache/doris/pull/40963。

wKgZPGh3PqOAazxYAAChSopd8fo418.jpg


實(shí)現(xiàn)冷數(shù)據(jù)單副本SC

Apache Doris 2.0中冷數(shù)據(jù)在進(jìn)行Schema Change時(shí),同一份數(shù)據(jù)的多個(gè)副本之間相互獨(dú)立進(jìn)行(SC)。如此, Schema Change完成后造成冷數(shù)據(jù)將在遠(yuǎn)端存儲存在多份,造成存儲資源浪費(fèi)的同時(shí)也降低SC任務(wù)執(zhí)行效率。為了解決這個(gè)問題,參考Raft協(xié)議對冷數(shù)據(jù)多副本SC場景進(jìn)行了優(yōu)化。即SC只在選舉出來的Leader副本上執(zhí)行,非Leader副本只生成元數(shù)據(jù)。

wKgZO2h3PqSAcMAEAADw5tPZ-4M879.jpg

我們已成功解決了SC后數(shù)據(jù)副本冗余的問題。然而,仍存在一個(gè)潛在風(fēng)險(xiǎn):FE會定期檢查BE上的tablet SC操作是否正常。我們允許不超過半數(shù)的tablet副本SC失敗,即使BE上的Leader副本SC失敗,整個(gè)SC任務(wù)仍可能成功。因此,若Leader副本在復(fù)制數(shù)據(jù)時(shí)失敗,可能會導(dǎo)致數(shù)據(jù)丟失。為避免這種情況,我們在FE對Schema Change任務(wù)的健康度判斷時(shí),特別考慮了冷數(shù)據(jù)的“Linked Schema Change”。只有當(dāng)tablet的Leader副本成功時(shí),SC才會被視為成功。這樣可以確保數(shù)據(jù)的完整性和一致性。


實(shí)現(xiàn)冷數(shù)據(jù)的Light Schema Change

對于存量表中可以直接使用Light Schema Change的表,我們希望更進(jìn)一步支持一種冷數(shù)據(jù)Light Schema Change;如果走Light Schema Change,則只需要修改FE 元數(shù)據(jù)信息,不需要進(jìn)行BE端任務(wù)創(chuàng)建及數(shù)據(jù)文件處理;處理時(shí)間會達(dá)到毫秒級。


wKgZPGh3PqSAdVVxAAFo8DjKxQ8429.jpg

當(dāng)前Light Schema Change只支持Value列字段的添加,不支持Key列字段添加。但對于不涉及分區(qū)、分桶、前綴索引的普通Key列;可以按照Light Schema Change的邏輯進(jìn)行處理。這里對這一功能進(jìn)行了升級。主要改動(dòng)在FE階段Light Schema Change判斷階段,支持對Key列添加的邏輯。以滿足較普通的添加Key列操作。

3.3 其他問題解決

隨著整體數(shù)據(jù)量持續(xù)增長,在引入冷熱數(shù)據(jù)分層方案之前,為緩解線上存儲資源緊缺的現(xiàn)狀,我們將 Doris 歷史數(shù)據(jù)通過 backup 的方式結(jié)轉(zhuǎn)到外部存儲,維持 Doris 集群安全的存儲水位。完成Doris2.0版本升級后,再將結(jié)轉(zhuǎn)的歷史數(shù)據(jù)重新恢復(fù)至 Doris 集群。為了便捷高效地操作歷史數(shù)據(jù),我們實(shí)現(xiàn)了一套統(tǒng)一的結(jié)轉(zhuǎn)和恢復(fù)工具,工具解決了如下三個(gè)問題:

1.歷史數(shù)據(jù)總量大,底表數(shù)量多,如何準(zhǔn)確高效地結(jié)轉(zhuǎn)這些數(shù)據(jù)?

2.歷史數(shù)據(jù)持續(xù)結(jié)轉(zhuǎn),線上表schema持續(xù)變更,如何將這部分 schema 不一致的數(shù)據(jù)重新恢復(fù)?

3.如何實(shí)現(xiàn)統(tǒng)一的冷熱數(shù)據(jù)分層和熱數(shù)據(jù)自動(dòng)冷卻?

為解決第一個(gè)數(shù)據(jù)結(jié)轉(zhuǎn)的問題,我們實(shí)現(xiàn)了一個(gè)歷史數(shù)據(jù)自動(dòng)結(jié)轉(zhuǎn)工具data migrator。支持將線上集群所有DB任意時(shí)間段內(nèi)的數(shù)據(jù)異步并行結(jié)轉(zhuǎn)至外部離線存儲。

Doris2.0完成升級后啟動(dòng)建設(shè)冷熱數(shù)據(jù)分層,首先需要將結(jié)轉(zhuǎn)至外部存儲的歷史數(shù)據(jù)恢復(fù)至線上環(huán)境。此時(shí)遇到的最大問題是線上表結(jié)構(gòu)已發(fā)生多次變更,導(dǎo)致多次結(jié)轉(zhuǎn)的歷史數(shù)據(jù)備份snapshot文件所對應(yīng)的schema結(jié)構(gòu)與線上表不一致。為了解決schema不一致的問題,我們設(shè)計(jì)開發(fā)了一套自動(dòng)化數(shù)據(jù)恢復(fù)工具narwal_cli,如下圖中Data Restore Process過程所示,narwal_cli工具支持自動(dòng)對齊歷史結(jié)轉(zhuǎn)數(shù)據(jù)和Doris 集群中數(shù)據(jù)的的schema,并定向恢復(fù)至線上環(huán)境。

wKgZO2h3PqWAASbCAAJ5TPHQy04711.jpg

在實(shí)施恢復(fù)過程中,還遇到Flink2Doris實(shí)時(shí)寫入任務(wù)失敗的情況,具體信息如下:LOAD_RUN_FAIL; msg:errCode = 2, detailMessage = Table xxxxx is in restore process. Can not load into it經(jīng)排查,問題原因是Doris表在restore過程中伴隨實(shí)時(shí)數(shù)據(jù)寫入,寫入會對表當(dāng)前的meta info進(jìn)行check,但狀態(tài)檢測粒度較粗,僅檢測tableState而未進(jìn)一步檢測partitionState,造成狀態(tài)誤判,進(jìn)而影響了寫入任務(wù)。問題定位后迅速完成修復(fù)和發(fā)版上線,詳細(xì)信息可參考pr:https://github.com/apache/doris/pull/39595。以上問題解決后,在線上環(huán)境快速準(zhǔn)確地恢復(fù)了所有歷史數(shù)據(jù),且工具兼顧易用性,做到隨時(shí)啟停、斷點(diǎn)續(xù)傳。

在我們的應(yīng)用場景中,我們對歷史恢復(fù)的數(shù)據(jù)和線上的數(shù)據(jù)分別設(shè)置了不同的冷熱分層策略:我們將歷史數(shù)據(jù)的storage_policy設(shè)置為cooldown_ttl=10s,實(shí)現(xiàn)歷史數(shù)據(jù)立刻冷卻至ChubaoFS。對全量熱數(shù)據(jù)則統(tǒng)一設(shè)置了cooldown_ttl=2years,實(shí)現(xiàn)線上熱數(shù)據(jù)隨著兩年時(shí)間窗口推進(jìn)自動(dòng)冷卻。整個(gè)歷史數(shù)據(jù)的恢復(fù)和冷卻全過程,做到對線上業(yè)務(wù)透明,準(zhǔn)確高效地實(shí)現(xiàn)全量歷史數(shù)據(jù)恢復(fù)和冷卻。同時(shí),在冷卻數(shù)據(jù)過程中發(fā)現(xiàn)冷熱數(shù)據(jù)策略設(shè)置異常問題,進(jìn)行了修復(fù),參考pr:https://github.com/apache/doris/pull/35270。實(shí)現(xiàn)統(tǒng)一的冷熱分層和自動(dòng)冷卻后,后續(xù)存儲數(shù)據(jù)量繼續(xù)保持增長,也無需再擴(kuò)容線上存儲資源,僅需擴(kuò)容較低成本的外部離線存儲即可,實(shí)現(xiàn)計(jì)算資源利用率提升的同時(shí),存儲經(jīng)濟(jì)成本大幅降低。

除了以上優(yōu)化,我們還在為 Apache Doris 在讀寫性能提升、問題修復(fù)、功能完善等方面積極貢獻(xiàn),已為社區(qū) 2.0 版本提交并合并 30+ PR。

四、小結(jié)

通過對數(shù)據(jù)進(jìn)行冷熱分層,我們的存儲成本降低了約87%。對比Doris 1.2的冷數(shù)據(jù)入湖方案與Doris 2.0的冷數(shù)據(jù)分層方案,后者在并發(fā)查詢能力上提升了超過10倍,查詢延遲顯著減少。此外,冷熱數(shù)據(jù)分層方案簡化了存儲和查詢的維護(hù)工作,降低了整體復(fù)雜性和成本。冷熱分層架構(gòu)的成功實(shí)施,離不開Apache Doris社區(qū)和中臺OLAP團(tuán)隊(duì)的鼎力支持,特此向所有Apache Doris社區(qū)和中臺OLAP團(tuán)隊(duì)的成員表示衷心的感謝。展望未來,我們期待繼續(xù)與Apache Doris社區(qū)和中臺OLAP團(tuán)隊(duì)在京東廣告場景中開展緊密合作,共同探索存算分離架構(gòu)在該場景中的實(shí)際應(yīng)用。


審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)存儲
    +關(guān)注

    關(guān)注

    5

    文章

    999

    瀏覽量

    51738
  • 京東
    +關(guān)注

    關(guān)注

    2

    文章

    1024

    瀏覽量

    49272
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    Apache Doris聚合函數(shù)源碼解析

    筆者最近由于工作需要開始調(diào)研 Apache Doris,通過閱讀聚合函數(shù)代碼切入 Apache Doris 內(nèi)核,同時(shí)也秉承著開源的精神,開發(fā)了 array_agg 函數(shù)并貢獻(xiàn)給社區(qū)。
    的頭像 發(fā)表于 01-16 09:52 ?1372次閱讀
    <b class='flag-5'>Apache</b> <b class='flag-5'>Doris</b>聚合函數(shù)源碼解析

    如何在ARMX64平臺上編譯Doris

    1、Apache Doris ARM 架構(gòu)編譯硬件環(huán)境系統(tǒng)版本:CentOS 8.4、Ubuntu 20.04系統(tǒng)架構(gòu):ARM X64CPU:4 C內(nèi)存:16 GB硬盤:40GB(SSD)、100GB(SSD)軟件環(huán)境軟件環(huán)境對照表原作者:蘇奕嘉
    發(fā)表于 05-25 17:21

    如何使用Apache Spark中的DataSource API以實(shí)現(xiàn)數(shù)據(jù)源混合計(jì)算的實(shí)踐

    本文主要介紹如何使用Apache Spark中的DataSource API以實(shí)現(xiàn)多個(gè)數(shù)據(jù)源混合計(jì)算的實(shí)踐,那么這么做的意義何在,其主要?dú)w結(jié)于3個(gè)方面: 首先,我們身邊存在大量的數(shù)據(jù)
    發(fā)表于 10-10 14:35 ?0次下載
    如何使用<b class='flag-5'>Apache</b> Spark中的DataSource API以實(shí)現(xiàn)<b class='flag-5'>數(shù)據(jù)</b>源混合計(jì)算的<b class='flag-5'>實(shí)踐</b>

    企業(yè)實(shí)踐 | 如何更好地使用 Apache Flink 解決數(shù)據(jù)計(jì)算問題?

    、網(wǎng)易、愛奇藝、中國農(nóng)業(yè)銀行、奇虎360、貝殼找房、奇安信等不同行業(yè)一線技術(shù)專家分享 Apache Flink 與大數(shù)據(jù)基礎(chǔ)平臺建設(shè)進(jìn)展和實(shí)踐,詳細(xì)解讀大數(shù)據(jù)相關(guān)技術(shù)在各行業(yè)的應(yīng)用與落
    發(fā)表于 11-14 23:06 ?549次閱讀

    京東金融APP就短視頻廣告爭議正式致歉

    近日,京東金融官方推出了多條短視頻廣告為其APP做推廣。和其他廣告走紅的方式不同,其廣告因?yàn)榇嬖趪?yán)重的價(jià)值觀問題而受到了諸多網(wǎng)友批評。隨著事情持續(xù)發(fā)酵,12月15日,
    的頭像 發(fā)表于 12-16 10:45 ?3592次閱讀

    京東再次為低俗廣告道歉 京東金融低俗借貸廣告被吐槽

    京東金融低俗借貸廣告再次處于風(fēng)口浪尖上,此事或者就正說明資本的根源深處的文化就是圍繞錢而來的。京東則再次為低俗廣告道歉。 京東集團(tuán)發(fā)布聲明,
    的頭像 發(fā)表于 12-18 09:10 ?4449次閱讀

    利用Apache Spark和RAPIDS Apache加速Spark實(shí)踐

      在第三期文章中,我們詳細(xì)介紹了如何充分利用 Apache Spark 和 Apache RAPIDS 加速器 Spark 。 大多數(shù)團(tuán)隊(duì)都會通過干凈地使用 Spark 的數(shù)據(jù)幀抽象來實(shí)現(xiàn)最大
    的頭像 發(fā)表于 04-26 17:39 ?2156次閱讀
    利用<b class='flag-5'>Apache</b> Spark和RAPIDS <b class='flag-5'>Apache</b>加速Spark<b class='flag-5'>實(shí)踐</b>

    Apache Doris正式成為 Apache 頂級項(xiàng)目

    :https://github.com/apache/incubator-doris Apache Doris 是一個(gè)基于 MPP 的現(xiàn)代化、高性能、實(shí)時(shí)的分析型
    的頭像 發(fā)表于 06-17 14:08 ?1282次閱讀

    利用KoP如何將Pulsar數(shù)據(jù)快速且無縫接入Apache Doris

      KoP 是 Kafka on Pulsar 的簡寫,顧名思義就是如何在 Pulsar 上實(shí)現(xiàn)對 Kafka 數(shù)據(jù)的讀寫。KoP 將 Kafka 協(xié)議處理插件引入 Pulsar Broker 來
    的頭像 發(fā)表于 08-08 15:13 ?1540次閱讀

    中國開源社區(qū)健康案例——Apache Doris社區(qū)

    Apache Doris 是一個(gè)基于 MPP 架構(gòu)的高性能、實(shí)時(shí)的分析型數(shù)據(jù)庫,以極速易用的特點(diǎn)被人們所熟知,僅需亞秒級響應(yīng)時(shí)間即可返回海量數(shù)據(jù)下的查詢結(jié)果,不僅可以支持高并發(fā)的點(diǎn)查詢
    的頭像 發(fā)表于 02-09 10:15 ?1676次閱讀

    Apache Doris冷熱分層技術(shù)對數(shù)據(jù)存儲有何好處

    這里我們假設(shè)用戶有 100TB 的數(shù)據(jù),我們按照不同比例將冷數(shù)據(jù)遷移到對象存儲,來計(jì)算一下如果使用冷熱分層之后,相較于全量使用普通云盤、SSD 云盤可節(jié)約多少成本。
    發(fā)表于 06-13 15:24 ?926次閱讀
    <b class='flag-5'>Apache</b> <b class='flag-5'>Doris</b><b class='flag-5'>冷熱</b><b class='flag-5'>分層</b>技術(shù)對<b class='flag-5'>數(shù)據(jù)</b>存儲有何好處

    如何快速實(shí)現(xiàn)MySQL到Doris的高容量數(shù)據(jù)同步

    NineData 采用先進(jìn)的數(shù)據(jù)同步技術(shù),確保數(shù)據(jù)實(shí)時(shí)同步到 Doris,極大地降低了數(shù)據(jù)延遲,實(shí)測 500 GB 數(shù)據(jù)傳輸完成僅用時(shí) 40
    的頭像 發(fā)表于 08-25 17:27 ?2186次閱讀
    如何快速實(shí)現(xiàn)MySQL到<b class='flag-5'>Doris</b>的高容量<b class='flag-5'>數(shù)據(jù)</b>同步

    生成式推薦系統(tǒng)與京東聯(lián)盟廣告-綜述與應(yīng)用

    的日常生活,如何用LLM有效重塑RS是一個(gè)有前景的研究問題[20, 25]。 這篇文章從生成式推薦系統(tǒng)與京東聯(lián)盟廣告各自的背景出發(fā),引出二者結(jié)合的原因和方式。接著,對現(xiàn)有的流程和方法進(jìn)行了總結(jié)和梳理。最后,介紹了我們在聯(lián)盟廣告
    的頭像 發(fā)表于 06-13 15:41 ?694次閱讀
    生成式推薦系統(tǒng)與<b class='flag-5'>京東</b>聯(lián)盟<b class='flag-5'>廣告</b>-綜述與應(yīng)用

    啟明信息完成國產(chǎn)化Doris數(shù)據(jù)庫升級替代任務(wù)

    近日,隨著集團(tuán)公司監(jiān)控平臺(Elasticsearch集群)的下線,標(biāo)志著啟明信息正式完成國產(chǎn)化Doris數(shù)據(jù)庫升級替代任務(wù)。該項(xiàng)目既標(biāo)志著啟明信息信創(chuàng)升級替代邁入新臺階,同時(shí)也標(biāo)志著在Doris應(yīng)用領(lǐng)域取得自主研發(fā)新進(jìn)展。
    的頭像 發(fā)表于 09-20 09:33 ?2093次閱讀

    大模型時(shí)代下的新一代廣告系統(tǒng)

    沿的深度學(xué)習(xí)等算法技術(shù),創(chuàng)新并應(yīng)用到業(yè)務(wù)實(shí)踐中,賦能千萬商家和數(shù)億消費(fèi)者的消費(fèi)連接,不斷拓展中國乃至全世界的數(shù)字經(jīng)濟(jì)邊界。 在這里,你將與各業(yè)務(wù)、產(chǎn)品、工程團(tuán)隊(duì)緊密合作,深入京東億量級的數(shù)據(jù)與豐富的
    的頭像 發(fā)表于 09-20 14:40 ?434次閱讀
    大模型時(shí)代下的新一代<b class='flag-5'>廣告</b>系統(tǒng)