国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于ByteHouse你想知道的一切分享

jf_ro2CN3Fa ? 來源:芋道源碼 ? 作者:芋道源碼 ? 2022-12-02 14:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

ByteHouse 的前世今生

字節跳動最早是在 2017 年底開始使用 ClickHouse 的,用于支撐增長分析的業務場景。對于字節跳動而言,增長分析的重要性不言而喻。這是一項十分考驗運營團隊能力的工作,如何衡量不同運營方法的有效性,應該對哪些數據指標進行考量,如何對指標的波動進行更深層次的原因分析,這些需要重點關注。這其中涉及大量數據分析,對于數據分析平臺的實時性也有著非常高的要求。在比對、試用過多款 OLAP 分析產品后,字節跳動最終選擇了 ClickHouse,并且整體方案的可行性在實際業務應用中得到了很好的驗證。

在取得了不錯的業務效果之后,采用 ClickHouse 的方案快速推廣,從支持增長分析的單一場景,很快擴展到 BI 分析、AB 測試、模型預估等多個場景。同時,研發團隊也持續不斷打磨和改進 ClickHouse 能力,比如增強數據接入功能、提升 SQL-based 指標計算的執行效率,包括 UDF 增強、SQL 語法增強等,很快使 ClickHouse 成為字節內部最主流的分析平臺。

4b2671b4-7207-11ed-8abf-dac502259ad0.png

在產品的不斷打磨中,2020 年字節跳動火山引擎正式立項,把基于 ClickHouse 做了很多增強和自研的 ByteHouse 作為 ToB 的核心產品之一加快產品化步伐,以期讓更多的用戶在分析領域獲得更快、更好的業務體驗。在 2021 年 8 月份,ByteHouse 正式對外發布并提供服務。

至 2022 年 6 月底,字節跳動內部的 ByteHouse 節點總數已經超過18000個,管理總數據量超過 700PB,每天上億次的分析查詢跑在ByteHouse上,有離線的、有實時的。其中支撐抖音、頭條的行為分析平臺其集群規模已經達到2400個節點。截止當前,字節內部 80% 的分析型應用都跑在ByteHouse平臺上。

4b496bce-7207-11ed-8abf-dac502259ad0.png

字節跳動最初為什么選擇 ClickHouse

字節跳動曾做過各類分析型產品做過調研,如 Kylin、Druid、SparkSQL 等。那究竟為什么最后字節跳動選擇了 ClickHouse,并進一步投入力量研發出 ByteHouse 使之成為字節跳動內部核心的數據分析平臺呢?這里以兩個具體的字節跳動業務案例來展開一些細節:

推薦系統實時指標

公司內部 A/B 實驗平臺已經提供了 T+1 的離線實驗指標,而推薦系統需要更快地觀察算法模型、或者某個功能的上線效果,因此需要一份能夠實時反饋的數據作為補充,而且還要求:

? 能同時查詢聚合指標和明細數據;

? 能支持多達幾百列的維度和指標,且場景靈活變化,會不斷增加;

? 可以高效地按 ID 過濾數據;

? 需要支持一些機器學習和統計相關的指標計算(比如 AUC)。

選型開始時,最需要解決的是“快”,所以選擇了 Kylin 作為主要分析引擎,其優點是能夠提供毫秒級別的查詢延時。但是 Kylin 存在維度爆炸導致預計算時間越來越長,數據可用時間沒有保證的問題。此外,新業務上線會產生新的指標和維度,Kylin 無法支持維度和指標在線更新。

后期改用 SparkSQL ,同樣存在不少問題,如查詢分析的延遲太長、資源使用率高、穩定性不夠好頻發OOM,以及無法支持跨更長時間周期的數據做分析等。

綜合考量,最后選擇了 ClickHouse:

? 能更快地觀察算法模型,沒有預計算所導致的高數據時延;

? 既適合聚合查詢,在配合跳數索引后,也能充分支持明細查詢;

? BitSet 的過濾 Bloom Filter 是比較好的解決方案。

同時,團隊也持續投入研發力量,不斷自研增強產品能力,比如通過異步構建索引使得整體寫入吞吐量能力提升 20%。通過對 Kafka 多消費線程的改造和增強,實現并行消費,使得寫入性能得到線性提升。此外,自研 HaKafka 引擎,提升了系統的 HA 高可用能力,即使出現節點故障也不用擔心數據有完整性問題。

廣告投放實時分析

通常運營人員需要查看廣告投放的實時效果,由于業務的特點,當天產生的數據往往會涉及到對歷史數據的刷新,技術上最初是基于 Druid 實現,但有些問題一直難以解決。例如,實時數據會涉及到歷史3個月的時間分區,Druid 會產生很多 segment,歷史數據重刷后需要額外時間去做合并的操作,無法保證數據的實時消費;另外,業務數據的維度非常多,數據粒度非常細,所以 Druid 的預聚合的意義不大,業務更多的需求是直接來消費明細數據。

最后團隊也選擇了 ClickHouse 技術路線,并持續做了改進和增強,如:

? 對 Buffer Engine 做了改進,解決了社區版本在 Buffer Engine 和 ReplicatedMergeTree 同時使用下查詢一致性的問題。

? 自研事務機制,確保每次插入數據的原子性,增強數據消費的穩定性,解決了社區版本由于缺少事務支持,在異常場景下,往往會出現丟失或者重復消費的情況。具體實現上是將 Offset 和 Parts 數據綁定在一起,每次消費時,會默認創建一個事務,由事務負責把 Part 數據和 Offset 一同寫入磁盤中,如果出現失敗,事務會一起回滾 Offset 和寫入的 Part 然后重新消費。

ByteHouse 具備哪些特點

隨著 ByteHouse 在字節跳動內部支撐的分析業務越來越多,ByteHouse 也成為了字節跳動內部分析平臺構建的事實標準。ByteHouse 在字節廣泛的應用中,不斷從業務角度出發不斷打磨產品,并從實際應用角度思考什么樣的數據分析產品才是更好用的。我們認為,一個優秀的數據分析產品應該具備以下特點:

能支撐更全面的分析場景

數據庫行業流傳著“沒有銀彈”的說法,大家認為沒有一個分析類產品能夠滿足所有場景。這固然是很有道理的,但是也不必走向另外一個極端,所有場景都要“一事一庫”。如果有一個通用性的數據分析產品,能夠支撐 80% 以上的常見場景,這能為企業減少大量的時間和精力,并且能更有信心的應對營業務帶來的數據分析挑戰。

ClickHouse 的一個問題就是適用的場景相對較窄,對于寬表模型的查詢和分析效率非常高,但涉及到多表關聯的分析場景卻表現不佳,甚至不支持此類業務場景。因而,ClickHouse的這種高性能的表現更多的是基于“本能”層面。ByteHouse 團隊以打造一款綜合且性能強大的分析平臺為目標,對ClickHouse 做了全方位的增強,推出了全自研的查詢優化器,從而讓性能表現從“本能”層面躍遷到“智能”層面,從而更好的應對各類分析場景。

對于一款關系型數據庫產品來說,優化器就是大腦,通過優化器對查詢語句進行改寫優化,基于代價尋找最優執行路徑、生成執行計劃,并且結合資源動態負載情況,讓整體性能的輸出更加穩健、也更加智能。從效果來看,在部分場景下,優化器使得性能提升達 10 倍以上;此外,在 TPC-DS 標準測試測試場景中,啟用優化器的收益也十分顯著,能夠完成全部 99 個測試場景,而且性能也提升數倍不等。

而應對傳統數倉負載中的復雜查詢場景,僅僅有查詢優化器的增強還不夠,ByteHouse 為此還做了大量的工作。如 Runtime Filter,能夠智能過濾掉分析中不相干數據,減少中間過程數據的網絡傳輸,提升整體分析效率,在星型和雪花型業務分析場景中有很好的效果。另外通過優化網絡技術,比如連接復用、RDMA、傳輸壓縮等技術,也極大提升了整體分析性能。此外還包括其他一系列的能力增強,比如細粒度資源管控、數據交換的優化等,能夠讓 ByteHouse 在復雜分析場景中游刃有余。

從收益效果上看,在字節內部部分業務場景中,多表關聯分析性能提升 26 倍,單表復雜查詢也提升 3 倍左右,在標準SSB測試場景中也表現不俗,為支撐更全面的分析場景的目標邁出重要一步。

數據分析能力能隨業務快速擴縮,極致彈性

在 node-base 架構下,存算一體的模式不夠靈活,難以滿足業務對彈性的需求,擴容的代價無論是時間成本和資源成本都很高。應對這些挑戰,ByteHouse 團隊花費極大精力從底層開始秉承 Cloud-Native 云原生的架構理念進行整體重構,讓資源可以伴隨業務的需求進行靈活的彈性伸縮,擴容的代價更低更可控。另外,業務上可以通過讀寫分離做更好的資源管控和分流,從而讓整體業務的 SLA 更有保障。下面介紹部分 ByteHouse 架構重構中的關鍵技術點。

首先是基于分布式 KV 構建元數據管理服務,元數據信息會持久化保存在狀態存儲池里面,為了降低對元數據庫的訪問壓力,對于訪問頻度高的元數據會進行緩存。元數據服務自身是無狀態的,可以水平擴展。

在高性能層面,除了前面介紹的全自研優化器之外,還通過智能的分布式多級緩存技術來彌補存算分離架構下遠程數據訪問時額外的網絡開銷和IO開銷帶來的性能損失。此外 virtule warehouse 計算資源實現了容器化部署,做到了無狀態化,從而可以快速、靈活的進行彈性伸縮,且不影響業務。

在存儲層面,實現了存儲服務化,對數據存儲層進行統一抽象,構造 VFS 虛擬存儲系統,能夠支持更多的存儲語義,包括 HDFS 塊存儲、對象存儲等,既解決了存儲在擴展性、讀寫吞吐瓶頸、一致性等問題,同時能大幅降低存儲成本。

強一致性的事務機制、MVCC 多版本并發控制、細粒度鎖等技術保障,也能讓 ByteHouse 更好地去滿足核心分析業務對一致性和并發能力的要求。

此外,在負載管理上,圍繞計算、內存、網絡帶寬這三項核心資源進行持續優化,同時也在不斷引入AI等新技術讓系統資源的動態調配更加智能和高效;細粒度、多級的資源隔離能力也能更好的匹配業務差異化的需求,讓整體系統運行更加穩定可靠。

穩定、高可用

以抖音集團內部建于2017年的行為分析平臺為例,僅頭條和抖音兩款應用每天會產生萬億條級別的事件記錄,且至少保存1年,分析的特征維度多達上千,既有聚合查詢也有明細查詢,其自助式查詢分析要求必須達到秒級響應。當前這個平臺運行在 2400 個節點的 ByteHouse 集群上。

對社區版 ClickHouse 或者其他大部分分析類產品來說,要達到這個規模是非常困難的,幾乎難以實現。ByteHouse 做了哪些能力增強來不斷突破規模上限、持續支持業務高速增長呢?這里我們先重點介紹兩方面的能力增強:

一、通過自研的 HaMergeTree 替代社區的 ReplicatedMergeTree,降低對 ZooKeeper 的請求次數,減少在 Zookeeper 上存儲的數據量,副本直接通過 log 日志來交換信息,不需要再從 Zookeeper 獲取,從而極大減輕 Zookeeper 的負載,讓其壓力與集群內數據量規模脫鉤。

二、通過元數據持久化的方案,提升故障恢復能力。社區版本的元數據常駐于內存中,這會導致重啟時間非常長,因而當故障發生后,恢復的時間也很長,動輒一到兩個小時,這個是業務不能接受的。ByteHouse 的做法是將元數據持久化到 RocksDB,啟動時直接從 RocksDB 加載元數據,內存中也僅僅存放必要的 Part 信息,這樣就減少元數據對內存的占用,在性能基本無損失的情況下,單機支持的part 不再受內存容量的限制,可以達到 100 萬以上;最重要的是極大縮短了集群的故障恢復時間,從1-2 小時直接縮短到 3 分鐘,大大提高了系統的高可用能力,為業務提供了堅實保障。

保證查詢效率前提下,更快、更準確的數據導入

在實時寫入場景中,社區版 ClickHouse 還是存在部分能力的缺失,比如數據分布按 shard 的分布策略很難保障均勻分布,會存在數據傾斜的情況,而且不支持由用戶指定唯一鍵的業務需求,也無法保證數據的有序消費, 單線程的消費模式導致吞吐量受限,另外在 HA 高可用上也存在能力缺失。ByteHouse 針對這些不足對 kafka engion 做了全面的增強。

首先是在分布式架構下,通過自研的 HaKafka 引擎為數據的實時注入提供了 HA 高可用保障,保障數據不丟失;支持唯一鍵;通過 memory table,提升了實時寫入的吞吐能力,同時延遲刷盤也大幅降低IOPS,節省 IO 資源。

在此基礎上 ByteHouse 再向前一步,演進到云原生架構,能力得到更大的提升,包括支持 exactly-once 消費語義,自動容錯,之前 node-base 架構模式的擴容難、代價高的問題也在云原生架構下迎刃而解,能夠做到按需的靈活彈性擴容和縮容。

此外,ByteHouse 自研了 UniqueMergeTree 表引擎,很好的平衡了寫和讀的性能。UniqueMergeTree 表引擎既支持行更新的模式,也支持部分列更新的模式,用戶可以根據業務要求開啟或關閉。在性能方面,與 ReplacingMergeTree 相比,UniqueMergeTree 的寫入性能只有輕微下降,但在查詢性能上取得了數量級的提升。進一步對比了 UniqueMergeTree 和普通 MergeTree 的查詢性能,發現兩者是非常接近的。

ByteHouse 的未來展望

我們將持續圍繞讓 ByteHouse 更快、更穩、更智能持續做技術迭代,包括更強的優化器,當前在原型測試中有 3 倍的性能提升;通過AI技術的引入讓系統更智能更高效,在原型測試中,基于 IMDB 的大規模數據集的性能表現上有20%的提升;此外更加智能的物化視圖技術以及 RDMA 技術預期都會在 23 年實現產品化落地。

面向未來,ByteHouse 的愿景是打造數據分析領域的“抖音”平臺,能夠為用戶帶來一體化的集成、分析體驗,降低用戶分析門檻,一站式提供分析所需的各種能力,并能通過安全可信的數據分享、模型分享幫助用戶便捷地實現交易和價值變現。

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SQL
    SQL
    +關注

    關注

    1

    文章

    789

    瀏覽量

    46702
  • 數據分析
    +關注

    關注

    2

    文章

    1516

    瀏覽量

    36217
  • 字節跳動
    +關注

    關注

    0

    文章

    352

    瀏覽量

    10075

原文標題:關于 ByteHouse 你想知道的一切,看這一篇就夠了

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    大神們,想知道你們都用什么ide編程調試器? Arduino IDE?還是 e2studio ?還有其他嗎?哪個好用呢

    大神們,想知道你們都用什么ide編程調試器? Arduino IDE? 還是 e2studio ? 還有其他嗎? 哪個IDE好用呢? 求指點呀
    發表于 11-30 12:05

    新手小白必看!關于A100云主機租用,你想知道一切都在這!

    “我想租臺A100云主機來跑我的模型,但完全不知道從何下手。”——這是我們聽到最多的來自AI新手的聲音。A100,這個聽起來就“高大上”的名詞,背后其實是套清晰、可操作的流程。今天,我們就用
    的頭像 發表于 10-31 19:24 ?1592次閱讀
    新手小白必看!<b class='flag-5'>關于</b>A100云主機租用,<b class='flag-5'>你想知道</b>的<b class='flag-5'>一切</b>都在這!

    螺紋鋼切分測徑儀 讓每切分軋制生產線都有品質保障

    切分螺紋鋼測徑儀作為種非接觸式在線檢測設備,通過多維度幾何尺寸測量、實時數據反饋和智能化分析,解決了切分軋制過程中的質量檢測難題,成為保障螺紋鋼生產線品質的核心裝備。 、技術原理:
    發表于 10-29 14:06

    12 個關鍵節點!文看懂 PCBA 如何實現零缺陷

    想知道 PCBA 加工怎么保證質量零缺陷?關鍵在 12 個核心管控節點,步步看:?
    的頭像 發表于 09-15 15:14 ?822次閱讀
    12 個關鍵節點!<b class='flag-5'>一</b>文看懂 PCBA 如何實現零缺陷

    什么是ARM架構?你需要知道一切

    從智能手機到工業邊緣計算機,ARM?架構為全球數十億臺設備提供動力。ARM?以其效率優先的設計和靈活的許可模式而聞名,已迅速從移動處理器擴展到人工智能邊緣計算、工業控制器,甚至數據中心。本文我們將深入探討ARM?架構的真正含義、其核心特性、與NVIDIAJetson?等平臺的差異,以及與傳統x86系統的比較。什么是ARM架構?ARM(AdvancedRISC
    的頭像 發表于 09-11 14:48 ?1295次閱讀
    什么是ARM架構?你需要<b class='flag-5'>知道</b>的<b class='flag-5'>一切</b>

    干貨放送!宏集物流運輸沖擊記錄儀直播精選問答集錦,你想知道的都在這

    宏集技術主題直播于8月20日圓滿結束,感謝各位熱情參與!直播中,宏集科技高級技術工程師針畢工對不同物流運輸的實際應用場景,為大家分析如何高效監測運輸環境,保障貨物安全交付和厘清貨損責任。直播中,我們收到了眾多提問,展現了大家對宏集物流運輸沖擊振動監測方案的興趣和對行業未來的深切關注。為此,我們整理了這些問題并邀請技術工程師解答,梳理出直播Q&A精選版(建議收
    的頭像 發表于 09-02 17:03 ?827次閱讀
    干貨放送!宏集物流運輸沖擊記錄儀直播精選問答集錦,<b class='flag-5'>你想知道</b>的都在這

    碳氫清洗機是如何運轉的?碳氫清洗機原理介紹

    碳氫清洗機的工作原理是個值得關注的問題。在使用任何設備之前,我們會提前了解設備是如何運行的。如果他們想知道某個設備的工作原理,他們通常會在網上搜索相關的問題。雖然答案很多,但并不令人滿意。原因是
    的頭像 發表于 07-31 17:00 ?939次閱讀
    碳氫清洗機是如何運轉的?碳氫清洗機原理介紹

    顆小小的IPEX端子,撐起了多少設備的“心跳”

    你想了解哪種射頻連接器的選型? 想知道 IPEX 在哪些產品里具體應用? 想聊聊從“打螺絲”到“打品牌”的轉變? 歡迎評論區交流,我會一一回復。 我們不販賣焦慮,只提供靠譜的連接方案。
    的頭像 發表于 07-30 14:25 ?1916次閱讀
    <b class='flag-5'>一</b>顆小小的IPEX端子,撐起了多少設備的“心跳”

    關于 樹莓派5 超頻:你需要知道一切

    摘要樹莓派5可通過超頻提升性能,對于機器學習等處理器密集型任務尤為有用。超頻樹莓派5時,需將其溫度控制在80°C以下。官方樹莓派5機箱配備散熱風扇,主動散熱配件則包含散熱片和風扇,均有助于溫度控制。超頻樹莓派5需修改config.txt啟動設置文件,調整CPU速度設置。但超頻可能縮短Pi5的使用壽命,并使保修失效,因此需謹慎操作。樹莓派5的速度比樹莓派4快兩
    的頭像 發表于 06-10 17:29 ?2807次閱讀
    <b class='flag-5'>關于</b> 樹莓派5 超頻:你需要<b class='flag-5'>知道</b>的<b class='flag-5'>一切</b>!

    CY7C65223-24LTXIT的DP和DM引腳的輸出電壓范圍是多少?

    你好, 關于CY7C65223-24LTXIT,我想知道單獨使用USB驅動程序操作時USBDP和USBDM引腳的以下信息。 1)輸出電壓范圍 2)絕對評級 問候。
    發表于 05-15 07:54

    如何添加些網絡上的庫到mpy固件的說明或手冊教程?

    如何添加些網絡上的庫到mpy固件的說明或手冊教程? 問題2: 關于mpy的image庫在哪里能了解學習內部代碼,只了解些python,想知道怎么從c轉換成mpy能調用的,自己寫的c
    發表于 04-29 08:16

    想知道油箱在滿油,少油和缺油時電路的變化分析

    想知道油箱在滿油,少油和缺油時電路的變化分析
    發表于 04-09 23:01

    快問快答:產品氣體流量怎么算?精誠工科帶您文讀懂氣體流量檢測!

    面前有個水管,水嘩啦啦地流出來。你想知道水流得有多快,或者說,單位時間內有多少水流出來。這其實就是流量的概念,只不過我們現在討論的是氣體,而不是水。氣體是由很多非
    的頭像 發表于 03-25 17:00 ?904次閱讀
    快問快答:產品氣體流量怎么算?精誠工科帶您<b class='flag-5'>一</b>文讀懂氣體流量檢測!

    企業想知道,DeepSeek如何從外力變內力?

    全面低門檻的解決方案,讓DeepSeek真正融入企業
    的頭像 發表于 03-18 09:08 ?1902次閱讀
    企業<b class='flag-5'>想知道</b>,DeepSeek如何從外力變內力?