火山引擎ByteHouse:4000字總結,Serverless在OLAP領域應用的五點思考

来源:https://www.cnblogs.com/bytedata/archive/2023/11/16/17834131.html
-Advertisement-
Play Games

作為一款火山引擎推出的雲原生數據倉庫,ByteHouse基於開源ClickHouse構建,併在位元組跳動內外部場景的檢驗下,對OLAP引擎能力、性能、運維、架構進一步升級。除此之外,ByteHouse也在Serverless方向探索,基於cloud-native 雲原生的理念構建了全新一代的數據倉庫,... ...


更多技術交流、求職機會,歡迎關註位元組跳動數據平臺微信公眾號,回覆【1】進入官方交流群

 

作為雲計算的下一個迭代,Serverless可以使開發者更專註於構建產品中的應用,而無需考慮底層堆棧問題。伴隨著近年來相關技術成熟度的增加,市場對Serverless的接受程度也變得越來越高。可以說時至今日,Serverless已邁入了向成熟穩定方向發展的高速軌道。

 

作為一款火山引擎推出的雲原生數據倉庫,ByteHouse基於開源ClickHouse構建,併在位元組跳動內外部場景的檢驗下,對OLAP引擎能力、性能、運維、架構進一步升級。除此之外,ByteHouse也在Serverless方向探索,基於cloud-native 雲原生的理念構建了全新一代的數據倉庫,架構上進行了三層解耦,期望在Serverless的加持下,提供更穩定、可靠、可信的分析服務,讓開發人員時間精力從基礎設施運維優化上解放,更聚焦在核心業務功能中。

 

本文來自於火山引擎ByteHouse產品負責人李群的分享,從場景選擇、應用門檻、落地應用等5個方面,介紹Serverless在OLAP領域應用思考。

哪些應用場景適合選擇Serverless架構?

 

在OLAP數據分析領域,我們先看哪些分析模式不適用於Serverless架構:

 

  1. 長任務,大Job:如果分析任務需要長時間運行(如超過20分鐘),使用 Serverless 技術會受到限制。因為 Serverless 平臺通常設置了最大運行時間的限制,超過限制時間會導致任務中斷。

  2. 計算密集型:Serverless 技術通常適用於處理輕量級任務,而對於高計算密集型任務,需要更多計算資源,但行業上目前當前尚未有商用的Serverless 數據倉庫能夠提供超過2000 vcore的算力規模,而2000vcore折算成通用的物理機或裸金屬,也不過是20台伺服器的算力規模,往往一些中型的分析型系統的算力需求就遠遠超過這個規模。

  3. 高併發讀寫型:Serverless 技術特點是資源共用,對有高併發訴求的分析任務,很可能會出現性能瓶頸,一方面原因是共用資源池的規模上限,一方面是多租戶對共用資源的爭用。

  4. 負載模式穩定、波動少:Serverless 平臺通常是按需運行,如果需要長時間運行的應用程式,則不適合使用 Serverless 技術。

 

總之,Serverless 技術適用於處理輕量級、耗時短、低併發型的分析業務,適用於負載模式有明顯波動性特征的業務;也適用於管道型、中間件型的業務,如flink實時計算、kafka消息隊列以及ETL任務執行等。

對於長時間運行、計算密集型、高併發讀寫、需要持續運行的分析業務則不適合使用 Serverless 技術。

應用Serverless技術存在哪些門檻

在OLAP領域,無論是經典的MPP架構向Serverless架構演進路徑,還是基於Cloud-Native雲原生理念全新構建的Serverless架構,都面臨著同樣的技術挑戰:

 

  1. 存算分離

把計算和存儲進行解耦,是Serverless架構關鍵的第一步,但其中的技術挑戰非常大,例如:如何保障性能少劣化甚至不下降;近數據計算(NDP)技術,把哪些運算元下推到存儲側;分散式緩存技術如何提高緩存的命中率,這些目的都是儘可能減少計算和存儲之間的網路開銷。

此外,從25GE網路,到RDMA/RoCE等高速網路,再到下一步的記憶體型網路的融合,如何減少延遲、提高吞吐也是業界在持續解決網路通信層面的難點之一。

  1. 計算無狀態

計算側通常還是採用經典的shared-nothing架構,具備良好的水平伸縮擴展性,但是計算側的無狀態化程度直接關係到彈性能力的優劣,這其中元數據的管理和同步、統計信息的自動化、優化器的智能化都是關鍵的技術難點。

形象一點描述,則是,在彈性過程中,背負東西越多,狀態化越重,彈性效率就越低,用戶體驗越差。

  1. 全局資源調度

存儲資源池化、計算池化、網路池化,未來還會實現記憶體池化等,而且理想的 Serverless 架構需要能夠自動地根據用戶請求的負載進行智能的動態伸縮,在不需要時自動釋放資源,業務浪涌時自動分配更多資源。以上對全局的資源調度能力提出了更高的要求。

  1. 混合負載

在Serverless架構下,不同的租戶在同一個計算資源池裡提交各種類型的分析任務,如何給上層應用提供穩定可靠的SLA保障,混合負載管理的難度被進一步放大。

基於靜態化的配額負載策略很難在Serverless的多租戶模式下落地,需要逾越智能、動態的資源分配、限流、熔斷等負載管理的技術難點。

如,“低效SQL耗盡資源”的老大難問題的影響半徑在Serverless模式下會被放大,甚至是災難性影響。

  1. 資源池上限

Serverless模式下,多租戶都在共用一個資源池,理想上這個資源池應該可以無限擴展,但當前只有存儲側基本上做到這一點,計算側資源池還是受限於軟體能力會有一個天花板上限,比如說目前幾款主流雲廠商的Serverless的數據倉庫還沒有超過2000vcpu的算力規模。如果再疊加多租戶併發的因素,將導致當前的Serverless架構在OLAP分析領域還比較難以大規模推廣使用。

此外,旨在進一步降低計算側負載而引入新硬體並提供池化服務,比如FPGA資源池,也是當前雲場景的發力方向。圍繞Serverless架構下的全場景多層級的數據安全也是要考慮的關鍵問題。

 

這裡簡單給大家分享一下ByteHouse在這方面的一些思考和實踐:

 

ByteHouse 基於cloud-native 雲原生的理念構建了全新一代的數據倉庫,架構上進行了三層解耦。由下向上看,

  1. 在存儲層,ByteHouse 已經實現了Serverless化、彈性伸縮、容量無限擴展。為提升存算分離架構下的性能問題,在存儲側做了一系列的技術優化,比如

    針對HDFS語義,合併小文件減少文件數、改進的Hedge Read、Fast Switch Read等使得帶寬僅增加10%的情況下,延遲減少3倍;

    針對S3語義,通過memory cache、獨立IO線程池等技術提升數據的存取性能。

  2. 在網路通信上, 連接復用、RDMA、傳輸壓縮等技術,大幅緩解了網路放大問題。

  3. 在中間的計算層,ByteHouse是通過virtual warehouse為用戶提供彈性的計算服務,提供pay as you go的記賬模式,為用戶節省成本。

      在技術上,ByteHouse實現了無狀態化,基於容器化部署、秒級彈性伸縮、秒級按需啟停。ByteHouse增強的本地緩存技術,使得數據預熱、預取更加智能高效,緩存數據的命中率也更高。

      在計算層,ByteHouse通過不同的VW來做負載隔離,如按讀寫進行隔離、按應用類別進行隔離,這種tenent-aware 租戶感知的負載隔離模式雖然還不是Serverless模式,但是能在一定程度上滿足用戶的需求,也是向Serverless架構演進的路徑之一。

  4. 在最上層的cloud services 雲服務層,ByteHouse提供集中化的catalog 元數據服務、集群管理服務等。我們把元數據從計算層解耦出來,讓計算層實現了無狀態化,獲得了秒級的彈性伸縮和啟停能力。基於分散式 KV 的元數據存儲,通過高效的part緩存技術,也進一步提升了元數據的訪問性能。

如何看待可觀測性和Serverless哲學相悖的問題?

 

隨著Serverless的深入,人們發現Serverless架構下的問題定位比傳統應用更困難。對此,一部分人認為應該支持可觀測性的需求,另一部分人則認為可觀測性與Serverless本質相悖,Serverless就是為了讓用戶不需要關心底層計算資源情況。

 

我認為,這個問題本質上是跟當前Serverless技術成熟度相關。舉個例子,現在我們每天都在用水、用電,但是很少有人會再去關註怎麼發電、如何配送,飲用水的處理環節等等,因為我們得到的用水、用電的服務標準是穩定的、可信的和可靠的,所以不再關註過程細節。

 

與此類似,Serverless 要實現的目標就是提供穩定、可靠和可信的分析服務,讓開發人員不再把時間和精力花費在下層的基礎設施和運維優化上,而是聚焦在業務功能的實現上面。

 

但是當前OLAP 數據分析領域的Serverless技術成熟度還遠未達到這個目標,前面提到的一系列技術難點尚未完全解決,最簡單的例子是如何解決困擾業界40多年的“低效SQL耗盡資源”的老大難問題,在 Serverless 模式下,賬單跟資源用量緊密相關,賬單上資源用量的合理性、可信性是客戶當前的最大疑慮。

 

此外,通過日誌記錄、 跟蹤監控、可視化指標等技術工具為用戶提供過程中的可觀測性,也是Serverless平臺應該具備的能力,也能夠增加用戶對系統的信任感。

因此,兩者並非相悖。我們相信會有一天Serverless會給用戶帶來標準、穩定、可靠、可信的分析服務,就像我們今天用水、用電一樣。

落地Serverless,自研和雲廠商方案如何選擇?

 

21世紀最寶貴的還是人才。對企業來說,每一筆投入的目標都是圍繞著如何去獲取更深入本質的分析洞察、更靈敏的風控感知和預警、更快速的用戶增長,所以說,企業的IT更多的是站在開發的視角去看待投入決策,使能業務,並能更近一步,讓IT從傳統的成本中心向賦能中心、盈利中心去演進,人才儲備的重點是技術開發方向。

 

而雲廠商的商業邏輯是為用戶提供標準的雲計算技術服務,通過持續、高強度的研發投入,為用戶提供差異化的雲服務,人才儲備的重點是技術研發方向。開發和研發,僅一字之差,但含義迥異。

 

特別是對於OLAP 領域的Serverless技術實現來說,涉及到存儲、網路、操作系統、資料庫、AI等IT領域幾乎全棧的技術點,更需要廠商做持續的、高成本的研發投入,而且這些投入短期內難見市場回報,一旦中途停頓則意味著前期的投入全都“打水漂”。

 

所以,對中小企業來說,還是建議在OLAP 領域的Serverless技術投入上保持慎重態度,對Serverless的技術研發、演進迭代還是交給技術人才儲備更雄厚、技術投入也更專業的大型雲廠商來做。

Serverless距離大規模應用還有多遠?

 

在OLAP數據分析領域,雖然已經有幾款商用的Serverless架構的數據倉庫,但是前面提到的技術難點依然存在、尚未逾越,並且期提供的算力規模也很難支撐中大型規模的數據倉庫或者分析平臺的需求。

但是,Serverless的架構理念還是面向未來的,而且技術挑戰也會隨著時間的推移會有更好的應對方案和措施,並且當前也能夠在部分中小型分析負載場景中適用和推廣。

 

最後想提一點,影響Serverless大規模應用的因素,除了技術層面持續演進和迭代之外,另外一個非常關鍵的就是Serverless服務的標準化,尤其是對OLAP 分析領域。Serverless的初衷是讓用戶聚焦在業務實現上,但沒有一個標準化的規範會導致用戶被平臺鎖定,無法實現應用的平移、無縫搬遷,比如,用戶無法把基於MySQL的應用無縫搬遷到PostgreSQL,因為下麵的資料庫是Serverless了,但是與業務邏輯進行交互的介面還沒有標準化。因此,Serverless的規模化應用,還需要有與之配套的標準和規範體系。

 

總而言之,Serverless架構已經越來越受到歡迎,隨著雲計算和Serverless技術的進一步發展和完善,Serverless架構將在未來成為更多大規模應用的首選架構之一,用戶會像今天用水、用電一樣,方便、快捷地享用Serverless化的OLAP 數據分析服務。

 

點擊跳轉ByteHouse瞭解更多


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本文討論了一次故障排查的過程,通過監控工具和分析信息,但最終沒有找到根本原因。文章強調了故障排查的複雜性和重要性,提醒保持冷靜和耐心,在團隊合作和知識共用的基礎上解決問題,並總結了從這次故障中學到的經驗和教訓。 ...
  • 前言 看過不少關於 await 的原理的文章,也知道背後是編譯器給轉成了狀態機實現的,但是具體是怎麼完成的,回調又是如何銜接的,一直都沒有搞清楚,這次下定決心把源碼自己跑了下,終於豁然開朗了 本文的演示代碼基於 VS2022 + .NET 6 示例 public class Program { st ...
  • 哈嘍大家好,我是鹹魚 最近這段時間比較忙,將近一周沒更新文章,再不更新我那為數不多的粉絲量就要庫庫往下掉了 T﹏T 剛好最近在學 Kafka,於是決定寫篇跟 Kafka 相關的文章(文中有不對的地方歡迎大家指出) 考慮到有些小伙伴可能是第一次接觸 Kafka ,所以先簡單介紹一下什麼是 Kafka ...
  • 零基礎快速上手STM32開發(手把手保姆級教程) 1. 前言 作為一名嵌入式工程師,STM32 是必須要學習的一款單片機,同時這款單片機資料足夠多,而且比較簡單,非常適合初學者入門。 STM32 是一款由 STMicroelectronics 公司開發的 32 位微控制器,由於其強大的處理能力和廣泛 ...
  • 簡介 SQL(Structured Query Language)是一種用於訪問和操作關係型資料庫的標準語言。它是一個功能強大的語言,用於執行各種資料庫操作,包括檢索數據、插入新記錄、更新記錄、刪除記錄、創建資料庫、創建新表、設置許可權以及執行存儲過程和視圖等。以下是 SQL 的一些重要方面: SQL ...
  • sql server 2005安裝包sql server 2005 SP4補丁包(非常難找,留作備用) 鏈接: https://pan.baidu.com/s/1j5OOX-iV8gLrmSNqNLE-kg 提取碼: jvtr 複製這段內容後打開百度網盤手機App,操作更方便哦 背景: 在windo ...
  • 嘗試用node編寫一個簡單的登錄介面,結果啟動服務後請求介面出現了該錯誤。 其問題就是訪問的工具身份驗證協議過於落後,在node內安裝的2.18.1 mysql包。 解決: 先登錄資料庫。 use mysql;(mysql為資料庫名) 提示Database changed; 查詢表中信息 ; sel ...
  • 本文以GaussDB資料庫為平臺,將詳細介紹SQL中DROP、TRUNCATE和DELETE等語句的含義、使用場景以及註意事項,幫助讀者更好地理解和掌握這些常用的資料庫操作命令。 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 微服務架構已經成為搭建高效、可擴展系統的關鍵技術之一,然而,現有許多微服務框架往往過於複雜,使得我們普通開發者難以快速上手並體驗到微服務帶了的便利。為瞭解決這一問題,於是作者精心打造了一款最接地氣的 .NET 微服務框架,幫助我們輕鬆構建和管理微服務應用。 本框架不僅支持 Consul 服務註 ...
  • 先看一下效果吧: 如果不會寫動畫或者懶得寫動畫,就直接交給Blend來做吧; 其實Blend操作起來很簡單,有點類似於在操作PS,我們只需要設置關鍵幀,滑鼠點來點去就可以了,Blend會自動幫我們生成我們想要的動畫效果. 第一步:要創建一個空的WPF項目 第二步:右鍵我們的項目,在最下方有一個,在B ...
  • Prism:框架介紹與安裝 什麼是Prism? Prism是一個用於在 WPF、Xamarin Form、Uno 平臺和 WinUI 中構建鬆散耦合、可維護和可測試的 XAML 應用程式框架 Github https://github.com/PrismLibrary/Prism NuGet htt ...
  • 在WPF中,屏幕上的所有內容,都是通過畫筆(Brush)畫上去的。如按鈕的背景色,邊框,文本框的前景和形狀填充。藉助畫筆,可以繪製頁面上的所有UI對象。不同畫筆具有不同類型的輸出( 如:某些畫筆使用純色繪製區域,其他畫筆使用漸變、圖案、圖像或繪圖)。 ...
  • 前言 嗨,大家好!推薦一個基於 .NET 8 的高併發微服務電商系統,涵蓋了商品、訂單、會員、服務、財務等50多種實用功能。 項目不僅使用了 .NET 8 的最新特性,還集成了AutoFac、DotLiquid、HangFire、Nlog、Jwt、LayUIAdmin、SqlSugar、MySQL、 ...
  • 本文主要介紹攝像頭(相機)如何採集數據,用於類似攝像頭本地顯示軟體,以及流媒體數據傳輸場景如傳屏、視訊會議等。 攝像頭採集有多種方案,如AForge.NET、WPFMediaKit、OpenCvSharp、EmguCv、DirectShow.NET、MediaCaptre(UWP),網上一些文章以及 ...
  • 前言 Seal-Report 是一款.NET 開源報表工具,擁有 1.4K Star。它提供了一個完整的框架,使用 C# 編寫,最新的版本採用的是 .NET 8.0 。 它能夠高效地從各種資料庫或 NoSQL 數據源生成日常報表,並支持執行複雜的報表任務。 其簡單易用的安裝過程和直觀的設計界面,我們 ...
  • 背景需求: 系統需要對接到XXX官方的API,但因此官方對接以及管理都十分嚴格。而本人部門的系統中包含諸多子系統,系統間為了穩定,程式間多數固定Token+特殊驗證進行調用,且後期還要提供給其他兄弟部門系統共同調用。 原則上:每套系統都必須單獨接入到官方,但官方的接入複雜,還要官方指定機構認證的證書 ...
  • 本文介紹下電腦設備關機的情況下如何通過網路喚醒設備,之前電源S狀態 電腦Power電源狀態- 唐宋元明清2188 - 博客園 (cnblogs.com) 有介紹過遠程喚醒設備,後面這倆天瞭解多了點所以單獨加個隨筆 設備關機的情況下,使用網路喚醒的前提條件: 1. 被喚醒設備需要支持這WakeOnL ...
  • 前言 大家好,推薦一個.NET 8.0 為核心,結合前端 Vue 框架,實現了前後端完全分離的設計理念。它不僅提供了強大的基礎功能支持,如許可權管理、代碼生成器等,還通過採用主流技術和最佳實踐,顯著降低了開發難度,加快了項目交付速度。 如果你需要一個高效的開發解決方案,本框架能幫助大家輕鬆應對挑戰,實 ...