精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

ClickHouse 存算分離改造:小紅書自研云原生數(shù)據(jù)倉庫實踐

云計算 云原生
在保持 ClickHouse 原有超高性能的基礎(chǔ)上,我們對其進行深度的云原生改造,實現(xiàn)了計算和存儲層的彈性擴縮容能力,從而有效減輕運維負(fù)擔(dān)并降低成本。

ClickHouse 作為業(yè)界性能最強大的 OLAP 系統(tǒng),在小紅書內(nèi)部被廣泛應(yīng)用于廣告、社區(qū)、直播和電商等多個業(yè)務(wù)領(lǐng)域。然而,原生 ClickHouse 的 MPP 架構(gòu)在運維成本、彈性擴展和故障恢復(fù)方面存在較大局限性。為應(yīng)對挑戰(zhàn),小紅書數(shù)據(jù)流團隊基于開源 ClickHouse 自主研發(fā)了云原生實時數(shù)據(jù)倉庫 RED ClickHouse(以下簡稱“REDck”)。

在保持 ClickHouse 原有超高性能的基礎(chǔ)上,我們對其進行深度的云原生改造,實現(xiàn)了計算和存儲層的彈性擴縮容能力,從而有效減輕運維負(fù)擔(dān)并降低成本。REDck 具備支持 PB 級別數(shù)據(jù)的用戶交互式分析能力,能夠靈活滿足各類數(shù)據(jù)分析需求,以滿足小紅書日益增長的業(yè)務(wù)和數(shù)據(jù)分析需求。

目前,REDck 已成功在公司電商、廣告、社區(qū)、直播等 10+ 個業(yè)務(wù)場景上落地,總存儲規(guī)模達(dá)到 30+PB。它在降本增效方面取得顯著成效,特別是在實驗平臺和用戶行為分析平臺等典型場景中。以實驗平臺為例,在過去 2 年里,實驗平臺的數(shù)據(jù)存儲周期從 2 個月增長到 2 年,實驗指標(biāo)數(shù)量和分析場景也增長 10 倍以上。在如此快速的業(yè)務(wù)增長下,REDck 為實驗平臺提供了 99.9% 的可用性保障,其強大的可擴展性成為了業(yè)務(wù)擴展的有力支撐。

1、背景介紹

1.1 小紅書實時 OLAP 的發(fā)展

小紅書從誕生之日起,整個基建體系全部搭建在公有云之上,是云上的原住民。

圖片

引入實時 OLAP 之前的系統(tǒng)架構(gòu)

如上圖所示,小紅書的云原生大數(shù)據(jù)架構(gòu)體系,自上而下分別是應(yīng)用層、計算引擎層、計算資源層、數(shù)據(jù)層和存儲層。

● 存儲層核心是各大云廠商提供的對象存儲服務(wù),數(shù)據(jù)層采用通用的數(shù)據(jù)格式如 Parquet、ORC、Avro 等,并通過 Hive Metastore 提供統(tǒng)一的元信息服務(wù)。

● 在計算層,小紅書利用 Kubernetes、YARN 等計算資源框架提供資源池化和彈性擴展能力。

● 在計算引擎層,借助 Spark、Flink 等技術(shù)實現(xiàn)離線和實時 ETL 鏈路,并通過 Presto、SparkSQL 等工具對外提供離線報表和數(shù)據(jù)分析功能。

這種典型的云原生架構(gòu)為小紅書的數(shù)據(jù)處理提供了高度的靈活性和可擴展性。然而,在此架構(gòu)體系中,實時 OLAP 引擎的缺失限制了小紅書數(shù)據(jù)分析業(yè)務(wù)的發(fā)展;亟需引入擁有強大分析性能的實時 OLAP 引擎,以滿足不斷增長的數(shù)據(jù)分析需求。

圖片

引入實時OLAP之后的系統(tǒng)架構(gòu)

ClickHouse 作為一款高性能的實時 OLAP 數(shù)據(jù)庫,以其出色的極致性能、快速穩(wěn)定的更新迭代、積極響應(yīng)的開源社區(qū)等優(yōu)勢,受到各大公司的青睞。為了實現(xiàn)更快速的查詢和分析,小紅書數(shù)據(jù)流團隊為公司的實驗平臺構(gòu)建了 ClickHouse 集群。

1.2 面臨的問題

在初期階段 ClickHouse 展示了出色的性能,具備極快的查詢響應(yīng)速度,提供了靈活性和實時性,為小紅書的數(shù)據(jù)分析服務(wù)提供了更強大的 Ad-Hoc 分析能力。但隨著數(shù)據(jù)的累積,集群規(guī)模不斷膨脹,現(xiàn)有的實時 OLAP 系統(tǒng)在使用中遇到以下問題:

● 彈性擴展困難

隨著小紅書業(yè)務(wù)的快速發(fā)展,擴容成為團隊頻繁進行的運維操作。ClickHouse 采用 Share-Nothing 架構(gòu), 每個節(jié)點的計算和存儲資源強綁定,導(dǎo)致集群擴容受限于機器的調(diào)度周期。同時,擴容過程中會引入以周甚至以月為單位的數(shù)據(jù)遷移工作,對用戶的查詢產(chǎn)生影響,包括穩(wěn)定性和一致性問題。

● 資源利用率低

ClickHouse 通過多副本機制來提高整體的可靠性,但也導(dǎo)致資源幾何倍增。由于存儲和計算比例失調(diào), 在大多數(shù)場景下,數(shù)據(jù)存儲量的需求遠(yuǎn)大于計算需求,卻因為存算綁定而造成算力嚴(yán)重浪費。此外,許多業(yè)務(wù)存在明顯的波峰和波谷,缺乏彈性擴展能力導(dǎo)致嚴(yán)重的資源冗余。

● 穩(wěn)定性問題

ClickHouse 在資源隔離能力方面較弱,容易引發(fā)用戶查詢體驗的不穩(wěn)定性問題。在查詢高峰期,資源緊張會導(dǎo)致查詢失敗率和查詢時延顯著增加。另外,ClickHouse 的多副本機制重度依賴 Zookeeper,當(dāng)集群規(guī)模達(dá)到一定程度時,Zookeeper 的故障頻率增高,限制了集群的擴展能力。

● 數(shù)據(jù)同步問題

ClickHouse 一直被用戶詬病的問題就是缺乏成熟的分布式事務(wù)系統(tǒng),數(shù)據(jù)同步時經(jīng)常出現(xiàn)數(shù)據(jù)不一致的現(xiàn)象。

● 可維護性問題

ClickHouse 分布式表和底層復(fù)制表模式大大增加了表管理的難度,同時缺少必要的分布式管理功能,如節(jié)點加入、節(jié)點退出和副本均衡等,使得一旦集群數(shù)量變多,維護代價巨大。

基于上述原因,社區(qū)開源版的 ClickHouse 難以滿足公司在廣告、社區(qū)、直播、電商等業(yè)務(wù)需求方面的大規(guī)模應(yīng)用。解決集群岌岌可危的存儲上限和運維等問題,對團隊來說迫在眉睫。

1.3 解決方案選型

方案1:集群擴容

集群擴容是一種常見解決存儲瓶頸問題的方案。然而,社區(qū)開源版的 ClickHouse 沒有內(nèi)置支持自動平衡數(shù)據(jù)負(fù)載的功能,因此新加入的節(jié)點需要手動平衡負(fù)載,并同步其他集群的表結(jié)構(gòu)。此外,擴容無法真正地解決海量數(shù)據(jù)業(yè)務(wù)的挑戰(zhàn),最終仍需要添加 TTL 來刪除歷史數(shù)據(jù)。同時,擴容后的集群在可用性方面存在風(fēng)險,需要投入雙倍機器資源以避免單點故障導(dǎo)致的數(shù)據(jù)丟失,增加了成本和復(fù)雜性。

綜上,集群擴容方案不僅大大增加了運維難度,而且未能從根本上解決存儲瓶頸問題。存儲問題依然是一把時刻懸在團隊頭上的“達(dá)摩克利斯之劍“。

方案2:存算分離

另一個方案則是更困難的路,即自研云原生實時數(shù)倉。盡管該方案面臨諸多挑戰(zhàn),如元信息中心化、存算分離改造、容器化等,需要團隊從運維能力轉(zhuǎn)向自主研發(fā),但它能從根本上解決擴展性問題。

在傳統(tǒng)數(shù)據(jù)庫系統(tǒng)中,存儲與計算通常強綁定,即共用相同機器資源。得益于當(dāng)下云原生技術(shù)的飛速發(fā)展,越來越多的數(shù)據(jù)庫系統(tǒng)選擇擁抱存算分離架構(gòu),將存儲層與計算層解耦,使得存儲資源和計算資源分別彈性擴展成為可能。存算分離架構(gòu)帶來諸多益處:首先,將數(shù)據(jù)存儲到云廠商提供的對象存儲中,使數(shù)據(jù)存儲擁有了近乎無限擴展的能力。其次,根據(jù)需求動態(tài)調(diào)整計算資源,滿足高頻實時計算的性能需求并控制成本。最后,在面對故障時,可以快速遷移和恢復(fù)外部數(shù)據(jù)存儲,從而極大提高數(shù)據(jù)的可靠性。

如今,云原生數(shù)據(jù)庫大多是基于存算分離架構(gòu)實現(xiàn),如 SnowFlake、Redshift、TiDB 等。可以說,存算分離已成為分布式數(shù)據(jù)庫的主流方向。

1.4 我們的選擇

最終我們選擇了正確但困難的道路,希望通過自研存算分離架構(gòu),從根本上解決實時 OLAP 引擎在擴容和運維方面的問題,更好地支撐小紅書分析業(yè)務(wù)的快速發(fā)展。自研使我們能快速響應(yīng)業(yè)務(wù)需求,并有利于成本控制。

基于社區(qū)開源版 ClickHouse,我們打造了基于對象存儲的存算分離版 Red ClickHouse,簡稱 REDck

2、云原生實時數(shù)倉設(shè)計與實現(xiàn)

圖片

云原生實時數(shù)倉整體設(shè)計圖

小紅書自研云原生分析型數(shù)據(jù)庫的整體設(shè)計圖,如上圖所示。REDck 具備在海量數(shù)據(jù)下提供秒級的實時復(fù)雜分析能力,在公司內(nèi)廣泛支撐了非常多的業(yè)務(wù)場景,如A/B測試分析、用戶行為分析和廣告用戶分群等。

2.1 存算分離架構(gòu)

REDck 的存算分離架構(gòu)如下圖,具體包括三層:

圖片

REDck 整體架構(gòu)圖

● 統(tǒng)一的元信息中心

在開源 ClickHouse中,元信息存儲在各個節(jié)點的本地磁盤目錄下,并通過讀取目錄列表構(gòu)建對應(yīng)的元信息。而 REDck 構(gòu)建的統(tǒng)一元信息服務(wù)是一個無狀態(tài)的中心化服務(wù),包括內(nèi)部存儲和外部存儲等多種存儲方式;內(nèi)部存儲模型選擇關(guān)系型數(shù)據(jù)庫(如 MySQL)或健值數(shù)據(jù)庫(如 Redis),外部存儲模式可以與 Hive 數(shù)倉以及 Iceberg 數(shù)據(jù)湖進行深度集成。

構(gòu)建統(tǒng)一元信息服務(wù)層的好處是集群整體信息可以集中掌握,而不是離散到各個機器節(jié)點上。集中化的信息管理能力使得數(shù)據(jù)庫引擎,更方便地實現(xiàn)存算分離和事務(wù)機制。目前每個集群擁有自己獨立的元信息服務(wù),未來可進一步實現(xiàn)多集群的元數(shù)據(jù)服務(wù),即元數(shù)據(jù)服務(wù)只有一份,可以多個集群共享。

● 計算層

以計算組為基本單位,每個計算組內(nèi)是一個多節(jié)點的分布式計算集群,用戶通過網(wǎng)關(guān)對計算倉庫進行訪問,無需關(guān)心底層的 Server Node 和 Worker Node 等細(xì)節(jié)信息。計算任務(wù)將由 Server Node 按需調(diào)度至 Worker Node 上執(zhí)行。在此之上集群還有 Master 角色負(fù)責(zé)管理協(xié)調(diào)集群中心狀態(tài)。得益于存算分離的實現(xiàn),集群能夠輕松進行橫向和縱向擴展。

● 存儲層

存儲層實現(xiàn)了分布式文件系統(tǒng)、對象存儲等多種低成本存儲方式,為數(shù)據(jù)庫提供高效、可擴展的存儲能力,以滿足海量數(shù)據(jù)處理需求。

2.2 統(tǒng)一元數(shù)據(jù)服務(wù)

將數(shù)據(jù)存儲在云上的對象存儲后,確保每個節(jié)點都能夠訪問數(shù)據(jù)的元信息是一項具有挑戰(zhàn)性的任務(wù)。在開源 ClickHouse 中,元信息來源于磁盤的目錄,通過讀取目錄列表構(gòu)建相應(yīng)的元信息。然而元信息分散在每個節(jié)點內(nèi)部,每個節(jié)點都有獨一無二的狀態(tài),當(dāng)有節(jié)點宕機時,整個集群就無法使用。為了實現(xiàn)每個節(jié)點共享統(tǒng)一的元數(shù)據(jù)信息并提高可靠性,REDck 引入了統(tǒng)一元信息庫和 Metastore 角色。Metastore 負(fù)責(zé)統(tǒng)一管理集群的元信息。每個計算節(jié)點啟動后,只需要訪問 Metastore 獲取最新的元信息即可。

統(tǒng)一元信息庫存儲分為內(nèi)部存儲外部存儲兩種方式,我們使用 MySQL 作為內(nèi)部存儲來存儲元數(shù)據(jù),并利用 MySQL 的事務(wù)特性確保整體一致性。Metastore 接管并維護整個集群的信息,使得集群無需再通過 Zookeeper 進行管理,從而解除了 Zookeeper 對 ClickHouse 的束縛。同時,對于元信息的存儲,我們使用內(nèi)部自研的 REDkv(類比開源 Redis)實現(xiàn)了一套文件系統(tǒng)映射,使集群完全脫離磁盤文件系統(tǒng)的限制,實現(xiàn)真正的云原生。在外部存儲方面,我們積極與 Hive 數(shù)倉以及 Iceberg 數(shù)據(jù)湖進行深度集成,使得 REDck 可以直接從外部存儲中讀取元信息。

Metastore 與 REDck 之間的通信流程如下圖所示,首先部署好的 MetaStore 會向注冊中心發(fā)送注冊請求,對服務(wù)進行注冊。當(dāng) REDck 集群部署好后,會向注冊中心請求進行服務(wù)發(fā)現(xiàn),并訪問發(fā)現(xiàn)的服務(wù)以獲取元數(shù)據(jù)信息。

圖片

統(tǒng)一元信息庫 Metastore 調(diào)用示意圖

2.3 對象存儲訪問優(yōu)化

對象存儲具有無限擴展、低成本、可靠性極高的特點。通過使用對象存儲來存儲數(shù)據(jù),我們能夠從根本上解決不斷增長的數(shù)據(jù)存儲需求,從此告別傳統(tǒng)數(shù)據(jù)存儲帶來的煩惱。對象存儲的可靠性使我們能夠摒棄副本機制,從而解決了副本一致性、資源浪費、Zookeeper 穩(wěn)定性等一系列棘手問題,為 REDck 節(jié)點的無狀態(tài)化提供了基礎(chǔ)。

但對象存儲也并不是十全十美,引入對象存儲之后,我們碰到了如下問題:

● 訪問速度:對象存儲的總吞吐上限理論上只受帶寬限制,但是單線程訪問速度較低,遠(yuǎn)低于磁盤。

● 延遲:目前對象存儲訪問主要通過 HTTP 協(xié)議,延遲較高(包括建立連接等操作的延遲可達(dá)到 20 毫秒級別),對部分小文件極其不友好。

● 穩(wěn)定性:如何減輕多家云廠商對象存儲穩(wěn)定性問題對計算層的影響。

對象存儲作為 REDck 的基石,它的性能問題將成為整個數(shù)據(jù)庫系統(tǒng)的瓶頸。為此,我們針對對象存儲的讀寫問題進行了以下優(yōu)化:

● 提升緩存機制:通過緩存機制提升對象存儲的訪問速度,從而實現(xiàn)查詢性能的百倍提升(詳見緩存策略)。針對非緩存的數(shù)據(jù),采用并行化手段提升數(shù)據(jù)下載速度,實現(xiàn)十倍的性能提升。

● 優(yōu)化查詢計算過程:通過查詢執(zhí)行計劃重排序、多線程自適應(yīng)優(yōu)化等手段,將 HTTP 延遲降低到用戶可以忽略的程度。

● 重構(gòu)訪問模塊:對對象存儲訪問模塊進行優(yōu)化和重構(gòu),添加數(shù)據(jù)檢查、超時檢測和失敗重試機制,提升訪問的穩(wěn)定性。

具體流程如下圖所示:

1.  客戶端將查詢發(fā)送至服務(wù)端,服務(wù)端根據(jù)查詢選擇需要讀取的 Parts,同時對 Parts 的 markRanges 進行重排序,使每個連接線程讀取相同 Part 的 Mark,減少連接次數(shù),從而降低 HTTP 延遲。

2.  將重排序后的 Ranges 傳給對應(yīng)的 Part 類,Part 根據(jù) Ranges 的大小,動態(tài)選擇下載方式(分為三種),可減少下載壓力。

a.  對于大型的 Part,采用多線程多段下載的方式,最后將多段合并成一個 Part。

b.  對于小型的 Part,采用先緩存到內(nèi)存,再下載到本地的方式。

c.  對于其他的 Part,選擇直接下載到本地的方式。

3.  服務(wù)端獲取到下載的 Part,并計算查詢結(jié)果,返回給客戶端。

圖片

對象存儲優(yōu)化示意圖

2.4 緩存優(yōu)化

對象存儲為我們實現(xiàn)存算分離提供了基礎(chǔ),但同時也帶來了查詢時必須從云上拉取而導(dǎo)致延遲的問題。盡管通過對象存儲的優(yōu)化手段解決了大部分場景下的拉取問題,但對于部分頻繁訪問的熱數(shù)據(jù),反復(fù)從云端拉取并不高效。為此我們提出了緩存策略,利用機器的磁盤用作對象存儲的緩存盤,為高頻查詢需求提供高性能保障。

圖片

多級緩存架構(gòu)

整個多級緩存架構(gòu)如圖所示:內(nèi)存緩存 -> 本地磁盤緩存 -> 分布式緩存。從上到下,緩存的性能由高到低,可用性和容量由低到高,分別適用于不同類型和熱度的數(shù)據(jù)。這種多級緩存架構(gòu)幫助我們以最少的成本為用戶提供極致的查詢性能體驗。針對數(shù)據(jù)的特征,我們提供了兩種緩存策略:

● 被動緩存:適用于不可預(yù)知的數(shù)據(jù),在用戶查詢時,臨時緩存對應(yīng)的數(shù)據(jù),以提高后續(xù)查詢的性能。

● 主動緩存:適用于可以預(yù)知會被頻繁訪問的數(shù)據(jù)。集群啟動后,系統(tǒng)會在后臺主動根據(jù)用戶設(shè)定的規(guī)則和用戶的查詢歷史,智能推算用戶今天可能會查詢的數(shù)據(jù),并將這些數(shù)據(jù)預(yù)先從對象存儲緩存到本地磁盤,用戶查詢時直接從本地讀取,性能與本地磁盤相當(dāng)。

同時,由于本地磁盤空間有限,我們提供了兩種緩存淘汰策略:LRU 和 Clock Sweep。為進一步優(yōu)化緩存清理的速度,我們在內(nèi)存中構(gòu)建了磁盤的 Catalog,以便快速篩選需要淘汰的緩存數(shù)據(jù)。

圖片

緩存策略示意圖

2.5 分布式任務(wù)調(diào)度

通過對象存儲和緩存策略,REDck 的集群節(jié)點能夠共享存儲在云廠商的數(shù)據(jù),從而減輕了本地磁盤的壓力,但同時帶來了任務(wù)執(zhí)行沖突的挑戰(zhàn)。這里的任務(wù)類型包括 Compaction、Mutation、Insert 以及緩存任務(wù)等。在原有架構(gòu)中,每個實例相互獨立,無需考慮任務(wù)調(diào)度沖突。而實現(xiàn)存算分離后,不同節(jié)點之間的任務(wù)調(diào)度需要進行規(guī)劃,實現(xiàn)有序調(diào)度,以避免沖突。這對我們有兩個核心挑戰(zhàn)點:

1.  如何統(tǒng)一調(diào)度全局的任務(wù)計劃;

2.  在集群擴縮容過程中,如何自動調(diào)整調(diào)度計劃,以確保沒有任務(wù)沖突。

為實現(xiàn)統(tǒng)一調(diào)度,我們引入了全局選舉唯一的 Master 角色,Master 指定特定的 Server 作為整表的全局任務(wù)協(xié)調(diào)者。該協(xié)調(diào)者根據(jù)預(yù)設(shè)的調(diào)度策略(例如按 bucket 進行調(diào)度),將不同的任務(wù)進行分配,以確保所有任務(wù)有序執(zhí)行。但在集群異常情況下,可能會出現(xiàn)腦裂、任務(wù)分配重復(fù)等問題,為了解決這些問題,我們在整個任務(wù)執(zhí)行的過程中增加了事務(wù)管理和異常檢測邏輯,以保證不會有任務(wù)沖突,維護數(shù)據(jù)準(zhǔn)確性。

圖片

分布式任務(wù)調(diào)度架構(gòu)圖

2.6 數(shù)據(jù)分桶

如前所述,為了實現(xiàn)分布式任務(wù)調(diào)度,我們引入一個全局選舉的 Master 角色。然而在執(zhí)行分配任務(wù)過程中,如果沒有合適的調(diào)度策略,數(shù)據(jù)分布可能過于分散,導(dǎo)致聚合和多表連接的性能下降,并經(jīng)常會伴隨機器內(nèi)存溢出(OOM)和計算傾斜等問題。為了解決這些問題,我們在 REDck 中引入了桶 (Bucket) 的概念。

桶是指將表或分區(qū)中指定列的值為 Key 進行 Hash,將其 Hash 到指定的桶中,例如實驗平臺中將用戶 ID 指定為 Bucket 劃分的 Key。通過數(shù)據(jù)分桶,我們獲得以下幾個優(yōu)化效果:

● 在單點查詢時,可以通過分桶鍵進行快速過濾,實現(xiàn)高速索引的功能,從而減少數(shù)據(jù)讀取量。

● 通過分桶優(yōu)化聚合和多表連接查詢的性能,避免數(shù)據(jù) Shuffle。

通過將數(shù)據(jù)按 Bucket 劃分,我們在任務(wù)調(diào)度過程中以 Bucket 為單位,靈活調(diào)度 Bucket 和節(jié)點之間的映射關(guān)系,為彈性擴縮容提供了基礎(chǔ)。

圖片

REDck Bucket 示意

2.7 分布式事務(wù)

經(jīng)過一系列優(yōu)化措施,如對象存儲的優(yōu)化、增加緩存策略、添加分布式任務(wù)調(diào)度、引入 Bucket 的概念等,REDck 的基本使用已經(jīng)比較穩(wěn)定。然而,在大規(guī)模部署集群后,我們發(fā)現(xiàn)從 Hive/Spark 導(dǎo)入數(shù)據(jù)到 ClickHouse 的過程中,由于不支持事務(wù)機制,經(jīng)常會發(fā)生寫入重復(fù)數(shù)據(jù)的問題。這是由于開源的 ClickHouse 本身缺少成熟的事務(wù)機制,也一直是眾多用戶所詬病的點。雖然 ClickHouse 內(nèi)有一套 Transaction 機制,但僅適用于單機模式,無法應(yīng)用于我們部屬的分布式集群。因此,為了實現(xiàn) REDck 的 Exactly-Once 功能,減少數(shù)據(jù)導(dǎo)入過程中的失敗和數(shù)據(jù)不一致,提高系統(tǒng)導(dǎo)數(shù)的穩(wěn)定性,帶來的收益是很可觀的。

基于統(tǒng)一管理的元數(shù)據(jù)中心,我們實現(xiàn)了 REDck 的事務(wù)機制,對數(shù)據(jù)攝入進行事務(wù)管理,并通過 Metastore 角色統(tǒng)一管理全局的數(shù)據(jù)可見性,從而實現(xiàn)兩階段事務(wù)提交功能。這一改進使得我們能夠確保數(shù)據(jù)寫入的一致性和可靠性,避免重復(fù)數(shù)據(jù)的產(chǎn)生。

圖片

REDck 兩階段提交

在實現(xiàn)了 REDck 的兩階段提交之后,我們進一步和 Flink 的 Checkpoint 機制打通,實現(xiàn)了Flink -> REDck 數(shù)據(jù)鏈路的 Exactly-Once 語義,提高數(shù)據(jù)處理的準(zhǔn)確性和可靠性。

2.8 離線同步鏈路優(yōu)化

在離線數(shù)據(jù)攝入方面,我們使用 Spark 離線導(dǎo)入方式代替了原有的 Flink 小批導(dǎo)入方式,從而降低導(dǎo)入鏈路的復(fù)雜度,提升導(dǎo)數(shù)的效率,并消除由額外的 Compaction 工作引入的寫放大問題。同時,該離線導(dǎo)入方式天然支持 insert overwrite 語義,用戶不會讀取到正在導(dǎo)入的的數(shù)據(jù),提供了更好的查詢體驗。

3、落地效果

經(jīng)兩年多的發(fā)展,REDck 已全面上線,覆蓋公司廣告、電商、直播等多個領(lǐng)域的 10+ 條業(yè)務(wù)線,取得了顯著效果:

● 降低成本:通過存算分離改造,解決了實驗平臺集群窘迫資源上限的問題。改造前,集群的存儲空間僅為 TB 級別,改造后,理論上可以存儲無限的數(shù)據(jù),實際上我們存儲了 PB 級別的數(shù)據(jù),其中最大的計算組規(guī)模達(dá)到萬 Core 規(guī)模,單個集群最大存儲量達(dá)十 PB。此外,用戶的查詢時間范圍也從以月為單位增長到以年為單位。相比于原本的 ClickHouse,REDck 單位 CPU 能處理的數(shù)據(jù)量增長了 10 倍之多,大幅度減少了 CPU 資源浪費。同時基于存算分離的架構(gòu),我們節(jié)省了多副本機制帶來的成本壓力,單位存儲成本也降低了 10 倍之多。

● 提高效率:在寫入性能方面,通過使用 Spark 對離線鏈路進行全面改造,離線導(dǎo)入性能提升了一倍。在查詢性能方面,盡管引入了分布式元數(shù)據(jù)服務(wù)和性能較慢的對象存儲,但 REDck 通過對象存儲讀優(yōu)化多級緩存預(yù)熱等技術(shù)手段,優(yōu)化單機查詢性能,查詢性能媲美原生ClickHouse。同時存算分離帶來了彈性擴展方面的優(yōu)勢,可以在業(yè)務(wù)高峰期進行分鐘級別的動態(tài)擴容,用戶再也不用擔(dān)心高峰期的查詢擁堵問題。

● 高可用性:摒棄原生 ClickHouse 冗余且難以管理的多副本模式,REDck 依托對象存儲,通過多種優(yōu)化手段使數(shù)據(jù)可靠性達(dá)到 99.9%。實現(xiàn)存算分離后,數(shù)據(jù)存儲在云端,單個節(jié)點的宕機不會影響整個集群的正常執(zhí)行,整體的可用性能達(dá)到 99.9%

● 可擴展性:REDck 的云原生特性顯著降低了集群擴展的運維壓力,集群擴容的時間周期由周級別降低為分鐘級別。這得益于通過統(tǒng)一的元信息服務(wù)消除了 Zookeeper 這個明顯的中心化瓶頸,橫向無限擴展虛擬倉庫以支持不同業(yè)務(wù)的環(huán)境部署,縱向可隨需擴展虛擬倉庫的節(jié)點以增強抗壓能力,實現(xiàn)負(fù)載均衡。目前,最大虛擬倉庫可以擴展到 100+ 節(jié)點規(guī)模。此外,REDck 采用統(tǒng)一的表引擎,將分布式表、Zookeeper、Replica 等概念對用戶屏蔽,使運維管理更加便捷。

4、作者信息

白樺

小紅書數(shù)據(jù)平臺部 OLAP 研發(fā)專家,負(fù)責(zé)小紅書 OLAP 方向的架構(gòu)和研發(fā)工作,主要包括云原生實時數(shù)倉、湖倉一體化方向的研發(fā)與落地,有豐富的 OLAP 架構(gòu)和實踐經(jīng)驗。

龐博

小紅書數(shù)據(jù)平臺部 LakeHouse 團隊負(fù)責(zé)人,負(fù)責(zé) OLAP 及數(shù)據(jù)湖方向。

銅須

小紅書數(shù)據(jù)平臺部 OLAP 研發(fā),負(fù)責(zé)小紅書 OLAP 方向的研發(fā)工作,主要包括 REDck 的研發(fā)與落地。

責(zé)任編輯:龐桂玉 來源: 小紅書技術(shù)REDtech
相關(guān)推薦

2025-08-19 09:58:38

2025-08-19 09:05:26

2022-01-21 08:36:25

MPP架構(gòu)數(shù)據(jù)

2022-10-14 14:20:20

云原生數(shù)據(jù)倉庫

2020-05-14 16:11:20

阿里云

2022-09-02 07:39:15

存算存儲私有云

2021-06-03 14:34:15

數(shù)據(jù)倉庫計算存儲分離

2021-05-27 09:22:41

云計算數(shù)據(jù)科技

2025-09-29 05:00:00

2025-03-05 03:00:01

2022-10-25 18:02:31

大數(shù)據(jù)存算分離

2021-09-01 10:03:44

數(shù)據(jù)倉庫云數(shù)據(jù)倉庫數(shù)據(jù)庫

2020-12-13 20:08:32

云原生內(nèi)存數(shù)據(jù)庫

2022-07-05 07:46:25

數(shù)據(jù)倉庫運維智能化

2024-10-08 14:52:37

2011-07-04 13:18:45

服務(wù)器R680 G7數(shù)據(jù)倉庫

2021-09-28 10:42:41

華為云GaussDB

2023-05-16 15:27:31

2020-02-17 11:37:54

大數(shù)據(jù)數(shù)據(jù)倉庫技術(shù)
點贊
收藏

51CTO技術(shù)棧公眾號

欧美一区二区三区视频免费 | 国产精品va在线播放我和闺蜜| 人妻无码一区二区三区| 久久精品女人天堂av免费观看| 国产精品麻豆欧美日韩ww| 成人激情av| www毛片com| 亚洲激情五月| 精品一区二区三区四区| 亚洲一级片网站| av影视在线| 国产精品美女久久福利网站| 国产欧美在线一区二区| 影音先锋黄色网址| 日韩午夜高潮| 精品国偷自产在线| 亚洲av无码一区二区三区网址| 只有精品亚洲| 色综合久久综合中文综合网| 欧美 国产 精品| 欧美日韩国产中文字幕在线| 国产精品一二三在| 国产精品成人av在线| 国产一级在线观看视频| 国产精品精品国产一区二区| 日韩电影中文字幕| 香蕉视频在线观看黄| 性高爱久久久久久久久| 亚洲成人激情av| 欧洲美女和动交zoz0z| 神马亚洲视频| proumb性欧美在线观看| 91久热免费在线视频| 波多野结衣毛片| 国产欧美日韩一区二区三区在线| 久久中文久久字幕| 免费看黄色的视频| 欧美wwwsss9999| 欧美v亚洲v综合ⅴ国产v| 亚洲xxx在线观看| 欧美精品资源| 一本久久精品一区二区| 草草视频在线免费观看| av网站在线看| 亚洲人午夜精品天堂一二香蕉| 日韩中文字幕一区| 免费福利在线视频| 久久亚洲一级片| 国产一区免费在线| 天天操天天插天天射| 成人久久视频在线观看| 99在线高清视频在线播放| 国产毛片毛片毛片毛片毛片| 久久国产婷婷国产香蕉| 国产精品入口免费视| 中文字幕免费视频观看| 首页亚洲欧美制服丝腿| 日韩69视频在线观看| 黄色av一级片| 日韩精品一卡二卡三卡四卡无卡| 国产成人精品电影久久久| 黄色片视频免费| 美女精品在线观看| 国产成人啪精品视频免费网| 波多野结衣日韩| 日韩成人一区二区| 国产精品免费一区| 中文字幕av网站| 久久机这里只有精品| 亚洲aⅴ男人的天堂在线观看| 国产精品视频a| 国产精品69毛片高清亚洲| 96sao精品视频在线观看| 99在线精品视频免费观看20| 国产精品资源网站| 99久久一区三区四区免费| 国产自产一区二区| 99久久国产综合精品麻豆| 蜜桃传媒一区二区| 成黄免费在线| 亚洲乱码国产乱码精品精98午夜 | 亚洲伦理一区| 欧美在线观看网站| 在线观看中文字幕码| 国产乱国产乱300精品| 国产伦精品一区二区三区四区视频 | 亚洲夜夜综合| 岛国精品视频在线播放| 午夜国产一区二区三区| 国产成年精品| 亚洲精品成人av| 日韩一级片在线免费观看| 亚洲va在线| 国产91|九色| 亚洲一级av毛片| 成人av网站在线观看免费| 欧美日韩免费高清| 菠萝蜜视频国产在线播放| 天天色 色综合| 亚洲视频第二页| 老汉色老汉首页av亚洲| 色一情一乱一区二区| 日本五十路女优| 免播放器亚洲一区| 国产女主播一区二区三区| aaa在线观看| 午夜精品福利在线| 日韩中文字幕a| 亚洲人和日本人hd| 欧美精品在线观看91| 国产综合精品视频| 国产精品综合二区| 亚洲精品视频一二三| 1234区中文字幕在线观看| 欧美乱妇20p| 蜜桃精品一区二区| 99精品视频在线| 国产va免费精品高清在线| 北条麻妃一二三区| 国产精品成人免费精品自在线观看| 欧美,日韩,国产在线| 国产精品一区二区美女视频免费看| 亚洲人高潮女人毛茸茸| 一区二区三区免费高清视频| 久久99日本精品| 欧美亚州在线观看| 草美女在线观看| 欧美一区二视频| 懂色av粉嫩av蜜臀av一区二区三区| 国产精品一页| 国产精品免费一区二区三区在线观看| 婷婷视频在线| 欧美在线观看一区| 一卡二卡三卡四卡| 夜夜嗨av一区二区三区网站四季av| 亚洲精品日韩av| 黄色免费在线观看| 欧美日韩在线精品一区二区三区激情 | 成人国产亚洲欧美成人综合网 | 国产成人免费观看| h片在线观看网站| 91精品视频网| 欧美一区二区三区观看| 男男成人高潮片免费网站| 久久综合久久久| 在线观看v片| 亚洲精品一二区| 极品国产91在线网站| 久久蜜桃av一区二区天堂| 国内性生活视频| 日韩精品免费一区二区三区竹菊 | 国产成人精品免费网站| 法国空姐在线观看免费| 日韩激情精品| 欧美激情视频免费观看| 亚洲免费一级片| 亚洲一二三区不卡| 亚洲天堂av网站| 亚洲毛片播放| 欧美在线日韩精品| 视频一区在线免费看| 伊人男人综合视频网| 97精品人妻一区二区三区香蕉| 国产精品传媒在线| 中文字幕第66页| 欧美日韩影院| 国产专区一区二区三区| 欧美xxx视频| 主播福利视频一区| 国产美女无遮挡永久免费| 亚洲欧美日韩国产手机在线 | 久热精品视频在线| 亚洲国产精品成人久久蜜臀| 亚洲成人中文在线| 美国黄色a级片| 男人操女人的视频在线观看欧美| 一区二区视频在线免费| 一区二区在线视频观看| 26uuu国产精品视频| aaa在线观看| 欧美本精品男人aⅴ天堂| 精品国产乱码一区二区| 国产欧美一区二区精品性色超碰| 国产乱女淫av麻豆国产| 激情欧美亚洲| 台湾成人av| av日韩在线播放| 国产精品人人做人人爽| av网站导航在线观看免费| 日韩av在线免费观看| 中文字幕一区二区人妻痴汉电车 | 一区二区在线视频| 国产男男gay网站| 欧美视频一二三| 性欧美疯狂猛交69hd| 波多野结衣在线一区| www.精品在线| 亚洲福利久久| 在线视频亚洲自拍| 日韩精品社区| 91视频88av| 中文字幕av一区二区三区佐山爱| 欧美久久精品一级黑人c片| 三级国产在线观看| 欧美一区日本一区韩国一区| 99re国产在线| 午夜久久久久久久久久一区二区| 日本黄区免费视频观看| 92国产精品观看| 日韩精品视频网址| 日本中文在线一区| 久艹视频在线免费观看| 欧美成人激情| 日韩精品久久久| 久久精品色播| 亚洲xxx自由成熟| 国产精品第一国产精品| 91大神在线播放精品| 暖暖在线中文免费日本| 精品国产拍在线观看| 免费动漫网站在线观看| 亚洲精品白浆高清久久久久久| 国产精品永久久久久久久久久| 欧美性猛交xxxx偷拍洗澡| 久久久久亚洲天堂| 国产精品久久久久一区| 久久久久久国产精品无码| 丁香啪啪综合成人亚洲小说| 国产精品久久久久久久av福利| 日韩精品一区第一页| 精品一卡二卡三卡| 伊人久久大香线蕉综合热线| 成人在线免费观看网址| 99久久99久久精品国产片桃花| 色一情一乱一伦一区二区三区丨| 亚洲女娇小黑人粗硬| 狠狠色综合色区| 国产精品色呦| 国产精品三区www17con| 一区二区三区自拍视频| 99久热re在线精品996热视频| 91精品国产自产观看在线| 国产精品永久免费在线| 97欧美成人| 国产精品视频在线观看| 97精品国产99久久久久久免费| 国产精品视频公开费视频| 日韩不卡视频在线观看| 国产精品国产自产拍高清av水多| 韩国美女久久| 国产精品27p| 素人一区二区三区| 国产精品一区二区三区久久| 国产毛片精品久久| 国产日韩在线一区| 免费成人高清在线视频| 国产日韩在线播放| 国产日本亚洲| 高清视频在线观看一区| 美女视频免费精品| 欧美不卡福利| 欧美偷拍自拍| 国产日韩第一页| 欧美三级网页| 黄色国产一级视频| 午夜亚洲性色视频| 麻豆av免费在线| 久久精品国产亚洲一区二区三区| 搡的我好爽在线观看免费视频| 国产激情视频一区二区三区欧美| 第一页在线视频| 99精品久久只有精品| 亚洲综合色一区| 亚洲欧洲韩国日本视频| 国产精品成人久久| 欧美性猛交xxxx偷拍洗澡| 日本一区二区三区久久| 欧美一区二区三区婷婷月色| 日本人妻丰满熟妇久久久久久| 亚洲无av在线中文字幕| 国产在线高清理伦片a| 午夜精品一区二区三区在线| 偷拍精品精品一区二区三区| 成人写真视频福利网| 日韩理论电影中文字幕| 亚洲一二三区在线| 亚洲狠狠婷婷| 欧美在线aaa| 成年人国产精品| 国产视频123区| 亚洲国产精品一区二区www在线| 波多野结衣视频观看| 日韩免费看网站| 国产精品毛片一区二区三区四区| 久久综合电影一区| 日韩电影免费看| 亚洲中国色老太| 国产videos久久| 青青在线免费观看| 久久精品噜噜噜成人av农村| 欧美xxxxx精品| 中文字幕一区二区三区av| 在线观看中文字幕视频| 日韩一区二区三区视频在线| 国产一二三区在线视频| 欧美日韩国产成人在线观看| 蜜桃精品在线| 精品免费一区二区三区蜜桃| 亚洲午夜精品一区 二区 三区| 91传媒久久久| 成人h精品动漫一区二区三区| chinese全程对白| 色诱视频网站一区| 人人妻人人玩人人澡人人爽| 久久视频这里只有精品| 国产精品字幕| 久久天堂国产精品| 国内精品久久久久久久影视蜜臀| 国产成人黄色网址| 久久毛片高清国产| 99视频在线看| 精品国产乱子伦一区| 国产高清一区二区三区视频| 国产精品网红福利| 嫩草影视亚洲| 日韩精品视频一区二区在线观看| 成人高清视频免费观看| 亚洲国产精品免费在线观看| 欧美色精品在线视频| 大乳在线免费观看| 人妖精品videosex性欧美| 日韩av网站在线免费观看| xxxx18hd亚洲hd捆绑| 国产成人日日夜夜| 男女做暖暖视频| 欧美一区二区大片| 国产三区在线观看| 成人欧美一区二区三区黑人孕妇 | 欧美美女福利视频| 日韩一区二区三区高清| 日韩精品三区四区| 最近中文字幕免费| 91福利在线导航| 国产人成在线观看| 国产精品久久久久77777| 欧美老女人另类| 三级在线视频观看| 国产精品污网站| 91亚洲欧美激情| 久久影视电视剧免费网站| 懂色av色香蕉一区二区蜜桃| 日韩视频在线观看视频| 国产成人午夜99999| 精品一区二区三区人妻| 精品国产伦一区二区三区观看体验| 成人性生交大片免费看网站| 精品不卡一区二区三区| 亚洲一区自拍| 久久av无码精品人妻系列试探| 在线免费视频一区二区| av在线电影播放| 91精品啪在线观看麻豆免费| 午夜精品影院| yy6080午夜| 91久久奴性调教| 在线免费观看黄| 91av一区二区三区| 亚洲麻豆av| 一级在线观看视频| 91精品国产高清一区二区三区| 国产一线二线在线观看| 久久青青草综合| 久久国产欧美日韩精品| 欧美成人aaa片一区国产精品| 337p日本欧洲亚洲大胆色噜噜| 丁香六月综合| 久久久成人精品一区二区三区| 国产精品538一区二区在线| 中文字幕亚洲精品在线| 一区二区三区黄色| 精品一区二区三区四区五区| 日本a视频在线观看| 日本一区二区在线不卡| 亚洲av无码乱码国产精品| 欧美一区二区三区四区在线| 91视频综合| 国产精品一级黄片| 欧美理论片在线| 牛牛精品一区二区| 一区二区91美女张开腿让人桶| 成人激情午夜影院| 亚洲特级黄色片| 51午夜精品视频| 自由日本语亚洲人高潮| 国产成人av一区二区三区不卡| 日韩一区二区精品| 台湾佬中文娱乐久久久| 国产91沈先生在线播放| 国产欧美一区二区精品婷婷| 黑人操亚洲女人|