阿里云 ClickHouse 企業(yè)版: 新一代云原生 Serverless 實時數(shù)倉
阿里云 ClickHouse 企業(yè)版是一款新一代云原生 Serverless 實時數(shù)倉產(chǎn)品,基于 ClickHouse 開源技術(shù)構(gòu)建,旨在提供實時數(shù)據(jù)分析解決方案。ClickHouse 企業(yè)版通過存算分離、秒級擴容、Serverless 彈性等技術(shù)手段,降低了資源成本,提高了查詢性能和效率。同時,該產(chǎn)品支持跨 AZ 高可用和低成本存儲,保證了數(shù)據(jù)的可靠性和經(jīng)濟性。此外,ClickHouse 企業(yè)版還大幅提升了易用性,無需分布式表引擎依賴,兼容社區(qū)語法及引擎,降低了用戶的運維成本。本次分享將帶領(lǐng)大家深入了解 ClickHouse 企業(yè)版的各項功能和優(yōu)勢,從而更好地滿足實時數(shù)據(jù)分析的需求。
一、實時數(shù)倉&ClickHouse 企業(yè)版產(chǎn)品背景
在企業(yè)運營過程中,大量的業(yè)務(wù)數(shù)據(jù)被不斷產(chǎn)生并積累。這些數(shù)據(jù)對于企業(yè)來說是其寶貴的資產(chǎn),蘊含著巨大的價值。然而,根據(jù) Forest 市場調(diào)研報告,數(shù)據(jù)的價值并非永恒不變,而是隨著時間的推移逐漸減弱。這意味著,為了充分發(fā)掘和利用這些數(shù)據(jù)的價值,企業(yè)需要更加實時地對其進行分析。
傳統(tǒng)的批量 BI 分析方式往往只能提供小時級、日級或月級的數(shù)據(jù)處理能力,這使得企業(yè)只能被動地分析歷史數(shù)據(jù),限制了數(shù)據(jù)價值的挖掘。相比之下,實時數(shù)據(jù)分析能夠提供秒級、分鐘級甚至更高級別的數(shù)據(jù)洞察,為企業(yè)帶來更大的幫助。通過實時數(shù)據(jù)分析,企業(yè)可以更加主動地進行業(yè)務(wù)決策和業(yè)務(wù)分析,以應(yīng)對市場的快速變化。
在這個過程中,實時數(shù)倉成為了企業(yè)不可或缺的核心技術(shù)依賴。實時數(shù)倉能夠?qū)崟r地收集、處理和分析數(shù)據(jù),為企業(yè)提供即時的數(shù)據(jù)洞察和決策支持。隨著企業(yè)對實時數(shù)據(jù)分析需求的增加,實時數(shù)倉的重要性日益凸顯。
為了滿足這一需求,ClickHouse 企業(yè)版應(yīng)運而生。作為一款高性能、可擴展的列式數(shù)據(jù)庫技術(shù),ClickHouse 以其卓越的性能和擴展性,成為了企業(yè)構(gòu)建實時數(shù)倉的理想選擇。
ClickHouse 項目于 2009 年建立,其初衷是為了支持超大規(guī)模的 Web 分析場景。2016 年,ClickHouse 在 Apache 2.0 協(xié)議下發(fā)布開源,使得更多的開發(fā)者和企業(yè)能夠受益于其高性能、列式存儲等優(yōu)勢。隨著其知名度的不斷提升和廣泛應(yīng)用,2021 年,ClickHouse Inc. 商業(yè)化公司成立,由原創(chuàng)的研發(fā)團隊領(lǐng)導。不僅支持開源社區(qū)的發(fā)展,還開始提供 ClickHouse 的商業(yè)化云服務(wù)。
ClickHouse 的企業(yè)版基于開源社區(qū)版本進行了更多的優(yōu)化和增強,解決了社區(qū)版本中存在的一些問題,并提供了更加穩(wěn)定、可靠和高效的服務(wù)。通過企業(yè)版,企業(yè)可以更加輕松地構(gòu)建實時數(shù)倉,實現(xiàn)數(shù)據(jù)的實時收集、處理和分析,從而為企業(yè)帶來更大的業(yè)務(wù)價值。
在上述背景下,阿里云與 ClickHouse 在 2023 年簽署了一項重要的戰(zhàn)略合作,希望將企業(yè)版的核心能力引入亞太地區(qū),特別是為中國客戶提供支持。通過與阿里云的合作,ClickHouse 企業(yè)版將面向阿里云的客戶開放使用,以滿足他們對高性能實時數(shù)據(jù)分析的需求。這一戰(zhàn)略合作將推動阿里云在實時數(shù)據(jù)處理和分析領(lǐng)域的進一步發(fā)展,同時也為 ClickHouse 在全球范圍內(nèi)的推廣和應(yīng)用注入了新的動力。
二、ClickHouse 企業(yè)版核心特性能力介紹
ClickHouse 企業(yè)版是一款高性能的云原生 Serverless 實時數(shù)倉產(chǎn)品。它具備四大核心特點:
- 云原生存儲與計算分離:ClickHouse 企業(yè)版采用云原生架構(gòu),實現(xiàn)存儲與計算的分離,這意味著存儲和計算資源可以獨立進行秒級擴容,以滿足業(yè)務(wù)對實時數(shù)據(jù)處理能力的彈性需求。
- Serverless 按需彈性伸縮:在阿里云的深度優(yōu)化下,ClickHouse 企業(yè)版支持 Serverless 按需彈性伸縮。用戶無需預(yù)先配置大量資源,而是可以根據(jù)實際業(yè)務(wù)需求快速調(diào)整計算資源,從而降低整體資源使用成本高達 30% 以上。
- 性能優(yōu)化:提供了 Cache 和并行查詢能力,將復(fù)雜 SQL 查詢的性能提升一倍以上,滿足用戶對高性能數(shù)據(jù)分析的需求。
- 語法兼容與易用性:為了確保用戶能夠輕松遷移并使用企業(yè)版,ClickHouse 企業(yè)版的語法完全兼容社區(qū)版,并且去除了長期存在問題的分布式表。這使得用戶在使用企業(yè)版時無需進行大量修改,降低了學習和使用成本,提高了易用性。
接下來將展開介紹 ClickHouse 企業(yè)版的核心能力及其實現(xiàn)。
1. 存算分離&秒級擴容
在 ClickHouse 企業(yè)版中,針對傳統(tǒng)開源社區(qū)版存在的 MPP 架構(gòu)限制進行了優(yōu)化。在傳統(tǒng)架構(gòu)中,數(shù)據(jù)通過分桶和 shard 邏輯進行存儲,導致存儲與計算資源緊密綁定。這種綁定使得單一 shard 上的計算和存儲資源在達到瓶頸時,只能通過水平擴容來解決問題,這需要同時增加計算和存儲資源,可能導致資源浪費。
為了打破這一限制,在 ClickHouse 企業(yè)版中引入了全新的 SharedMergeTree 云原生引擎系列。這一引擎基于云原生內(nèi)核,實現(xiàn)了存儲與計算的解耦。在此架構(gòu)下,存儲和計算可以獨立進行擴容。存儲方面,采用共享存儲模式,類似于阿里云的 OSS 對象存儲,用戶可以根據(jù)需求靈活使用存儲資源,無需預(yù)先購買大量資源。
在計算資源方面,由于 SharedMergeTree 引擎的實現(xiàn)對計算節(jié)點完全無狀態(tài),因此在集群進行水平擴展時,無需進行數(shù)據(jù)遷移。每個節(jié)點都可以并行參與 SQL 請求的處理,大大提高了擴展效率,使得擴展過程達到秒級水平。
通過存算分離與秒級擴容的實現(xiàn),ClickHouse 企業(yè)版為用戶提供了更加靈活、高效的數(shù)據(jù)處理能力,滿足了實時數(shù)據(jù)分析的迫切需求。
2. Serverless 按需彈性
在 ClickHouse 企業(yè)版中,基于阿里云深度改造了 Serverless 特性,實現(xiàn)了存儲和計算資源的全面 Serverless 化。具體來說,用 ClickHouseKeeper 替換了社區(qū)版的 ZooKeeper,并實現(xiàn)了基于 Keeper 負載的自動彈性伸縮。當 Keeper 資源遇到瓶頸或計算能力閑置時,系統(tǒng)能夠自動進行彈性調(diào)整,確保資源的充分利用。
此外,還將計算資源定義為 CCU 資源,并引入了一套智能的負載管理機制。根據(jù)集群的整體負載情況,系統(tǒng)能夠自動進行 CCU 資源的擴展和縮減。當計算資源達到峰值時,系統(tǒng)會根據(jù)預(yù)設(shè)的上限進行資源成本控制;而在資源低谷時,系統(tǒng)則會主動進行集群縮容,提高資源使用效率。通過這一機制,能夠幫助用戶實現(xiàn)約 25% 的資源使用縮減,同時確保存儲資源的按需使用(阿里云 OSS),從而為用戶節(jié)省 30% 以上的成本。
值得一提的是,ClickHouse 企業(yè)版采用了高可用架構(gòu),每個節(jié)點都是無狀態(tài)的,這意味著節(jié)點之間具有相互高可用的特性。與傳統(tǒng)的通過副本支撐高可用的方式相比,企業(yè)版無需依賴額外的副本,從而降低了資源消耗。針對雙副本場景,企業(yè)版能夠降低超過 50% 的資源使用成本,顯著提升了資源的使用效率。
3. 性能提升
ClickHouse 企業(yè)版展現(xiàn)出了極高的讀寫能力,這主要得益于其精心設(shè)計的兩層技術(shù)。首先,考慮到實際數(shù)據(jù)存儲依賴于對象存儲(如阿里云 OSS),這不可避免地涉及到遠程網(wǎng)絡(luò)訪問,導致數(shù)據(jù)存儲和查詢性能無法直接媲美本地存儲。為了彌補這一差距,企業(yè)版在計算層增加了本地緩存(Cache)機制。每個計算節(jié)點都配備了本地緩存,用于存儲讀請求的數(shù)據(jù)。通過這種方式,數(shù)據(jù)可以被緩存至本地,顯著提升查詢效率。
根據(jù)在 TB 級 CDH 上的測試結(jié)果顯示,通過本地緩存加速,整體查詢效率相較于無緩存情況可提高 100% 至 400%。對于 OLAP 場景,更關(guān)鍵的性能瓶頸往往不在于網(wǎng)絡(luò)帶寬,而是在于 IO 帶寬。因此,為 OSS 對象讀取配置了高帶寬,確保 IO 不會成為 OLAP 場景中數(shù)據(jù)分析的瓶頸。
ClickHouse 企業(yè)版還引入了并行查詢技術(shù)。對于大型查詢,系統(tǒng)能夠智能地將請求分發(fā)到多個節(jié)點,進行并行數(shù)據(jù)處理。多個節(jié)點之間協(xié)同工作,分別讀取和分析不同的數(shù)據(jù)部分,從而實現(xiàn)對復(fù)雜 SQL 的并行處理能力,整體提升查詢性能。在實際測試中,并行 Replica 對復(fù)雜 SQL 的性能提升可達一倍以上。
另外,還通過提高緩存命中率,進一步提升查詢性能。目前正在研發(fā)的“distribute cache”功能,將進一步解耦計算層的緩存與純計算資源。通過這種方式,各個節(jié)點將像共享存儲一樣共享緩存,確保節(jié)點間的緩存數(shù)據(jù)完全一致。這樣,無論哪個節(jié)點接收到請求,都可以訪問到相同的緩存數(shù)據(jù),從而顯著提升整個集群的緩存命中率。
4. 跨 AZ 高可用&低成本
同時,ClickHouse 企業(yè)版提供了跨 AZ(可用區(qū))的高可用性能力。在計算層,采用三可用區(qū)的部署策略來支持高可用性。具體來說,Keeper(分布式協(xié)調(diào)服務(wù)組件)會在三個可用區(qū)分別部署,以確保選舉協(xié)議得到有力支持。對于 Server 層(即計算資源),會在三個可用區(qū)中選擇兩個進行高可用性部署。對于存儲層,同樣會在三個可用區(qū)中選擇兩個進行高可用性存儲支持。
這種部署策略確保了計算資源和存儲資源在同城范圍內(nèi)實現(xiàn)高可用性,而無需像開源社區(qū)中那樣依賴于一對一的副本和復(fù)制方式進行資源消耗。因此,高可用性方案能夠降低 50% 的整體成本。
5. 易用性大幅提升
易用性也是眾多客戶非常關(guān)注的一點。在將開源社區(qū)版遷移到企業(yè)版的過程中進行了精心的適配和優(yōu)化。首先,在 DML(數(shù)據(jù)操縱語言)和 DDL(數(shù)據(jù)定義語言)語法層面,完全兼容了社區(qū)版的引擎。這意味著無需更改任何 SQL 語法,即可將社區(qū)版的 DDL 和 DML 語句無縫遷移到企業(yè)版中。內(nèi)部進行了引擎層的適配和轉(zhuǎn)換,確保了遷移的平滑性。
此外,針對社區(qū)版中經(jīng)常引起用戶困惑的分布式表引擎問題,在企業(yè)版中進行了改進。通過引入 SharedReplacingMergeTree 引擎,簡化了分布式表引擎的使用,大大提升了用戶對 ClickHouse 分布式特性的使用體驗。
另外值得一提的是,企業(yè)版采用了完全云原生的架構(gòu),實現(xiàn)了計算資源的自動伸縮和存儲的按需使用。用戶無需再像使用開源社區(qū)版那樣手動管理集群節(jié)點的數(shù)量、規(guī)格以及升降配等操作。這一特性極大地降低了用戶的運維成本,提高了整體的易用性。
三、ClickHouse 企業(yè)版 Serverless 彈性演示
接下來,將演示 ClickHouse 企業(yè)版的 Serverless 核心功能,以展示如何通過 Serverless 技術(shù)實現(xiàn)資源的成本降低。首先,了解如何啟用 ClickHouse 企業(yè)版。
在購買頁面中,首先需要點擊企業(yè)版的標簽以選擇它。這里提供了單個應(yīng)用區(qū)和多可用區(qū)的選項。若選擇多可用區(qū),則需要指定三個可用區(qū),并進行相應(yīng)的 VPC 網(wǎng)絡(luò)配置。Serverless 模式則允許在資源使用上實現(xiàn)區(qū)間性的彈性擴展。通過設(shè)定最大和最小資源限制,既可以確保在高負載時擁有足夠的資源,又能在低負載時避免資源的浪費。
在選擇具體的資源區(qū)間后,可以輕松創(chuàng)建集群,無需預(yù)購資源。這個區(qū)間設(shè)置本身不會產(chǎn)生任何資源消耗,只有當實際運行消耗資源時才會產(chǎn)生費用。例如,在創(chuàng)建集群時,可以選擇從 8 CCU(計算單元)到 64 CCU 的范圍,對應(yīng)著從 8 核到 64 核的 CPU 資源。
集群創(chuàng)建后,還可以根據(jù)需要調(diào)整彈性區(qū)間的上限和下限。通過監(jiān)控集群的 CCU 使用情況,可以實時了解實際消耗的資源量。假設(shè)在 DMS(數(shù)據(jù)管理系統(tǒng))的實例中創(chuàng)建了一個數(shù)據(jù)集群表,并執(zhí)行了大量的數(shù)據(jù)插入和聚合分析查詢,這將導致 CCU 的顯著消耗。
在查詢執(zhí)行過程中,CPU 使用率會大幅提升。當系統(tǒng)檢測到 CPU 負載過高時,會自動觸發(fā)資源擴展邏輯,增加計算資源以滿足當前需求。從歷史數(shù)據(jù)中可以看到,集群的 CCU 使用量會迅速上升,甚至達到 50 至 60 CCU 的高位。而當查詢執(zhí)行完畢后,CPU 使用率會下降,相應(yīng)的計算資源也會自動縮減。
這種 Serverless 模式的彈性擴展功能,確保了資源在無需時能夠得到有效利用,從而降低計算資源的使用成本。整個過程中,只需按秒級統(tǒng)計 CCU 值進行付費,無需預(yù)先購買峰值資源并長期承擔高額成本。這就是 Serverless 功能為我們帶來的資源使用效率和成本優(yōu)化的雙重優(yōu)勢。
四、ClickHouse 企業(yè)版售賣模型及商業(yè)化優(yōu)惠
接下來介紹 ClickHouse 企業(yè)版的主要產(chǎn)品售賣模型,特別是在 Serverless 模式下。企業(yè)版主要包括兩個計費項:計算資源和存儲資源。
在計算資源方面,計費單位是 CCU(計算單元),具體為每 CCU 使用一小時的費用是 0.49987 元,即一核使用一小時的費用。這意味著,如果在一個小時內(nèi)只使用了半小時,則實際費用將基于 0.5CCU·h 進行計算。這種秒級精確計費和計量的方式確保了資源的充分利用,避免了資源浪費。
對于存儲資源,同樣采用秒級精確計量,以 GB 為單位計算每小時的費用。單可用區(qū)和多可用區(qū)在價格上有所區(qū)別,因為多可用區(qū)涉及跨可用區(qū)的資源冗余成本。
通過 Serverless 模式,用戶可以根據(jù)實際需求按需獲取資源,并按實際使用量付費。為了進一步降低成本,還推出了資源包選項。用戶可以通過預(yù)購資源包來抵扣按量計費的部分,類似于手機流量套餐的購買方式。在可預(yù)測的情況下,這種方式能夠幫助用戶獲得更好的優(yōu)惠和成本縮減。
那么,如何評估業(yè)務(wù)上線時的資源使用量呢?首先,需要考慮計算資源和存儲資源兩個方面。對于計算資源,可以基于峰值資源使用量來設(shè)定一個資源區(qū)間(最大值和最小值),并計算平均資源使用水位。通過 Serverless 的系數(shù)乘以資源峰值,可以預(yù)估整體能夠縮減多少成本。對于存儲資源,則需要評估一小時內(nèi)或一個月內(nèi)所需的存儲量,并計算平均存儲使用率。
現(xiàn)在,ClickHouse 企業(yè)版已經(jīng)正式上線,并在阿里云官網(wǎng)推出了六折的限時優(yōu)惠活動。大家可以在阿里云官網(wǎng)搜索 ClickHouse 或在產(chǎn)品目錄頁面點擊云數(shù)據(jù)庫 ClickHouse,并選擇企業(yè)版進行體驗。同時,請根據(jù)業(yè)務(wù)需求選擇合適的可用區(qū)模式(單可用區(qū)或多可用區(qū))來開通資源,即可開始產(chǎn)品體驗之旅。