自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

從 MySQL 到 ByteHouse,抖音精準(zhǔn)推薦存儲(chǔ)架構(gòu)重構(gòu)解讀

數(shù)據(jù)庫(kù)
ByteHouse是一款OLAP引擎,具備查詢效率高的特點(diǎn),在硬件需求上相對(duì)較低,且具有良好的水平擴(kuò)展性,如果數(shù)據(jù)量進(jìn)一步增長(zhǎng),可以通過(guò)增加服務(wù)器數(shù)量來(lái)提升處理能力。本文將從興趣圈層建設(shè)難點(diǎn)及構(gòu)建方案等角度拆解如何基于OLAP引擎來(lái)搭建興趣圈層平臺(tái)。

抖音依靠自身推薦系統(tǒng)為用戶推送可能感興趣的視頻內(nèi)容,其中興趣圈層是推薦的重要能力,通過(guò)理解核心用戶的偏好特征,判斷兩者偏好的相似性,從而構(gòu)建同類(lèi)用戶的興趣圈層,實(shí)現(xiàn)精準(zhǔn)推薦。

以往的興趣圈層往往依賴單一的維度或標(biāo)簽,比如內(nèi)容類(lèi)型、時(shí)長(zhǎng)、地理特征等,難以揭示用戶興趣的底層邏輯。例如,重慶美女小姐姐吃播視頻、二次元古風(fēng)舞蹈視頻,表面上標(biāo)簽類(lèi)型可能完全不一樣,但深度分析后發(fā)現(xiàn)喜歡兩個(gè)視頻的是同一個(gè)類(lèi)型的人,并把他們劃分在同一個(gè)興趣圈層中。

要搭建這樣一套興趣圈層平臺(tái),不僅需要算法策略,對(duì)底層數(shù)據(jù)存儲(chǔ)架構(gòu)也是一大挑戰(zhàn)。抖音每日新增的數(shù)據(jù)量龐大、業(yè)務(wù)標(biāo)簽五花八門(mén),更需要滿足業(yè)務(wù)人員對(duì)復(fù)雜查詢的實(shí)時(shí)性訴求。之前技術(shù)團(tuán)隊(duì)采用MySQL作為存儲(chǔ)架構(gòu),作為一種行式存儲(chǔ)的數(shù)據(jù)庫(kù),MySQL對(duì)于大量數(shù)據(jù)的處理效率較低。如果要在MySQL上查詢上億級(jí)別的數(shù)據(jù),可能需要更高配置的硬件,甚至可能需要采用分片、讀寫(xiě)分離等策略來(lái)提升性能,這將導(dǎo)致硬件成本顯著提高。

因此,技術(shù)團(tuán)隊(duì)逐漸將興趣平臺(tái)基于ByteHouse進(jìn)行重構(gòu)。ByteHouse是一款OLAP引擎,具備查詢效率高的特點(diǎn),在硬件需求上相對(duì)較低,且具有良好的水平擴(kuò)展性,如果數(shù)據(jù)量進(jìn)一步增長(zhǎng),可以通過(guò)增加服務(wù)器數(shù)量來(lái)提升處理能力。本文將從興趣圈層建設(shè)難點(diǎn)及構(gòu)建方案等角度拆解如何基于OLAP引擎來(lái)搭建興趣圈層平臺(tái)。

興趣圈層平臺(tái)介紹

興趣圈層指興趣愛(ài)好相同的人組成的群體,興趣圈層可以從用戶視角更深入的理解短視頻作者和內(nèi)容,挖掘出該圈層作者核心用戶群體的共同興趣點(diǎn)和典型偏好特征,作為劃分作者的重要標(biāo)簽,應(yīng)用在內(nèi)容分發(fā)、垂類(lèi)運(yùn)營(yíng)、數(shù)據(jù)分析、戰(zhàn)略規(guī)劃等場(chǎng)景中輸出價(jià)值。興趣圈層以簇(cluster)的形式存在,通過(guò)機(jī)器模型聚類(lèi)而成,每個(gè)簇包含一位種子作者及多位與之關(guān)聯(lián)作者。

圖片

圈層生產(chǎn)流程:數(shù)倉(cāng)的天級(jí) Hive 表以定時(shí)任務(wù)的方式將 Hive 表內(nèi)數(shù)據(jù)按照分區(qū)導(dǎo)入 RDS(MySQL) 數(shù)據(jù)庫(kù),同時(shí)預(yù)計(jì)算腳本每天會(huì)定時(shí)將 RDS 內(nèi)的數(shù)據(jù)按需寫(xiě)入緩存(如圈層信息等通用查詢)或?qū)懟豏DS(如圈層的父節(jié)點(diǎn)信息等核心數(shù)據(jù)),生產(chǎn)流程成功會(huì)標(biāo)記在緩存代表今日數(shù)據(jù)有效,反之報(bào)警通知相關(guān)負(fù)責(zé)人。

圈層查詢流程:用戶操作查詢,前端發(fā)送查詢場(chǎng)景數(shù)據(jù)請(qǐng)求,服務(wù)端接收到請(qǐng)求后讀取相應(yīng)的緩存、數(shù)據(jù)庫(kù)表及分區(qū),對(duì)數(shù)據(jù)進(jìn)行組裝,最終返回給用戶。

主要問(wèn)題

數(shù)據(jù)膨脹

日更版本導(dǎo)致數(shù)據(jù)量級(jí)膨脹,圈層基礎(chǔ)信息表日增萬(wàn)級(jí)數(shù)據(jù),圈層作者信息表日增百萬(wàn)數(shù)據(jù),圈層用戶信息表日增千萬(wàn)條左右數(shù)據(jù),已經(jīng)達(dá)到 MySQL 秒級(jí)千萬(wàn)級(jí)查詢的性能瓶頸。

查詢效率已無(wú)法滿足需求,即使有緩存加速減少聯(lián)表查詢,單表查詢的效率在到10s以上,其中圈層理解(圈層用戶信息表)進(jìn)入頁(yè)面的時(shí)間超過(guò)15s,一定程度影響業(yè)務(wù)使用體驗(yàn)。之前做了很多包括索引優(yōu)化、查詢優(yōu)化、緩存優(yōu)化、表結(jié)構(gòu)優(yōu)化,但是單次對(duì)表更新列/新增修改索引的時(shí)間已經(jīng)超過(guò)2天,優(yōu)化成本也逐漸升高。

歷史架構(gòu)過(guò)薄,難以承接較復(fù)雜圈選能力

從現(xiàn)狀來(lái)看,當(dāng)前圈層架構(gòu)簡(jiǎn)單且為區(qū)分查詢場(chǎng)景,與數(shù)據(jù)庫(kù)直接交互且僅支持簡(jiǎn)單的同步查詢,當(dāng)業(yè)務(wù)需要較復(fù)雜的泛化圈選條件時(shí),需要用戶在平臺(tái)等待超過(guò)15s。

從未來(lái)規(guī)劃,目前以 RDS 為存儲(chǔ)的同步查詢架構(gòu)已無(wú)法支持需要關(guān)聯(lián)多個(gè)表和特征的復(fù)雜條件查詢的業(yè)務(wù)場(chǎng)景。

業(yè)務(wù)特征膨脹

標(biāo)簽特征膨脹,當(dāng)前圈層有越來(lái)越多的標(biāo)簽描述,由于不同業(yè)務(wù)方會(huì)通過(guò)不同視角理解圈層,如垂類(lèi)標(biāo)簽/圈層關(guān)鍵詞描述/圈層質(zhì)量分類(lèi)/圈層畫(huà)風(fēng)等,目前圈層信息實(shí)體特征達(dá)到幾十種,預(yù)計(jì)圈層屬性標(biāo)簽仍會(huì)膨脹。

一站式圈選泛化目標(biāo)作者訴求增多,當(dāng)前作者只包含基礎(chǔ)信息,業(yè)務(wù)方希望基于圈層和其他基礎(chǔ)作者特征,如粉絲數(shù),作者質(zhì)量,活躍度等以滿足對(duì)作者的流量定向策略等需求,以滿足復(fù)雜條件多維度的篩選排序功能。

基于 ByteHouse 重構(gòu)興趣圈層平臺(tái)

RDS 作為行式數(shù)據(jù)庫(kù)更適合單點(diǎn)事務(wù)分析工作顯然不符合當(dāng)前平臺(tái)訴求,我們分別從查詢場(chǎng)景、查詢性能、存儲(chǔ)成本、遷移成本對(duì)存儲(chǔ)選型。

查詢場(chǎng)景

  1. 圈層信息由模型生產(chǎn),按時(shí)間分區(qū)批量導(dǎo)入,不存在臨時(shí)導(dǎo)入,為 append only 場(chǎng)景。
  2. 圈層特征多,業(yè)務(wù)方按照訴求對(duì)和自身業(yè)務(wù)相關(guān)的特征進(jìn)行篩選,列式存儲(chǔ)比行式存儲(chǔ)更合適。
  3. 圈層主要以分析統(tǒng)計(jì)為主,不強(qiáng)需求事務(wù)處理,面向 OLAP 業(yè)務(wù)。

查詢性能

  1. MySQL 對(duì)于多列復(fù)雜的條件查詢時(shí),查詢性能很難優(yōu)化,需要通過(guò)強(qiáng)依賴 redis 緩存加速,否則平臺(tái)功能不可用。
  2. 圈層場(chǎng)景通常限制在局部數(shù)據(jù)中聚合分析,如計(jì)算圈層id位于集合內(nèi)的關(guān)鍵詞頻率統(tǒng)計(jì),若該集合范圍過(guò)大索引失效會(huì)被劣化為全表掃描。

詳細(xì)場(chǎng)景測(cè)試

重構(gòu)前后存儲(chǔ)對(duì)比

圖片

具體場(chǎng)景對(duì)比

數(shù)據(jù)管理信息查詢場(chǎng)景:

圖片

應(yīng)用工具分析場(chǎng)景:

圖片

總結(jié)

綜上可以看到,基于 ByteHouse 替換 MySQL 重構(gòu)抖音興趣圈層平臺(tái)后,不同幾個(gè)典型場(chǎng)景的查詢效率平均提升了 100 倍左右,大大提升了用戶體驗(yàn)。由于 ByteHouse 出色的查詢性能和良好的數(shù)據(jù)壓縮比,中等資源的服務(wù)器就能很好的滿足需求,這也降低了綜合硬件成本。此外,ByteHouse 具有良好的水平擴(kuò)展能力,如果數(shù)據(jù)量進(jìn)一步增長(zhǎng),也可以便捷的通過(guò)增加服務(wù)器數(shù)量來(lái)提升分析能力。

責(zé)任編輯:龐桂玉 來(lái)源: 字節(jié)跳動(dòng)技術(shù)團(tuán)隊(duì)
相關(guān)推薦

2022-08-10 08:41:01

Feed 容器維護(hù)管理

2023-10-30 15:51:43

ByteHouse大數(shù)據(jù)

2023-10-31 07:45:02

云原生數(shù)據(jù)庫(kù)

2023-12-30 13:53:58

抖音快手策略

2022-06-30 09:50:15

火山引擎ByteHouse

2022-06-06 12:19:08

抖音功耗優(yōu)化Android 應(yīng)用

2021-06-28 05:19:32

抖音電腦

2022-01-22 07:44:12

抖音PC 版電腦刷抖音

2021-10-28 07:10:21

rollupPlugin插件編寫(xiě)

2018-06-19 09:54:22

MySQLHBase存儲(chǔ)

2019-03-07 15:04:37

抖音快手同城

2014-08-14 11:20:42

2017-03-06 17:30:11

微服務(wù)架構(gòu)系統(tǒng)

2019-06-21 09:55:10

刷抖美腿App

2017-06-08 11:54:40

億級(jí)推廣流量

2021-02-05 09:00:00

開(kāi)發(fā)IT事件管理

2011-03-22 16:55:53

LAMPWAMP
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)