當前位置:首頁 > 公眾號精選 > 架構(gòu)師社區(qū)
[導讀]第一部分是背景介紹,包括數(shù)據(jù)開發(fā)的痛點。

本文整理自快手數(shù)據(jù)平臺部,數(shù)據(jù)服務(wù)化中臺負責人倪順發(fā)表的《快手數(shù)據(jù)中臺建設(shè)-大數(shù)據(jù)服務(wù)化之路》的演講。

圍繞數(shù)據(jù)資產(chǎn)服務(wù)化,服務(wù)于業(yè)務(wù)產(chǎn)生商業(yè)價值進行了分享:

  • 第一部分是背景介紹,包括數(shù)據(jù)開發(fā)的痛點。

  • 第二部分是介紹大數(shù)據(jù)服務(wù)化平臺,包括平臺架構(gòu)以及關(guān)鍵細節(jié)詳解。

  • 第三部分是經(jīng)驗總結(jié)和未來思考。

數(shù)據(jù)開發(fā)的痛點

快手是一家數(shù)據(jù)驅(qū)動的公司,數(shù)據(jù)扮演了非常重要的角色,而數(shù)據(jù)的生產(chǎn)加工主要依靠數(shù)據(jù)開發(fā)工程師,其工作內(nèi)容會涉及多個方面。

數(shù)據(jù)開發(fā)工程師則首先根據(jù)業(yè)務(wù)需求開發(fā)好高質(zhì)量的數(shù)據(jù),通常是結(jié)構(gòu)化數(shù)據(jù)(數(shù)據(jù)表);其次,開發(fā)穩(wěn)定可靠的數(shù)據(jù)服務(wù),并通過 API 方式交付給業(yè)務(wù)方使用。

數(shù)據(jù)開發(fā)工程師有兩個痛點,這其中包括:

  • 開發(fā)數(shù)據(jù)服務(wù)門檻高

  • 重復開發(fā)數(shù)據(jù)服務(wù)

開發(fā)數(shù)據(jù)服務(wù)門檻高

數(shù)據(jù)開發(fā)工程師除了開發(fā)完數(shù)據(jù)表外,通常還需要思考如下問題:

①數(shù)據(jù)如何交付:業(yè)務(wù)通常期望使用數(shù)據(jù)接口方式來使用數(shù)據(jù),而非數(shù)據(jù)表,這會更加靈活、解耦、高效。數(shù)據(jù)開發(fā)工程師因此需要建立對應(yīng)的數(shù)據(jù)服務(wù)。

②服務(wù)如何開發(fā):數(shù)據(jù)服務(wù)有多種形式,通常要求開發(fā)工程師有微服務(wù)知識、服務(wù)發(fā)現(xiàn)注冊、高并發(fā)等。

③權(quán)限、可用性問題:開發(fā)完數(shù)據(jù)服務(wù)后,需要考慮權(quán)限問題,確保數(shù)據(jù)資源能被安全的訪問;此外還需要考慮可用性問題,要以多種手段保障數(shù)據(jù)訪問的穩(wěn)定性。

④運維問題:數(shù)據(jù)服務(wù)本身涉及多種運維問題,如擴容、遷移、下線、接口變更、服務(wù)報警等。

以上問題都需要數(shù)據(jù)開發(fā)工程師去解決。這要求數(shù)據(jù)開發(fā)不僅僅是開發(fā)出數(shù)據(jù)表,還需要將數(shù)據(jù)表包裝成一個獨立的、靈活的、高可用的、安全的數(shù)據(jù)服務(wù)。
這對于數(shù)據(jù)開發(fā)工程師要求很高:除了具備基本的業(yè)務(wù)需求捕獲、數(shù)據(jù)建模、SQL開發(fā)等能力外,還要具備開發(fā)高可用、高性能的數(shù)據(jù)服務(wù)能力(包括Java開發(fā)、微服務(wù)等)。

千萬QPS毫秒響應(yīng):快手數(shù)據(jù)中臺建設(shè)實踐


重復開發(fā)數(shù)據(jù)服務(wù)

快手很多業(yè)務(wù)線(如支付業(yè)務(wù)、直播業(yè)務(wù)、賬戶業(yè)務(wù)等),都存在數(shù)據(jù)需求,各業(yè)務(wù)線都做著:

數(shù)據(jù)同步到線上數(shù)據(jù)庫和緩存。
建設(shè)微服務(wù)等開發(fā),其中不同業(yè)務(wù)線下,數(shù)據(jù)同步和微服務(wù)通常有很多共同之處,重復煙囪式的開發(fā)意味要重復開發(fā)數(shù)據(jù)服務(wù),造成了人力資源浪費,而且開發(fā)效率低,從數(shù)據(jù)開發(fā)到最終交付數(shù)據(jù)服務(wù),需要經(jīng)歷較長的周期。

千萬QPS毫秒響應(yīng):快手數(shù)據(jù)中臺建設(shè)實踐

基于上述痛點,我們開始建設(shè)統(tǒng)一的數(shù)據(jù)服務(wù)化平臺。由此開啟一個新模式去解決問題。

大數(shù)據(jù)服務(wù)化平臺

數(shù)據(jù)平臺本身的定位是一站式自助數(shù)據(jù)服務(wù)平臺。用戶通過平臺來創(chuàng)建數(shù)據(jù)服務(wù)接口、運維服務(wù)、調(diào)用服務(wù)。

平臺秉承“配置即服務(wù)”的理念:數(shù)據(jù)開發(fā)工程師不再需要手寫數(shù)據(jù)服務(wù),只需要在平臺上進行簡單配置,平臺便可自動生產(chǎn)和部署數(shù)據(jù)服務(wù),從而提升效率。

系統(tǒng)架構(gòu)

大數(shù)據(jù)服務(wù)化業(yè)務(wù)架構(gòu)如下所示,Data Lake 數(shù)據(jù)湖中存儲原始數(shù)據(jù),經(jīng)過數(shù)據(jù)開發(fā)之后,形成按主題域組織的數(shù)據(jù)資產(chǎn)。

此時數(shù)據(jù)資產(chǎn)通常是在數(shù)據(jù)倉庫,訪問速度較慢,因此需要通過數(shù)據(jù)加速到更高速的存儲介質(zhì),最后經(jīng)過多場景服務(wù)接口,服務(wù)于業(yè)務(wù)。

千萬QPS毫秒響應(yīng):快手數(shù)據(jù)中臺建設(shè)實踐

在技術(shù)架構(gòu)方面,數(shù)據(jù)接口形式有 RPC 和 HTTP 兩類接口。

RPC 接口不需要重復建立鏈接,且傳輸數(shù)據(jù)時會被高效序列化,適用于高吞吐場景下的微服務(wù),實現(xiàn)負載均衡、流控、降級、調(diào)用鏈追蹤等功能。相對而言,HTTP 接口傳輸效率低一些,但使用非常簡單。

關(guān)鍵技術(shù)一:配置即開發(fā)

平臺用戶分為兩類角色:其一是數(shù)據(jù)服務(wù)生產(chǎn)方,其二是數(shù)據(jù)服務(wù)調(diào)用方。數(shù)據(jù)服務(wù)生產(chǎn)方只需要配置,做到“配置即開發(fā)”。

配置包括:

  • 數(shù)據(jù)源

  • 數(shù)據(jù)加速到何處

  • 接口形態(tài),訪問方式

  • 配置獨立的測試環(huán)境,訪問隔離的測試數(shù)據(jù)

當配置完畢后,數(shù)據(jù)服務(wù)平臺便會根據(jù)配置清單,完成接口的自動化生產(chǎn)和部署。
生產(chǎn)和部署完畢后,調(diào)用方在平臺申請服務(wù)權(quán)限調(diào)用。通過自動化生產(chǎn),達到配置即開發(fā)的目的,從而極大的提升效率。 千萬QPS毫秒響應(yīng):快手數(shù)據(jù)中臺建設(shè)實踐

關(guān)鍵技術(shù)二:多模式服務(wù)形態(tài)

數(shù)據(jù)服務(wù)有多種服務(wù)形態(tài),包括:

①KV API:簡單點查,可以支撐百萬 QPS、毫秒延遲。這類 API 是通過模板自動化創(chuàng)建出來,支持單查、批量查詢等接口,返回的結(jié)果是 Protobuf (PB) 結(jié)構(gòu)體,從而將結(jié)果自動做了 ORM,對于主調(diào)方更加友好。

典型場景包括:根據(jù) IP 查詢 geo 位置信息、根據(jù)用戶 Id 查詢用戶標簽畫像信息等。

②SQL API:復雜靈活查詢,底層基于 OLAP/OLTP 存儲引擎。通過 Fluent API 接口,用戶可自由組合搭配一種或若干種嵌套查詢條件,可查詢?nèi)舾珊唵巫侄位蛘呔酆献侄危煞猪摶蛘呷咳』財?shù)據(jù)。

典型場景包括:用戶圈選(組合若干用戶標簽篩選出一批用戶)。

③Union API:融合 API,可自由組合多個原子 API,組合方式包括串行和并行方式。

調(diào)用方不再需要調(diào)用多個原子 API,而是調(diào)用融合 API,通過服務(wù)端代理訪問多個子查詢,可以極大降低訪問延遲。

千萬QPS毫秒響應(yīng):快手數(shù)據(jù)中臺建設(shè)實踐

關(guān)鍵技術(shù)三:高效數(shù)據(jù)加速

前面提及的數(shù)據(jù)資產(chǎn),通常是存在于低速的存儲引擎中,無法支撐線上業(yè)務(wù)高訪問流量。因此需要以系統(tǒng)化的方式進行數(shù)據(jù)加速。

目前有兩種加速方式:

  • 全量數(shù)據(jù)加速

  • 多級緩存(部分數(shù)據(jù)加速)

全量數(shù)據(jù)加速:從多個數(shù)據(jù)源攝入原始數(shù)據(jù)(如 Kafka,MySQL、線上訪問日志等),進行加工建模后,得到數(shù)據(jù)資產(chǎn)。

數(shù)據(jù)資產(chǎn)經(jīng)由獨立的數(shù)據(jù)同步服務(wù),同步至其他更高速的存儲引擎,如 Redis、Hbase、Druid 等。

數(shù)據(jù)同步支持一次性或者周期性(小時、天、周等)將數(shù)據(jù)從 Hive 同步至其他存儲中,數(shù)據(jù)同步本身是基于分布式的調(diào)度系統(tǒng),內(nèi)核是基于 datax 進行數(shù)據(jù)同步。

大數(shù)據(jù)服務(wù)化平臺單日同步的數(shù)據(jù)量達到 1200 億條,數(shù)據(jù) size 達到 20TB。

千萬QPS毫秒響應(yīng):快手數(shù)據(jù)中臺建設(shè)實踐

多級緩存:大數(shù)據(jù)服務(wù)化平臺會使用 Redis、Hbase、Druid、Clickhouse 等方式存儲所有數(shù)據(jù),但是部分存儲如 Hbase 速度可能較慢,針對熱點數(shù)據(jù)需要使用額外的熱點緩存來 Cache 數(shù)據(jù)。

熱點緩存是多級緩存,針對每個 API 接口,用戶可自由搭配組合多級緩存、靈活設(shè)置緩存策略。

此外,針對數(shù)據(jù)較大的 API,還可配置數(shù)據(jù)壓縮,通過多種壓縮方式(如 ZSTD,SNAPPY,GZIP 等),可將數(shù)據(jù)量顯著減少(部分 API 甚至能減少 90% 的數(shù)據(jù)存儲量)

千萬QPS毫秒響應(yīng):快手數(shù)據(jù)中臺建設(shè)實踐

關(guān)鍵技術(shù)四:高可用保障

服務(wù)可用性是微服務(wù)領(lǐng)域內(nèi)的一大核心,服務(wù)的高可用通常需要組合多種手段來保障。

快手數(shù)據(jù)服務(wù)化平臺通過多種方式來達到高可用的目的,主要包括:

  • 彈性服務(wù)框架

  • 資源隔離

  • 全鏈路監(jiān)控

彈性服務(wù)框架

數(shù)據(jù)服務(wù)是部署在容器云環(huán)境,容器云是快手自研的彈性可伸縮的容器服務(wù),部署在其中的 RPC 服務(wù)會注冊到 KESS (快手自研服務(wù)注冊與發(fā)現(xiàn)中心),供主調(diào)方去調(diào)用,如有離群壞點,會自動摘除。
服務(wù)調(diào)用是基于 RPC,全鏈路都有監(jiān)控,包括服務(wù)可用性、延遲、QPS、容器CPU、容器內(nèi)存等情況。

千萬QPS毫秒響應(yīng):快手數(shù)據(jù)中臺建設(shè)實踐

資源隔離

資源隔離是可用性保障的常見手段之一,通過隔離將意外故障等情況的影響面降低。

不管是微服務(wù),還是存儲,我們都按照業(yè)務(wù)+優(yōu)先級(高、中、低)粒度隔離部署,獨立保障,業(yè)務(wù)之間互不影響、業(yè)務(wù)內(nèi)不同級別也互不影響。

同一業(yè)務(wù)線內(nèi)可能有多個不同數(shù)據(jù)服務(wù),通過混合部署,提高資源使用率。

千萬QPS毫秒響應(yīng):快手數(shù)據(jù)中臺建設(shè)實踐

全鏈路監(jiān)控

服務(wù)很難避免出現(xiàn)問題或者故障,一旦出現(xiàn)問題,及早發(fā)現(xiàn)及早介入是非常重要的。

服務(wù)平臺構(gòu)建了全鏈路監(jiān)控,包括:

  • 數(shù)據(jù)同步:對數(shù)據(jù)資產(chǎn)同步至高速存儲的過程進行監(jiān)控,包括數(shù)據(jù)質(zhì)量檢測(過濾臟數(shù)據(jù))、同步超時或者失敗檢測等

  • 服務(wù)穩(wěn)定性:構(gòu)建一個獨立的哨兵服務(wù),來監(jiān)測每個 API 的運行指標(如延遲、可用性等),客觀的評估健康度。

  • 業(yè)務(wù)正確性: 數(shù)據(jù)服務(wù)需要確保用戶訪問的數(shù)據(jù)內(nèi)容和數(shù)據(jù)資產(chǎn)表內(nèi)容是一致的,因此哨兵服務(wù)會從數(shù)據(jù)一致性層面去探查,確保每個 API 的數(shù)據(jù)一致性。

千萬QPS毫秒響應(yīng):快手數(shù)據(jù)中臺建設(shè)實踐

總結(jié)和展望

大數(shù)據(jù)服務(wù)化平臺從 2017 年演化至今,已經(jīng)支持多類應(yīng)用場景,涵蓋直播、短視頻、電商、商業(yè)化等在線業(yè)務(wù),生產(chǎn)者中臺等準在線業(yè)務(wù),運營系統(tǒng)等偏內(nèi)部數(shù)據(jù)系統(tǒng)等,目前平臺在線業(yè)務(wù)總 QPS 達到 1000W,平均延遲在毫秒級。

對于準在線業(yè)務(wù)和內(nèi)部數(shù)據(jù)系統(tǒng),基于 CH、Druid 等多種數(shù)據(jù)引擎,支持多種靈活查詢。
數(shù)據(jù)服務(wù)平臺支持了多種模式 API,很好滿足了多元化需求。此外數(shù)據(jù)服務(wù)平臺也支持服務(wù)權(quán)限、API 市場等豐富功能,進一步賦能業(yè)務(wù)。
千萬QPS毫秒響應(yīng):快手數(shù)據(jù)中臺建設(shè)實踐

大數(shù)據(jù)服務(wù)化平臺未來進一步發(fā)展方向主要包括:

①貼近業(yè)務(wù)需求:數(shù)據(jù)服務(wù)平臺本身是為業(yè)務(wù)服務(wù),通過賦能業(yè)務(wù)而對企業(yè)帶來價值,業(yè)務(wù)本身在不斷發(fā)展,未來也會有更多的需求出現(xiàn),因此數(shù)據(jù)服務(wù)平臺本身會不斷抽象和沉淀出公共數(shù)據(jù)服務(wù)能力。

②深耕 數(shù)據(jù)資產(chǎn) 數(shù)據(jù)資產(chǎn)是數(shù)據(jù)服務(wù)之根本,如果沒有完善的數(shù)據(jù)資產(chǎn)建設(shè),上面就很難構(gòu)建出結(jié)構(gòu)化的統(tǒng)一的數(shù)據(jù)服務(wù),針對數(shù)據(jù)資產(chǎn)有較多內(nèi)容,包括資產(chǎn)注冊和審核、資產(chǎn)地圖、資產(chǎn)標簽、資產(chǎn)管理、資產(chǎn)開放和服務(wù)。

千萬QPS毫秒響應(yīng):快手數(shù)據(jù)中臺建設(shè)實踐

大數(shù)據(jù)服務(wù)平臺的能力建設(shè)會朝著統(tǒng)一的 OneService 體系前進。

主要包括三個方面:

  • 支持豐富的數(shù)據(jù)源:包括大寬表、文本文件、機器學習模型(模型也是一種數(shù)據(jù)資產(chǎn)),來構(gòu)建完善的數(shù)據(jù)服務(wù)。

  • 支持多樣取數(shù)方式:除了支持同步快速取數(shù)之外,還支持異步查詢?nèi)?shù)、推送結(jié)果、定時任務(wù)等多樣化方式,以滿足業(yè)務(wù)多種場景需求。

  • 建設(shè)統(tǒng)一的 API 網(wǎng)關(guān):集成權(quán)限管控、限流降級、流量管理等于一體,不僅平臺創(chuàng)建的服務(wù)可以注冊進 API 網(wǎng)關(guān),用戶自己開發(fā)的 API 也可注冊進 API 網(wǎng)關(guān),從而享受已有的基礎(chǔ)網(wǎng)關(guān)能力,為業(yè)務(wù)提供數(shù)據(jù)服務(wù)能力。

免責聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉