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