国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

字節(jié)跳動開源其云原生數(shù)據(jù)倉庫 ByConity

這篇具有很好參考價值的文章主要介紹了字節(jié)跳動開源其云原生數(shù)據(jù)倉庫 ByConity。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

動手點關(guān)注

字節(jié)跳動開源其云原生數(shù)據(jù)倉庫 ByConity

干貨不迷路

?

?項目簡介

ByConity 是字節(jié)跳動開源的云原生數(shù)據(jù)倉庫,它采用計算-存儲分離的架構(gòu),支持多個關(guān)鍵功能特性,如計算存儲分離、彈性擴縮容、租戶資源隔離和數(shù)據(jù)讀寫的強一致性等。通過利用主流的 OLAP 引擎優(yōu)化,如列存儲、向量化執(zhí)行、MPP 執(zhí)行、查詢優(yōu)化等,ByConity 可以提供優(yōu)異的讀寫性能。

項目背景

ByConity 的背景可以追溯到 2018 年,當時字節(jié)跳動開始在內(nèi)部使用 ClickHouse,因為業(yè)務(wù)的發(fā)展,要服務(wù)于大量的用戶,數(shù)據(jù)規(guī)模變得越來越巨大。由于 ClickHouse 是 Shared-Nothing 的架構(gòu),每個節(jié)點是獨立的,不會共享存儲資源等,因而計算資源和存儲資源是緊耦合的,這使得 ClickHouse 在使用過程中會遇到以下情況:

  • 首先,這導(dǎo)致擴縮容成本變高,且會涉及到數(shù)據(jù)遷移,使我們不能實時按需的擴縮容,從而導(dǎo)致資源的浪費;

  • 其次,ClickHouse 緊耦合的架構(gòu)會導(dǎo)致多租戶在共享集群環(huán)境相互影響,同時由于讀寫在同一個節(jié)點完成,導(dǎo)致讀寫相互影響;

  • 最后,ClickHouse 在復(fù)雜查詢上例如多表 Join 等操作的性能支持并不是很好。

基于這些痛點,字節(jié)在 ClickHouse 架構(gòu)基礎(chǔ)上進行了升級,于 2020 年在內(nèi)部啟動了 ByConity 項目,并于 2023 年 1 月發(fā)布 Beta 版本,5月底正式對外開源。

字節(jié)跳動開源其云原生數(shù)據(jù)倉庫 ByConity

圖1 字節(jié) ClickHouse 使用情況

功能特性

ByConity 計算與存儲分離的架構(gòu),將原本計算和存儲分別在每個節(jié)點本地管理的架構(gòu),轉(zhuǎn)換為在分布式存儲上統(tǒng)一管理整個集群內(nèi)所有數(shù)據(jù)的架構(gòu),使得每個計算節(jié)點成為一個無狀態(tài)的單純計算節(jié)點,并利用分布式存儲的擴展能力和計算節(jié)點的無狀態(tài)特性實現(xiàn)動態(tài)的擴縮容。這種改進使得 ByConity 具有以下重要特性:

  • 資源隔離:對不同的租戶進行資源的隔離,租戶之間不會受到相互影響;

  • 讀寫分離:計算資源和存儲資源解耦,確保讀操作和寫操作不會相互影響;

  • 彈性擴縮容:支持彈性的擴縮容,能夠?qū)崟r、按需的對計算資源進行擴縮容,保證資源的高效利用;

  • 數(shù)據(jù)強一致:數(shù)據(jù)讀寫的強一致性,確保數(shù)據(jù)始終是最新的,讀寫之間沒有不一致;

  • 高性能:采用了主流的 OLAP 引擎優(yōu)化,例如列存、向量化執(zhí)行、MPP 執(zhí)行、查詢優(yōu)化等提供優(yōu)異的讀寫性能。

技術(shù)架構(gòu)

整體架構(gòu)

ByConity 的架構(gòu)分為三層,包括服務(wù)接入層,計算層數(shù)據(jù)存儲層。 服務(wù)接入層負責客戶端數(shù)據(jù)和服務(wù)的接入,也就是 ByConity Server;ByConity 的計算資源層,由一個或者多個計算組構(gòu)成,每個 Virtual Warehouse(VW)是一個計算組;數(shù)據(jù)存儲層由分布式文件系統(tǒng),如 HDFS、S3 等構(gòu)成。

字節(jié)跳動開源其云原生數(shù)據(jù)倉庫 ByConity

圖2?ByConity 三層技術(shù)架構(gòu)圖

工作原理

圖4 是 ByConity 組件交互圖,圖中虛線部分表示一個 SQL 的流入,實線部分的雙向箭頭表示組件內(nèi)的交互,單向箭頭表示數(shù)據(jù)的處理并輸出給客戶端。我們將通過一個 SQL 的完整生命周期來具體分析它在 ByConity 各個組件的交互過程。

字節(jié)跳動開源其云原生數(shù)據(jù)倉庫 ByConity

圖3?ByConity 內(nèi)部組件交互圖

  • 第一階段:客戶端提交 Query 請求給 Server 端,Server 端首先進行 Parsering,然后通過 Analyzer 和 Optimizer分析和優(yōu)化生成更加高效的可執(zhí)行計劃。這里需要讀取元數(shù)據(jù) MetaData,元數(shù)據(jù)存儲在一個分布式 KV 里,ByConity 使用 FoundationDB,并通過 Catalog 讀取元數(shù)據(jù)。

  • 第二階段:ByConity 把通過分析和優(yōu)化器后產(chǎn)生的可執(zhí)行計劃交由調(diào)度器(Plan Scheduler),調(diào)度器通過訪問Resource Manager 獲取空閑的計算資源,并決定把查詢?nèi)蝿?wù)調(diào)度到哪些節(jié)點去執(zhí)行。

  • 第三階段:Query請求最終在 ByConity 的 Worker 上執(zhí)行,Worker 會從最底層的 Cloud Storage 讀取數(shù)據(jù),并通過建立 Pipeline 的方式進行計算。最終多個 Worker 的計算結(jié)果通過 Server 匯聚,并返回給客戶端。

ByConity 還有兩個主要的組件,分別是 Time-stamp Oracle 和 Deamon Manager。前者支持事務(wù)處理,后者則對后來的一些任務(wù)進行管理和調(diào)度。

主要組件庫

元數(shù)據(jù)管理

ByConity 提供了一個高可用和高性能的元數(shù)據(jù)讀寫服務(wù)--Catalog Server,并且支持了完備的事務(wù)語義特性(ACID)。同時我們對 Catalog Server 做了比較好的抽象,使得后端的存儲系統(tǒng)是可插拔的,當前我們支持的是蘋果開源的 FoundationDB,后面可以通過擴展去支持更多的后端存儲系統(tǒng)。

查詢優(yōu)化器

查詢優(yōu)化器是數(shù)據(jù)庫系統(tǒng)的核心之一。一個優(yōu)秀的優(yōu)化器可以大大提高查詢性能。尤其是在復(fù)雜的查詢場景下,優(yōu)化器可以帶來數(shù)倍至數(shù)百倍的性能提升。ByConity 自研優(yōu)化器基于兩個方向提升優(yōu)化能力:

  • RBO:基于規(guī)則的優(yōu)化能力。支持:列裁剪、分區(qū)裁剪、表達式簡化、子查詢解除關(guān)聯(lián)、謂詞下推、冗余運算符消除、Outer-Join to Inner-Join、運算符下推存儲、分布式運算符拆分等常見的啟發(fā)式優(yōu)化能力。

  • CBO:基于成本的優(yōu)化能力。支持:Join Reorder、Outer-Join Reorder、Join/Agg Reorder、CTE、Materialized View、Dynamic Filter Push-Down、Magic Set 等基于成本的優(yōu)化能力,并為分布式計劃集成 Property Enforcement。

查詢調(diào)度

ByConity 目前支持兩種查詢調(diào)度策略:Cache-aware 調(diào)度和 Resource-aware 調(diào)度。其中:

Cache-aware 調(diào)度針對計算和存儲分離的場景,旨在最大化 Cache 的使用避免冷讀。Cache-aware 調(diào)度策略會盡可能地將任務(wù)調(diào)度到擁有對應(yīng)數(shù)據(jù)緩存的節(jié)點上,實現(xiàn)計算命中 Cache,提升讀寫性能。同時,由于系統(tǒng)進行動態(tài)的擴縮容,當計算組的拓撲發(fā)生變化時,需要最小化 Cache 失效對查詢性能的影響。

Resource-aware 調(diào)度通過感知整個集群中計算組不同節(jié)點的資源使用情況,并有針對性地進行調(diào)度,以最大化資源利用,同時還會進行流量控制,確保合理使用資源,避免過載造成的負面影響,如系統(tǒng)宕機等。

計算組

ByConity支持不同的租戶使用不同的計算資源,如圖5 所示。在 ByConity 新的架構(gòu)下,很容易實現(xiàn)了多租戶隔離和讀寫分離等特性。不同租戶可以使用不同的計算組,實現(xiàn)多租戶隔離,同時支持讀寫分離。由于擴縮容方便,計算組可以按需進行動態(tài)的擴縮容,保證資源利用率高效。當資源利用率不高時,可以進行資源共享,借調(diào)計算組給其他租戶使用,實現(xiàn)資源的最大化利用并降低成本。

字節(jié)跳動開源其云原生數(shù)據(jù)倉庫 ByConity

圖4?計算組和多租戶

虛擬文件系統(tǒng)

虛擬文件系統(tǒng)模塊作為數(shù)據(jù)讀寫的中間層,ByConity 做了比較好的封裝,將存儲作為一種服務(wù)暴露給其他模塊使用,實現(xiàn)“存儲服務(wù)化”。虛擬文件系統(tǒng)提供了一個統(tǒng)一的文件系統(tǒng)抽象,屏蔽了不同的后端實現(xiàn),方便擴展并支持多種存儲系統(tǒng),如 HDFS 或?qū)ο蟠鎯Φ取?/p>

緩存加速

ByConity 通過緩存進行查詢加速,在計算-存儲分離的架構(gòu)下,ByConity 在元數(shù)據(jù)和數(shù)據(jù)維度都進行緩存加速。在元數(shù)據(jù)維度,通過在 ByConity 的 Server 端的內(nèi)存中進行緩存,以 Table 和 Partition 作為粒度。在數(shù)據(jù)維度,通過在ByConity 的 Worker 端,也就是計算組進行緩存,而且在 Worker 端的緩存是層次化的,同時利用了 Memory 和磁盤,以 Mark 集合作為緩存粒度,從而有效地提高查詢速度。

如何獲取和部署

ByConity 目前支持四種獲取和部署模式,歡迎社區(qū)開發(fā)者使用,并給我們提 Issue:

  • 單機Docker:https://github.com/ByConity/byconity-docker

  • K8s集群部署:https://github.com/ByConity/byconity-deploy

  • 物理機部署:https://github.com/ByConity/ByConity/tree/master/packages

  • 源代碼編譯:https://github.com/ByConity/ByConity#build-byconity

開源規(guī)劃

Roadmap

https://github.com/ByConity/ByConity/issues/26

ByConity 在 2023 年的開源社區(qū)路線圖中包括多個關(guān)鍵里程碑。這些里程碑旨在增強 ByConity 的功能、性能和易用性。其中,開發(fā)新的存儲引擎、支持更多的數(shù)據(jù)類型與其他數(shù)據(jù)管理工具的集成是我們重點關(guān)注領(lǐng)域。具體包含以下幾個方向:

  • 性能提升:使用索引進行加速,包含 Skip-index 優(yōu)化、新的 Zorder-index 和倒排索引等支持、外表索引的構(gòu)建和加速、以及索引的自動推薦和轉(zhuǎn)換;查詢優(yōu)化器的持續(xù)優(yōu)化;分布式緩存機制等。

  • 穩(wěn)定性提升:支持更多維度的資源隔離,提供更好多租戶能力;豐富 Metrics,提升可觀察性和問題診斷能力。

  • 企業(yè)級特性增強:實現(xiàn)更細粒度權(quán)限控制;完善數(shù)據(jù)安全性相關(guān)的功能(備份、恢復(fù)和數(shù)據(jù)加密);持續(xù)探索數(shù)據(jù)的深度壓縮,節(jié)約存儲成本。

  • 生態(tài)兼容性提升:支持 S3、TOS 等對象存儲;提升生態(tài)兼容性方便集成;支持數(shù)據(jù)湖聯(lián)邦查詢?nèi)?Hudi、Iceberg等。

社區(qū)合作共建

在 ByConity 發(fā)布 Beta 版本后,得到了來自華為、電子云、展心展力、天翼云、唯品會、傳音控股等十幾家企業(yè)開發(fā)者的支持,他們幫助 ByConity 分別在各自的環(huán)境下跑通了 TPC-DS 驗證,有些在自身業(yè)務(wù)場景下進行測試并反饋出不錯的效果,同時也給我們提出了諸多改進建議,我們對此表示非常感謝。同時也很榮幸收到社區(qū)伙伴一起共建的意愿和想法,例如,我們與華為終端云的交流中達成了共建合作,未來會在 Kerberos 鑒權(quán)、ORC 的支持、以及支持 S3 存儲上一起共建。如果您有意向參與,請掃描以下二維碼加入我們。

GitHub 地址:https://github.com/ByConity/ByConity

ByConity?社區(qū)微信交流群

ByConity?社區(qū)飛書交流群

總之,ByConity 是一個開源的云原生數(shù)據(jù)倉庫,提供讀寫分離、彈性擴縮容、租戶資源隔離和數(shù)據(jù)讀寫的強一致性。其計算-存儲分離的架構(gòu),結(jié)合主流的 OLAP 引擎優(yōu)化,確保了優(yōu)異的讀寫性能。隨著 ByConity 的不斷發(fā)展和改進,希望成為未來云原生數(shù)據(jù)倉庫的重要工具。

字節(jié)跳動開源其云原生數(shù)據(jù)倉庫 ByConity?點擊「閱讀原文」了解更多文章來源地址http://www.zghlxwxcb.cn/news/detail-499170.html

到了這里,關(guān)于字節(jié)跳動開源其云原生數(shù)據(jù)倉庫 ByConity的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 字節(jié)跳動 ByteHouse 云原生之路 – 計算存儲分離與性能優(yōu)化

    字節(jié)跳動 ByteHouse 云原生之路 – 計算存儲分離與性能優(yōu)化

    01 起源 ByteHouse 的故事從字節(jié)跳動對于先進數(shù)據(jù)處理和分析的需求開始,這一需求隨著公司業(yè)務(wù)規(guī)模的迅速擴張而日益增長,起源是對開源數(shù)據(jù)庫管理系統(tǒng) ClickHouse 的改造和增強。面對數(shù)據(jù)處理的高延遲、大規(guī)模數(shù)據(jù)操作的復(fù)雜性以及數(shù)據(jù)存儲和處理成本的上升,字節(jié)跳動的

    2024年01月21日
    瀏覽(21)
  • 字節(jié)跳動最熱門的 15 個前端開源項目

    字節(jié)跳動最熱門的 15 個前端開源項目

    作為國內(nèi)知名的互聯(lián)網(wǎng)公司,字節(jié)跳動在前端領(lǐng)域做出了很多開源貢獻。本文就來盤點字節(jié)跳動開源的 15 個前端項目,你用過幾個? Arco Design 是一套設(shè)計系統(tǒng),主要服務(wù)于字節(jié)跳動旗下中后臺產(chǎn)品的體驗設(shè)計和技術(shù)實現(xiàn)。它的目標在于幫助設(shè)計師與開發(fā)者解放雙手、提升工

    2024年03月14日
    瀏覽(20)
  • 字節(jié)跳動開源!超好用的視頻摳圖工具;GitHub開源項目維護協(xié)作指南;自動化數(shù)據(jù)清洗工具包;強化學習入門教程;前沿論文 | ShowMeAI資訊日報

    字節(jié)跳動開源!超好用的視頻摳圖工具;GitHub開源項目維護協(xié)作指南;自動化數(shù)據(jù)清洗工具包;強化學習入門教程;前沿論文 | ShowMeAI資訊日報

    ?? 日報合輯 | ?? 電子月刊 | ?? 公眾號下載資料 | ?? @韓信子 https://github.com/HelixNGC7293/DeforumStableDiffusionLocal https://space.bilibili.com/176003 文本提示作畫工具。本代碼庫實現(xiàn)是本地版本的Deforum Stable Diffusion V0.4,支持txt設(shè)置文件輸入和動畫功能! https://github.com/PeterL1n/RobustVideoMat

    2023年04月08日
    瀏覽(30)
  • 字節(jié)跳動正式開源分布式訓(xùn)練調(diào)度框架 Primus

    字節(jié)跳動正式開源分布式訓(xùn)練調(diào)度框架 Primus

    動手點關(guān)注 干貨不迷路 項目地址:https://github.com/bytedance/primus 隨著機器學習的發(fā)展,模型及訓(xùn)練模型所需的數(shù)據(jù)量越來越大,也都趨向于通過分布式訓(xùn)練實現(xiàn)。而算法工程師通常需要對這些分布式框架涉及到的底層文件存儲和調(diào)度系統(tǒng)有較深的理解,才能夠快速批量開啟模

    2024年02月05日
    瀏覽(19)
  • 字節(jié)跳動開源 Kelemetry:面向 Kubernetes 控制面的全局追蹤系統(tǒng)

    字節(jié)跳動開源 Kelemetry:面向 Kubernetes 控制面的全局追蹤系統(tǒng)

    動手點關(guān)注 干貨不迷路 Kelemetry是字節(jié)跳動開發(fā)的用于Kubernetes控制平面的追蹤系統(tǒng),它從全局視角串聯(lián)起多個 Kubernetes 組件的行為,追蹤單個 Kubernetes 對象的完整生命周期以及不同對象之間的相互影響。通過可視化 K8s 系統(tǒng)內(nèi)的事件鏈路,它使得 Kubernetes 系統(tǒng)更容易觀測、更

    2024年02月16日
    瀏覽(23)
  • 字節(jié)跳動開源 Shmipc:基于共享內(nèi)存的高性能 IPC

    字節(jié)跳動開源 Shmipc:基于共享內(nèi)存的高性能 IPC

    動手點關(guān)注 干貨不迷路 CloudWeGo - Shmipc?是字節(jié)跳動服務(wù)框架團隊研發(fā)的 高性能進程間通訊庫 ,它基于 共享內(nèi)存 構(gòu)建,具有 零拷貝 的特點,同時它引入的同步機制具有 批量收割 IO 的能力,相對于其他進程間通訊方式能明顯提升性能。在字節(jié)內(nèi)部,Shmipc 應(yīng)用于 Service Mesh 場

    2023年04月08日
    瀏覽(27)
  • 為什么華為、阿里、字節(jié)跳動、微軟等都走上了云原生和數(shù)字化之路?

    為什么華為、阿里、字節(jié)跳動、微軟等都走上了云原生和數(shù)字化之路?

    親愛的開發(fā)者朋友們好哇, 前幾天我發(fā)了篇文章,請各位朋友幫忙給最新一期的《新程序員》選封面,并且和大家說內(nèi)容已經(jīng)全部完成,即將出版和大家正式見面。今天,它來啦!《新程序員003:云原生和全面數(shù)字化實踐》正式開啟預(yù)售,現(xiàn)在下單,在元旦后將正式開放電子

    2024年02月05日
    瀏覽(31)
  • GitHub 2800顆星,支持GPT/Transformer,字節(jié)跳動這個開源項目是怎么來的?

    GitHub 2800顆星,支持GPT/Transformer,字節(jié)跳動這個開源項目是怎么來的?

    AI 繪畫、機器翻譯、多輪對話……對于各類 AI 相關(guān)的功能來說,總有一個痛點,困擾著所有訓(xùn)模型的算法工程師們: 想要效果更好,那么 AI 模型一般都很大,耗費的算力更多不說,運行起來還更費時間; 如果希望模型小、運行快,那么效果通常不如前者好。 這就像天平的

    2024年02月09日
    瀏覽(26)
  • 字節(jié)跳動最新開源!超實用的UI輪子庫,我只是個輪子搬運工

    字節(jié)跳動最新開源!超實用的UI輪子庫,我只是個輪子搬運工

    宮格類型:使用 QMUIBottomSheet.BottomGridSheetBuilder 生成。 QMUICommonListItemView 用作通用列表 QMUIGroupListView 里的 Item,也可單獨使用。支持以下樣式: 展示一行文字。 在右側(cè)或下方增加一行說明文字。 在 item 右側(cè)顯示一個開關(guān)或箭頭或自定義的View QMUIDialog 提供了一系列常用的對話

    2024年04月12日
    瀏覽(19)
  • Python 能寫游戲嗎?有沒有什么開源項目?,字節(jié)跳動Python金三銀四解析

    Python 能寫游戲嗎?有沒有什么開源項目?,字節(jié)跳動Python金三銀四解析

    代碼長度:250 行哥評語:最快教會女朋友的互動游戲 4.連連看 使用模塊:pygame 代碼長度:351 行哥評語:網(wǎng)絡(luò)版的連連看可以用python腳本一秒完成 5.雷電 使用模塊:pygame 代碼長度:490 行哥評語:在物質(zhì)匱乏的年代,這個行哥真玩過通 6.俄羅斯方塊 使用模塊:pygame 代碼長度

    2024年04月14日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包