1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        作為國內(nèi)規(guī)模最大的ClickHouse用戶,字節(jié)跳動踩過哪些坑?

        共 4421字,需瀏覽 9分鐘

         ·

        2021-11-19 14:28

        作者 | 蔡芳芳
        采訪嘉賓 | 郭東東

        ClickHouse 由于其性能方面的突出優(yōu)勢,正在分析型數(shù)據(jù)庫領(lǐng)域掀起一波新的技術(shù)浪潮。作為國內(nèi)規(guī)模最大的 ClickHouse 用戶,目前字節(jié)跳動內(nèi)部的 ClickHouse 節(jié)點總數(shù)超過 15000 個,管理總數(shù)據(jù)量超過 600PB,最大的集群規(guī)模在 2400 余個節(jié)點。實際上,字節(jié)跳動廣泛的業(yè)務(wù)增長分析很多都建立在 ClickHouse 為基礎(chǔ)的查詢引擎上。

        那么,ClickHouse 具體應(yīng)用于字節(jié)跳動哪些業(yè)務(wù)場景?為什么選擇采用 ClickHouse 而不是其他數(shù)據(jù)分析技術(shù)?在使用 ClickHouse 的過程中,字節(jié)跳動內(nèi)部團(tuán)隊又踩過哪些坑?近日,InfoQ 帶著上述問題采訪了字節(jié)跳動數(shù)據(jù)平臺數(shù)據(jù)應(yīng)用研發(fā)負(fù)責(zé)人郭東東。

        1 字節(jié)跳動數(shù)據(jù)應(yīng)用產(chǎn)品
        ?InfoQ:您在奇虎 360 工作的時候也曾負(fù)責(zé)大數(shù)據(jù)平臺建設(shè),能否基于您自己的感受,談?wù)?360 和字節(jié)兩家企業(yè)建設(shè)大數(shù)據(jù)平臺的側(cè)重點有哪些不同?(比如場景、需求、技術(shù)棧等等)

        郭東東:兩家公司的發(fā)展階段,包括本身數(shù)據(jù)的體量都有一些差異,所以這兩個公司可能在建設(shè)上有一些比較相通的地方,也有一些差異化。在 360 那時候主要是 Hadoop 生態(tài)剛剛興起,當(dāng)時更多的工作是把 Hadoop、HBase 等一系列大數(shù)據(jù)技術(shù)引入到 360,去解決之前傳統(tǒng)數(shù)據(jù)庫構(gòu)建、數(shù)據(jù)分析平臺建設(shè)這塊的一些瓶頸,當(dāng)時更多只是把這些平臺作為底座更好地支撐業(yè)務(wù)。

        來字節(jié)跳動之后,這些開源的生態(tài)已經(jīng)比較成熟了。我們更多是怎樣體系化地建設(shè)數(shù)據(jù)平臺,在技術(shù)平臺的基礎(chǔ)之上,更多地構(gòu)建數(shù)據(jù)分析的其他能力。當(dāng)然,字節(jié)跳動的數(shù)據(jù)量后期增速很大,本身底層分析引擎等方面的挑戰(zhàn)也比較大。

        ?InfoQ:您團(tuán)隊負(fù)責(zé)的數(shù)據(jù)應(yīng)用產(chǎn)品,與前段時間字節(jié)對外開放的火山引擎數(shù)據(jù)中臺產(chǎn)品,二者之間的關(guān)系應(yīng)該怎么理解?

        郭東東: 我主要負(fù)責(zé)數(shù)據(jù)應(yīng)用相關(guān)產(chǎn)品,跟火山引擎的數(shù)據(jù)中臺其實是上下游的依賴關(guān)系。中臺更多是把數(shù)據(jù)整理好加工好,形成相對規(guī)范的數(shù)據(jù)體系。數(shù)據(jù)應(yīng)用的話更多考慮的是在數(shù)據(jù)體系上怎樣把更多的數(shù)據(jù)能力賦能給業(yè)務(wù)線,比如各種分析能力、AB 實驗?zāi)芰Α⑿袨榉治瞿芰涂梢暬芰Φ鹊?。二者是一個比較密切的協(xié)同關(guān)系。

        ?InfoQ:數(shù)據(jù)應(yīng)用產(chǎn)品迭代的節(jié)奏和流程是怎樣的?

        郭東東: 我們基本上采用敏捷開發(fā),一個迭代周期可能是兩到三周,每個產(chǎn)品會不太一樣,整體來說是小步快跑的節(jié)奏,快速把客戶的需求轉(zhuǎn)化成產(chǎn)品能力,然后提供給用戶去使用。這里面包括測試環(huán)節(jié)、活動環(huán)節(jié)都需要把控,整個有一套相對完善的需求管理和研發(fā)管控的系統(tǒng)。

        ?InfoQ:能否以一個數(shù)據(jù)應(yīng)用產(chǎn)品為例,為我們拆解一下背后的整體技術(shù)棧和架構(gòu)是什么樣的?

        郭東東: 我以 AB 實驗平臺為例,簡單介紹一下我們整體的技術(shù)棧和架構(gòu)。AB 實驗平臺整個產(chǎn)品的技術(shù)架構(gòu)包括指標(biāo)建設(shè)模塊、數(shù)據(jù)分流模塊等,以及底層的查詢引擎能力。指標(biāo)建設(shè)模塊負(fù)責(zé)數(shù)據(jù)的接入和清洗,包括整個 AB 實驗平臺數(shù)據(jù)體系的建設(shè)。數(shù)據(jù)分流模塊模塊主要是根據(jù)不同用戶實時決定用戶屬于的實驗組。最底層的查詢引擎是我們的核心,主要負(fù)責(zé)保證整個交互式查詢的能力,這里面還有一些增強(qiáng)分析的子模塊等等。整個是以容器化部署的,編程語言的話包括 Python、Go 這些都有用到。

        2 ClickHouse 應(yīng)用實踐
        ?InfoQ:ClickHouse 其實在 16 年就已經(jīng)開源了,但似乎直到去年熱度和關(guān)注度才一下子變得特別高,這是為什么呢?

        郭東東: 其實一個開源技術(shù)從開源到逐步成熟、被業(yè)內(nèi)廣泛采用,本來就需要一個過程。另外,如果有一些大公司逐步在使用這個技術(shù)的話,也有助于更好地推動這項技術(shù)在業(yè)內(nèi)被普遍采用。應(yīng)該說字節(jié)跳動內(nèi)部的 ClickHouse 應(yīng)用實踐,對于 ClickHouse 在業(yè)內(nèi)更大范圍的使用也起到比較大的推動作用。很多公司都跟我們交流過 ClickHouse 的使用情況,包括技術(shù)改進(jìn)、技術(shù)引進(jìn)路線等等。

        另外,從本質(zhì)上來說 ClickHouse 確實解決了一些特定場景和業(yè)務(wù)上存在的比較大的痛點。數(shù)據(jù)分析之前大家更多是困在數(shù)據(jù)量,很少能得到相對明細(xì)數(shù)據(jù)的分析,而 ClickHouse 強(qiáng)大的分析能力剛好解決了這一痛點。這其實也反映了大家對數(shù)據(jù)更細(xì)粒度的分析需求的持續(xù)拓展。

        ?InfoQ:據(jù)了解,ClickHouse 在字節(jié)應(yīng)用還比較多。能否基于您負(fù)責(zé)的團(tuán)隊和產(chǎn)品,介紹一下 ClickHouse 主要應(yīng)用于哪些業(yè)務(wù)場景?第一個采用 ClickHouse 的業(yè)務(wù)場景是什么?

        郭東東:ClickHouse 在字節(jié)的應(yīng)用場景比較多,比如我負(fù)責(zé)的數(shù)據(jù)應(yīng)用平臺,基本上很多底層技術(shù)都非常多地依賴 ClickHouse 提供的能力,比如 BI 分析能力、AB 實驗的分析能力、行為分析能力等等,包括商業(yè)化層面的廣告效果分析,也都是依賴 ClickHouse 的。

        ?InfoQ:在選用 ClickHouse 之前你們做了哪些技術(shù)選型工作?為什么上述業(yè)務(wù)場景選擇采用 ClickHouse 而不是其他數(shù)據(jù)分析技術(shù)?主要看重 ClickHouse 的哪些特性?相對應(yīng)可以解決業(yè)務(wù)場景中的什么問題?

        郭東東: 其實在選 ClickHouse 之前,我們也做了比較多的技術(shù)選型工作。當(dāng)時我們有一個相對比較有挑戰(zhàn)的技術(shù)場景,是要基于很多明細(xì)數(shù)據(jù)做行為分析,這一塊我們研究了挺長時間,當(dāng)時也試用了 Presto、Kylin 等等各種各樣的分析技術(shù),最后選擇了 ClickHouse。主要是 ClickHouse 在相對固定的一個 Panel 場景下,查詢能力確實有比較明顯的優(yōu)勢,而且本身它是不會損失靈活性的,像 Kylin 的話其實靈活性會比較差,只要做一點修改就需要重刷。

        另外我們其實也調(diào)研過 Druid 等,但使用起來跟 ClickHouse 還是有比較大差異的。我們本身選 ClickHouse,還有一個比較大的原因是 ClickHouse 本身 Engine 是相對簡單的,因為它 Engine 的執(zhí)行引擎寫得比較高效,它帶來的向量化執(zhí)行等等這些特性對我們場景化分析的價值還是比較大的。

        ?InfoQ:從最初采用到現(xiàn)在,技術(shù)方案迭代過嗎?團(tuán)隊對基于 ClickHouse 開源版本做了哪些改進(jìn)和優(yōu)化?

        郭東東:ClickHouse 是本身開源版本,我們也會持續(xù)進(jìn)行迭代和優(yōu)化,還是做了不少工作的。比如說 ClickHouse 的單機(jī)用戶規(guī)模原始是受限的,我們做到了大概幾千臺的單機(jī)用戶規(guī)模,這里面就做了大量的優(yōu)化。對于它本身查詢能力層面、性能層面,我們也做了比較多的優(yōu)化,包括特殊的像那些比較復(fù)雜的路徑轉(zhuǎn)換等等一系列分析。

        另外我們也做了 ClickHouse 的云原生改造,本身它只支持 Local 部署的模式,我們做到了存儲計算分離,就能比較容易地基于容器去調(diào)動算力,這些方面也做了很多事情。另外 ClickHouse 不支持事務(wù)、實時寫入能力,包括對 Update 的支持,這塊我們都做了比較多的改進(jìn).

        我們整體來說還是按照云原生和相對完整的一個數(shù)據(jù)庫去推進(jìn)這個演進(jìn),包括對相對復(fù)雜 SQL 能力的支持、優(yōu)化器能力的補足,這塊都有投入。

        ?InfoQ:在使用 ClickHouse 的過程中,你們都遇到過哪些問題?是否有一些解決的經(jīng)驗可以借鑒?

        郭東東: 我們使用 ClickHouse 算比較早的,中間遇到的問題比較多,踩了不少坑,但是現(xiàn)在來看的話,其實 ClickHouse 本身開源也在逐步成熟,很多問題也在逐步完善。至于有哪些經(jīng)驗可借鑒,我覺得可能有幾個點拿出來跟大家分享一下。首先 ClickHouse 本身運維管控是比較弱的,所以我們內(nèi)部自己搭建了一套相對完善的運維管控系統(tǒng),以保證 ClickHouse 的穩(wěn)定性,包括故障節(jié)點的停換等等一系列事情。另外 ClickHouse 在對外數(shù)據(jù)攝入這一方面其實也不算特別完善,這塊我們也做了比較多事情,還有包括實時能力等等。

        3 對大數(shù)據(jù)分析技術(shù)的觀察
        ?InfoQ:能否談?wù)勥^去 1-3 年,您對于大數(shù)據(jù)分析技術(shù)的觀察?有哪些比較重要的變化和趨勢?

        郭東東: 過去三年大數(shù)據(jù)分析技術(shù)發(fā)展還是挺快的,尤其業(yè)內(nèi)也有比較多的開源技術(shù)出現(xiàn),像 ClickHouse 這樣的技術(shù)。另外業(yè)內(nèi)云原生數(shù)據(jù)分析公司(如 Snowflake)的成功,也在大力推動技術(shù)的發(fā)展。

        回到技術(shù)本身,大家其實可以看到越來越多的云原生能力,包括 AI 支持和數(shù)據(jù)分析、數(shù)據(jù)庫和數(shù)據(jù)倉的結(jié)合、湖倉一體、批流一體等等,技術(shù)一直在持續(xù)推進(jìn)。未來我認(rèn)為數(shù)據(jù)分析能力會持續(xù)加強(qiáng),包括數(shù)據(jù)分析技術(shù)的多樣性、整個架構(gòu) Layer Out、存儲計算分離等等,都是比較大的發(fā)展趨勢。

        ?InfoQ:基于實時數(shù)據(jù)流的 Kappa 架構(gòu)現(xiàn)在越來越多企業(yè)開始嘗試。字節(jié)的大數(shù)據(jù)架構(gòu)中,目前是 Lambda 架構(gòu)和 Kappa 架構(gòu)共存嗎?如果是,兩者分別用在哪些場景?如果還只有 Lambda 架構(gòu),那為什么還沒有引入 Kappa 架構(gòu)?

        郭東東: 目前在我們公司內(nèi)部這兩種架構(gòu)都是存在的,每一種架構(gòu)都有不同的使用場景。Lambda 架構(gòu)本身離線和實時是分開的,在我們內(nèi)部更多用于一些數(shù)據(jù)量比較大且整體有一些比較復(fù)雜的策略的場景,比如反作弊等策略,實時很難做得很準(zhǔn)確,就需要把離線和實時分開,離線先提供一份數(shù)據(jù),然后實時進(jìn)一步修正這個數(shù)據(jù),保證數(shù)據(jù)是可用的且準(zhǔn)確性更高。

        但有些場景其實我們也直接采用 Kappa 架構(gòu),尤其數(shù)據(jù)湖這些技術(shù)在內(nèi)部的廣泛使用,保證了實時的分析能力跟離線也差不了太多,類似這種場景我們就會把實時和離線整合起來,就只用一套,保證實時產(chǎn)出的數(shù)據(jù)就是我們最終需要的數(shù)據(jù)。我們只有在出現(xiàn)比較大的數(shù)據(jù)口徑調(diào)整,或者其他事故的時候,才會跑離線任務(wù)去修正,默認(rèn)的話就是一套。

        采訪嘉賓介紹:

        郭東東,字節(jié)跳動數(shù)據(jù)平臺數(shù)據(jù)應(yīng)用研發(fā)負(fù)責(zé)人,負(fù)責(zé)數(shù)據(jù)應(yīng)用相關(guān)產(chǎn)品的研發(fā),具體包括 AB 實驗平臺、行為分析系統(tǒng)、智能 BI 洞察系統(tǒng)相關(guān)產(chǎn)品等,支撐內(nèi)部的抖音、今日頭條等核心業(yè)務(wù)線。曾經(jīng)任職于奇虎 360,負(fù)責(zé)大數(shù)據(jù)平臺相關(guān)建設(shè),有 10 年的大數(shù)據(jù)平臺以及應(yīng)用架構(gòu)經(jīng)驗,對 OLAP、大數(shù)據(jù)實時 & 離線處理技術(shù)有比較深入的了解,熟悉 ClickHouse、Spark、Presto 等主流的大數(shù)據(jù)處理技術(shù)。


        --end--

        掃描下方二維碼
        添加好友,備注【交流
        可私聊交流,也可進(jìn)資源豐富學(xué)習(xí)群


        更文不易,點個“在看”支持一下??

        瀏覽 81
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            日日天天 | 动漫美女巨乳 | 欧美黄片在哪里看 | www.av少妇 | 看看欧美黑人操逼免费的 | 精品视频一区二区 | 国产成人操欧美屄熟 | 亚洲性爱视频在线观看 | 久久五月婷婷色 | 好湿好多水夹得我好紧 |