小米數(shù)據(jù)生產(chǎn)平臺(tái)的產(chǎn)品設(shè)計(jì)方法與實(shí)踐
一、數(shù)據(jù)生命周期全流程介紹
首先,從產(chǎn)品經(jīng)理的角度,給大家用淺顯易懂的方式介紹一下數(shù)據(jù)的生命周期全流程是什么。
1、數(shù)據(jù)全生命周期流程
數(shù)據(jù)從生產(chǎn)到應(yīng)用全流程大致可以分為 5 個(gè)步驟,首先是數(shù)據(jù)的產(chǎn)生,接下來對(duì)產(chǎn)生的數(shù)據(jù)進(jìn)行收集,再找個(gè)容器存儲(chǔ)起來,存儲(chǔ)后進(jìn)行處理加工,最后把數(shù)據(jù)投入應(yīng)用。大部分?jǐn)?shù)據(jù)產(chǎn)品都對(duì)應(yīng)這五個(gè)環(huán)節(jié)。而今天要介紹的小米數(shù)據(jù)生產(chǎn)平臺(tái)重點(diǎn)在前四個(gè)環(huán)節(jié),我們將前面四個(gè)環(huán)節(jié)統(tǒng)稱為數(shù)據(jù)生產(chǎn)鏈路。
數(shù)據(jù)生產(chǎn)的過程,可以用水的產(chǎn)生到應(yīng)用做一個(gè)類比。首先,水產(chǎn)生于雨水、以及江河湖海中自然產(chǎn)生的源源不斷的水資源(產(chǎn)生),因?yàn)槲覀冃枰盟Y源,所以人為修建堤壩、水渠、水庫來將這些水分流收集并且存儲(chǔ)起來(收集&存儲(chǔ))。希望這些水可以為我所用,就需要一些處理流程,進(jìn)行水凈化、過濾、消毒、去污等一系列操作(處理),最終不同處理方式的水可以分別用于飲用水、灌溉、工業(yè)生產(chǎn)生活等場(chǎng)景中(應(yīng)用)。數(shù)據(jù)的流程和水的生命流程是類似的。
2、數(shù)據(jù)的產(chǎn)生
生活中的行為會(huì)產(chǎn)生各種各樣的數(shù)據(jù),互聯(lián)網(wǎng)時(shí)代,線上數(shù)據(jù)較為常見,例如使用手機(jī)、電腦、手表等電子用品,人們?cè)谝陨系慕K端進(jìn)行各種操作,就會(huì)產(chǎn)生行為數(shù)據(jù);另一類是和生活更密切相關(guān)的線下數(shù)據(jù),例如逛商店、做運(yùn)動(dòng)、聽歌、拍照、錄視頻等線下實(shí)體行為,同樣會(huì)產(chǎn)生數(shù)據(jù)。
3、數(shù)據(jù)的收集
數(shù)據(jù)產(chǎn)生后,根據(jù)不同的終端或者維度,進(jìn)行數(shù)據(jù)收集。數(shù)據(jù)的收集是將不同的業(yè)務(wù)系統(tǒng)、終端、源頭的數(shù)據(jù)實(shí)現(xiàn)互聯(lián)互通。
線上數(shù)據(jù)采集分為客戶端和服務(wù)端,客戶端與用戶聯(lián)系更緊密,常見的有 Web 端、網(wǎng)頁端、安卓和蘋果手機(jī)的操作系統(tǒng)等。
線下會(huì)通過物聯(lián)網(wǎng)工具去進(jìn)行信息的采集,例如,攝像頭、傳感器或者 Wi-Fi。另外一種傳統(tǒng)途徑,例如在之前特殊時(shí)期,會(huì)通過線下問卷或者表格的方式去登記信息,也是一種數(shù)據(jù)收集過程。
第三類是較為特殊的數(shù)據(jù)收集過程,通過爬蟲采集外部數(shù)據(jù),這類數(shù)據(jù)不是直接產(chǎn)生,而是在合法合規(guī)的前提下爬取已有的數(shù)據(jù)。另外,業(yè)務(wù)系統(tǒng)的跨源同步,也可以認(rèn)為是數(shù)據(jù)收集的過程,把不同的數(shù)據(jù)類型匯集到一個(gè)更易于應(yīng)用的大數(shù)據(jù)系統(tǒng)中。
4、數(shù)據(jù)的存儲(chǔ)
我們?cè)谌粘I钪校x擇存儲(chǔ)容器的時(shí)候,會(huì)考慮很多因素,例如:被存儲(chǔ)物件的形狀、樣式、形態(tài)、規(guī)模和使用場(chǎng)景,常用的物品希望存得近一點(diǎn),成本也需要考慮,要權(quán)衡花費(fèi)多少性價(jià)比最高。
數(shù)據(jù)存儲(chǔ)容器的選擇也是類似的邏輯,數(shù)據(jù)的結(jié)構(gòu)以及存儲(chǔ)的格式,數(shù)據(jù)大小和條數(shù),在使用場(chǎng)景中,希望是查詢性能更高,還是可擴(kuò)展性更好,還是并發(fā)度更高,在數(shù)據(jù)的存儲(chǔ)和計(jì)算過程中有多少損耗,還有技術(shù)上的考量等等,決定了我們用什么存儲(chǔ)系統(tǒng)來存數(shù)據(jù)最合適。
根據(jù)不同的數(shù)據(jù)結(jié)構(gòu)、規(guī)模、使用場(chǎng)景,會(huì)選擇不同的存儲(chǔ)類型。大致可以分為五類:關(guān)系型數(shù)據(jù)庫、NoSQL 存儲(chǔ)、網(wǎng)絡(luò)及消息隊(duì)列、文件系統(tǒng)和大數(shù)據(jù)存儲(chǔ)。圖中高亮出來的是常見的存儲(chǔ)方式,小米用的是 Iceberg 和 Hologres。
5、數(shù)據(jù)的處理
存儲(chǔ)完成之后進(jìn)入到數(shù)據(jù)加工環(huán)節(jié),它是將原始的、堆砌的數(shù)據(jù)進(jìn)行數(shù)據(jù)資產(chǎn)建設(shè),加工后服務(wù)于數(shù)據(jù)應(yīng)用場(chǎng)景,使其產(chǎn)生業(yè)務(wù)價(jià)值的過程。處理過程分為三個(gè)方向:數(shù)據(jù)ETL和分層建設(shè)、對(duì)關(guān)鍵內(nèi)容進(jìn)行清洗、用不同的數(shù)據(jù)處理方式進(jìn)行計(jì)算
- ETL
ETL(Extraction-Transformation-Loading),中文名為數(shù)據(jù)抽取,轉(zhuǎn)換和加載的組合,利用 SQL 語句,所有關(guān)系型數(shù)據(jù)庫的公共語句,將數(shù)據(jù)抽取出來,經(jīng)過格式轉(zhuǎn)換與清洗,再加載到目標(biāo)庫中。形成數(shù)倉分層的表,對(duì)數(shù)據(jù)進(jìn)行歸納整理,簡化數(shù)據(jù),去重,提升數(shù)據(jù)使用效率。這是 ETL 的過程及產(chǎn)出價(jià)值。
- 清洗
可以聯(lián)想到生活中洗衣的過程,去污漬、去原本多余的內(nèi)容、補(bǔ)好衣物、曬干疊好。數(shù)據(jù)清洗的核心有:將問題數(shù)據(jù)修補(bǔ)完整,剔除冗余數(shù)據(jù)、將數(shù)據(jù)統(tǒng)一整理,將原始低質(zhì)量的數(shù)據(jù)轉(zhuǎn)變成高質(zhì)量的數(shù)據(jù)。
- 離線和實(shí)時(shí)開發(fā)
此處對(duì)離線開發(fā)和實(shí)時(shí)開發(fā)做一個(gè)簡單介紹,還是類比水的概念。離線開發(fā)就如水用于發(fā)電或發(fā)熱,需要達(dá)到一定的量級(jí)才能實(shí)現(xiàn)能量轉(zhuǎn)換,具有更高的輸出效率,離線的過程需要量的積累,再來批量處理。而實(shí)時(shí)開發(fā)就如落雨后直接進(jìn)行分流、去污處理,沒有中間蓄積的過程,數(shù)據(jù)的產(chǎn)生和加工、應(yīng)用是同步進(jìn)行的。所以,離線開發(fā)是批處理,而實(shí)時(shí)開發(fā)是流式處理。面對(duì)不同的業(yè)務(wù)場(chǎng)景和開發(fā)訴求,我們可以選擇不同的開發(fā)模式。
6、小米的數(shù)據(jù)生產(chǎn)平臺(tái)架構(gòu)
小米平臺(tái)覆蓋了數(shù)據(jù)的產(chǎn)生、收集、存儲(chǔ)和處理四個(gè)環(huán)節(jié),基于計(jì)算引擎和存儲(chǔ)引擎,在元數(shù)據(jù)、權(quán)限、調(diào)度以及集成引擎的基礎(chǔ)服務(wù)上。該平臺(tái)提供了四大核心能力:統(tǒng)一的數(shù)據(jù)采集與集成,對(duì)采集到的數(shù)據(jù)進(jìn)行多引擎的存儲(chǔ),對(duì)其進(jìn)行離線或?qū)崟r(shí)計(jì)算,數(shù)據(jù)輸出用于分析運(yùn)維等應(yīng)用。應(yīng)用一方面是在平臺(tái)內(nèi)部,一方面是提供給更上層的服務(wù),例如 BI 工具、API 接口服務(wù)、系統(tǒng)平臺(tái)的打通等多場(chǎng)景支持。
二、技術(shù)驅(qū)動(dòng)型產(chǎn)品的設(shè)計(jì)與協(xié)同經(jīng)驗(yàn)方法論
1、數(shù)據(jù)生產(chǎn)平臺(tái)是技術(shù)驅(qū)動(dòng)型產(chǎn)品
以上提到了很多技術(shù)概念,包括流批一體、SDK、引擎、Iceberg 等,我們可以說整個(gè)數(shù)據(jù)生產(chǎn)平臺(tái)是一個(gè)技術(shù)驅(qū)動(dòng)型產(chǎn)品。
技術(shù)驅(qū)動(dòng)產(chǎn)品有兩大核心特征:
首先,產(chǎn)品是以技術(shù)為核心競(jìng)爭(zhēng)力,強(qiáng)烈依賴底層技術(shù)架構(gòu)和技術(shù)創(chuàng)新為主要方向,更注重系統(tǒng)性能和穩(wěn)定性。
同時(shí),用戶以技術(shù)人員為主,無論是寫 Java,SQL 還是 python 的程序員,他們都是比產(chǎn)品經(jīng)理更懂底層技術(shù)邏輯的用戶。
- 技術(shù)型產(chǎn)品常問的幾個(gè)問題
如何在技術(shù)型產(chǎn)品中凸顯產(chǎn)品經(jīng)理的作用?
產(chǎn)品經(jīng)理是做橋梁的,我們需要把技術(shù)語言轉(zhuǎn)化成產(chǎn)品語言,把用戶語言轉(zhuǎn)化為產(chǎn)品方案。另外設(shè)計(jì)落地、頂層規(guī)劃、產(chǎn)品拆解、項(xiàng)目管理和后續(xù)的運(yùn)營推廣等工作,同樣是產(chǎn)品經(jīng)理的專業(yè)職責(zé)所在。做好這些我們擅長的事,就能發(fā)揮很多價(jià)值。
如何衡量技術(shù)型平臺(tái)的產(chǎn)出價(jià)值?
從需要解決的核心問題出發(fā),不同階段有不同的定位,衡量標(biāo)準(zhǔn)也會(huì)動(dòng)態(tài)變化。例如小米數(shù)據(jù)生產(chǎn)平臺(tái),最初是因?yàn)樾∶變?nèi)部有很多類似的數(shù)據(jù)開發(fā)平臺(tái),而每個(gè)平臺(tái)只能解決小部分問題,開發(fā)者需要跨 N 個(gè)平臺(tái)才能完成一系列的開發(fā)工作,所以才會(huì)建立新的一站式數(shù)據(jù)開發(fā)平臺(tái),來統(tǒng)一解決數(shù)據(jù)開發(fā)過程中的問題,那么平臺(tái)的核心考量指標(biāo)就是舊平臺(tái)的下線率、已有業(yè)務(wù)的遷移率、新平臺(tái)被用戶使用起來的資源覆蓋率等等;在統(tǒng)一平臺(tái)之后,希望被更多的用戶使用,所以使用頻率以及用戶的滲透率變?yōu)楹诵目剂恐笜?biāo)。再繼續(xù)發(fā)展,我們成為一個(gè)成熟的產(chǎn)品,一樣會(huì)開始關(guān)心用戶留存率、訪問量、粘性、甚至滿意度等等,衡量產(chǎn)出價(jià)值的方式有很多。
工作方法上會(huì)不一樣嗎?是否更加需要產(chǎn)品做更終局的思考?
任何事情都沒有真正意義上的終局,局部最優(yōu)解也是最優(yōu)解,規(guī)劃的時(shí)候整體思考,但是落地的時(shí)候需要小步快跑,快速驗(yàn)證,重要的是在不同階段不斷地更新業(yè)務(wù)認(rèn)知。所有工作本質(zhì)上和其他類型的產(chǎn)品經(jīng)理是沒有區(qū)別的。
- 技術(shù)驅(qū)動(dòng)型產(chǎn)品中,產(chǎn)品經(jīng)理該怎么做?
總而言之,讓專業(yè)的人去做專業(yè)的事情,所有的事情都是由價(jià)值來牽引的。產(chǎn)品為用戶產(chǎn)生價(jià)值,是最終的落地點(diǎn)。擁抱變化,更新自己的認(rèn)知和策略,才能讓我們走得更遠(yuǎn)、更穩(wěn)。
2、小米實(shí)踐案例分析
- 案例一:技術(shù)驅(qū)動(dòng)架構(gòu)升級(jí)
由技術(shù)驅(qū)動(dòng)整個(gè)架構(gòu)升級(jí),產(chǎn)品做配合落地工作。一站式數(shù)據(jù)生產(chǎn)平臺(tái),以前沒有數(shù)據(jù)湖的概念,是基于 Hadoop 體系,利用 Hive 或者 Spark 建設(shè)的傳統(tǒng)數(shù)倉。隨著數(shù)據(jù)量的擴(kuò)展,性能和成本問題顯現(xiàn),原有的模式無法適應(yīng)新的數(shù)據(jù)使用場(chǎng)景,所以由技術(shù)牽頭,引入數(shù)據(jù)湖的概念,來解決傳統(tǒng)數(shù)倉的成本以及事務(wù)型問題,在數(shù)據(jù)湖的選型環(huán)節(jié),技術(shù)同事做了很多調(diào)研與分析,選型確定為 Iceberg,基于 Iceberg 選型的基礎(chǔ),產(chǎn)品團(tuán)隊(duì)結(jié)合數(shù)據(jù)生產(chǎn)全流程的鏈路的能力環(huán)節(jié),規(guī)劃出在其中哪些環(huán)節(jié)將 Iceberg 數(shù)據(jù)湖的形式落地,在流程上實(shí)現(xiàn)產(chǎn)品能力。
- 案例二:產(chǎn)品驅(qū)動(dòng)體驗(yàn)效率優(yōu)化
案例二是由產(chǎn)品來驅(qū)動(dòng),技術(shù)來實(shí)現(xiàn)的案例。小米內(nèi)部有上百個(gè)業(yè)務(wù)團(tuán)隊(duì),業(yè)務(wù)場(chǎng)景復(fù)雜,不同的數(shù)據(jù)開發(fā)與產(chǎn)出都有前后依賴關(guān)系,因?yàn)橐蕾囮P(guān)系建立過程極其繁瑣,從產(chǎn)品視角,希望在建立血緣關(guān)系的過程中,提升用戶效率。通過業(yè)界的產(chǎn)品調(diào)研,我們計(jì)劃將依賴關(guān)系做成拖拽式,將節(jié)點(diǎn)拉入畫布中,連線建立依賴關(guān)系,選中某個(gè)節(jié)點(diǎn),可以快速聚焦關(guān)鍵節(jié)點(diǎn)的關(guān)鍵鏈路,除了手動(dòng)配置,也可以解析 SQL 語句,判斷依賴關(guān)系,做智能和自動(dòng)的依賴動(dòng)作,用戶只需要二次確認(rèn),就能快速完成一系列復(fù)雜的依賴配置。這些都是由產(chǎn)品調(diào)研與交互體驗(yàn)分析出發(fā)來決策功能形態(tài),技術(shù)團(tuán)隊(duì)在此基礎(chǔ)上完成具體實(shí)現(xiàn)的例子。
- 案例三:技術(shù)的升級(jí)使得產(chǎn)品能持續(xù)完善
案例三,Hive 引擎的查詢機(jī)制受限,查詢平均耗時(shí)有 888 秒,原有的查詢耗時(shí)過長。新的平臺(tái),技術(shù)同事引入 Presto+Spark3.X 的升級(jí),查詢效率大幅上升。在技術(shù)和架構(gòu)的升級(jí)之上,產(chǎn)品能夠持續(xù)完善與擴(kuò)張,例如多引擎多表的聯(lián)查以及根據(jù) SQL 語句表的范圍,智能路由到最佳引擎上。在日志診斷上有風(fēng)險(xiǎn)提示等擴(kuò)展功能,產(chǎn)品經(jīng)理突破原有架構(gòu)的限制,引入了大量交互式查詢的設(shè)計(jì),使得整體用戶體驗(yàn)有了較大的提升。
三、小米一站式數(shù)據(jù)生產(chǎn)平臺(tái)的產(chǎn)品建設(shè)思路
1、小米數(shù)據(jù)生產(chǎn)平臺(tái)的推進(jìn)思路
小米數(shù)據(jù)生產(chǎn)平臺(tái)建設(shè)的起因是,小米內(nèi)部存在很多煙囪式開發(fā),有很多同類型的數(shù)據(jù)開發(fā)平臺(tái),每個(gè)平臺(tái)功能有限,且平臺(tái)之間不連通,用戶會(huì)遇到權(quán)限、性能、統(tǒng)一數(shù)據(jù)管理等各種問題,因此需要一個(gè)統(tǒng)一的平臺(tái),來收斂并打破煙囪。
推動(dòng)統(tǒng)一需要在舊平臺(tái)基礎(chǔ)上有一定的能力擴(kuò)展,并且有新的功能吸引原有的用戶群體。在用戶都引入一站式平臺(tái)之后,我們并不希望用戶在新的平臺(tái)上野蠻生長,所以建立了通用的規(guī)范化的流程,來提升數(shù)據(jù)開發(fā)的質(zhì)量和效率。一站式是一個(gè)持續(xù)的過程,工具好用才是最終的發(fā)展方向。
小米集團(tuán)對(duì)數(shù)據(jù)開發(fā)的核心目標(biāo)匯聚在質(zhì)量、安全、成本、效率這四個(gè)方向。
- 基礎(chǔ)服務(wù)的統(tǒng)一為“破煙囪”奠定基礎(chǔ)
上文有提到數(shù)據(jù)生成平臺(tái)的架構(gòu),對(duì)架構(gòu)精細(xì)化拆解,來說明我們能做好一個(gè)統(tǒng)一數(shù)據(jù)平臺(tái)的建設(shè)。首先,技術(shù)側(cè)牽頭,梳理出一個(gè)穩(wěn)定的技術(shù)架構(gòu),能支持多種存儲(chǔ)引擎和計(jì)算引擎的接入,通過統(tǒng)一的元數(shù)據(jù)、權(quán)限、調(diào)度以及集成服務(wù)的能力,才能形成功能的落地。
- 可擴(kuò)展性高的產(chǎn)品形態(tài)
在大的技術(shù)架構(gòu)之上,由產(chǎn)品同學(xué)提供核心輸出,無論未來接入多少種存儲(chǔ)、計(jì)算和跨源數(shù)據(jù)引擎,都希望產(chǎn)品的體驗(yàn)是一致的,并且在開發(fā)和使用的過程中,不需要有太多額外的學(xué)習(xí)成本,這樣有利于提高開發(fā)效率,降低用戶的心智培養(yǎng)成本。此階段又對(duì)產(chǎn)品提出核心要求,由技術(shù)人員來實(shí)現(xiàn),最終建設(shè)一個(gè)可擴(kuò)展性高的產(chǎn)品形態(tài)。
- 特色化的生產(chǎn)開發(fā)流程
將規(guī)范化的流程落地,由技術(shù)來梳理。小米目前的模型,是否能參照業(yè)界的隔離機(jī)制,技術(shù)決策后,由產(chǎn)品來制定小米自己的數(shù)據(jù)生成開發(fā)流程。這個(gè)流程的關(guān)鍵點(diǎn)是以什么形式進(jìn)行開發(fā)與生產(chǎn)的隔離,數(shù)據(jù)上和流程上的隔離。小米用工作量的概念,進(jìn)行開發(fā)態(tài)和生產(chǎn)態(tài)的區(qū)分,補(bǔ)充流程環(huán)節(jié)的檢驗(yàn)。產(chǎn)品針對(duì)業(yè)務(wù)的使用情況和痛點(diǎn)問題,來設(shè)計(jì)數(shù)據(jù)管理流程。
- 一站式的數(shù)據(jù)生產(chǎn)體驗(yàn)
一站式數(shù)據(jù)生產(chǎn)體驗(yàn),由產(chǎn)品來主導(dǎo)。我們是一個(gè)工具平臺(tái),需要始終以用戶使用起來更趁手,為業(yè)務(wù)助力為目標(biāo)。作為一個(gè)開發(fā)工具,我們也計(jì)劃向 IDE 形式靠攏,在研發(fā)體系中引入 DataOps 的概念,更高階的功能,實(shí)現(xiàn)智能寫 SQL 的功能等等,有更多的產(chǎn)品突破。
- 在更大的維度上做全景擴(kuò)展,提供更多完善的服務(wù)支持
整個(gè)的產(chǎn)品不應(yīng)該是獨(dú)木成林的,數(shù)據(jù)生成平臺(tái)在數(shù)據(jù)鏈路上處于底層環(huán)節(jié),核心是數(shù)據(jù)采集、存儲(chǔ)、計(jì)算、查詢與運(yùn)維能力,數(shù)據(jù)生產(chǎn)后,如果能被數(shù)倉更好地建設(shè)起來,對(duì)數(shù)據(jù)進(jìn)行分層梳理,才能為上層的應(yīng)用提供服務(wù)。建設(shè)好以后的數(shù)據(jù),通過統(tǒng)一的資產(chǎn)管理,對(duì)成本、質(zhì)量、安全進(jìn)行把控,并且在應(yīng)用場(chǎng)景上支持標(biāo)簽的構(gòu)建,提升效率和可利用性,為最上層使用,可以做BI可視化報(bào)表,數(shù)據(jù)智能支撐,人群圈選、行為分析等應(yīng)用場(chǎng)景的結(jié)合,融合專業(yè)的數(shù)據(jù)分析團(tuán)隊(duì),針對(duì)性地制定一套產(chǎn)-建-管-用的解決方案,為公司內(nèi)部提供一套完整的服務(wù),與更多的能力聯(lián)合,才能發(fā)揮更大的價(jià)值。
2、層次遞進(jìn)的平臺(tái)建設(shè)思路
最后總結(jié)一下平臺(tái)建設(shè)思路,整體上是層次遞進(jìn)的過程。
從復(fù)雜的 N 個(gè)產(chǎn)品中,找到唯一收斂的方向,這是一個(gè)從 N 到 1 的收斂過程,過程中需要詳盡的分析調(diào)研,抽絲剝繭,求同存異,來找到唯一突破口;
方向確認(rèn)后,將平臺(tái)從 0 到 1 構(gòu)建起來,MVP 逐步拆解,小步快跑去驗(yàn)證是否可行;
驗(yàn)證可行后,進(jìn)入 1 到 10 的擴(kuò)張階段,在規(guī)范化的基礎(chǔ)上,不斷擴(kuò)大產(chǎn)品邊界,擴(kuò)大能力范圍來促進(jìn)所有業(yè)務(wù)和場(chǎng)景的深度使用,同時(shí)把歷史問題快速收斂;
收斂和歷史問題都解決完成后,就要回歸本心,一開始就是面向技術(shù)人員的工具平臺(tái),核心解決的是工具的效率,對(duì)業(yè)務(wù)產(chǎn)品價(jià)值的支持,一邊克制一邊創(chuàng)新,尋找符合定位的更多可能性,使得產(chǎn)品發(fā)揮更大價(jià)值。
四、問答環(huán)節(jié)
Q1:小米數(shù)據(jù)生產(chǎn)平臺(tái)的監(jiān)控機(jī)制是怎樣的?
A1:有專業(yè)的數(shù)據(jù)監(jiān)控模塊去把控?cái)?shù)據(jù)質(zhì)量?;A(chǔ)作業(yè)運(yùn)行成功/失敗,數(shù)據(jù)內(nèi)容是否符合預(yù)期,設(shè)定數(shù)據(jù)預(yù)期,不符合預(yù)期,產(chǎn)生告警。小米有重要保障的數(shù)據(jù),在問題發(fā)生之前預(yù)警,有基線機(jī)制,在部分任務(wù)資源上有傾斜,任務(wù)能優(yōu)先運(yùn)行完成,且鏈路上游環(huán)節(jié)資源保障,在任務(wù)沒有運(yùn)行完的時(shí)候提前預(yù)警,把風(fēng)險(xiǎn)暴露出來,盡快去解決。
Q2:Presto 和 Doris 在平臺(tái)上都有,它們是如何分工的?
A2:Presto 和 Doris,取決于引擎本身的特性。Presto 的查詢效率非常高,缺點(diǎn)是業(yè)務(wù)邏輯復(fù)雜或者遇到大寬表 Presto 無法做很好的支撐。Doris 更多應(yīng)用于分析型的場(chǎng)景,BI 分析或者業(yè)務(wù)分析,查詢數(shù)據(jù)產(chǎn)品報(bào)表的場(chǎng)景,應(yīng)用更廣泛。所以在數(shù)據(jù)即時(shí)查詢用的是 Presto 引擎,直接出結(jié)果;對(duì)于特殊的表,用 Doris 查詢,且用 Doris 做數(shù)據(jù)開發(fā),同時(shí)推送到 BI 平臺(tái)用于報(bào)表展示。
Q3:數(shù)據(jù)湖和數(shù)據(jù)倉庫在平臺(tái)中分別起什么作用?
A3:數(shù)據(jù)湖可以實(shí)現(xiàn)流批一體,實(shí)時(shí)計(jì)算和離線計(jì)算可以交叉運(yùn)行,一體化完成數(shù)據(jù)湖的建設(shè);數(shù)據(jù)倉庫更多是用于離線開發(fā),對(duì)于時(shí)效性要求不高的數(shù)據(jù),例行化執(zhí)行,進(jìn)行基礎(chǔ)的倉庫建設(shè)。
Q4:平臺(tái)各模塊的技術(shù)選型,作為產(chǎn)品經(jīng)理如何參與選型過程?
A4:從需求出發(fā),作業(yè)鏈路的調(diào)度,判斷業(yè)務(wù)規(guī)模以及對(duì)并發(fā)度的要求,還有對(duì)實(shí)時(shí)和離線場(chǎng)景的要求,來提出具體訴求。另外,調(diào)度中的模型是否需要依賴關(guān)系來進(jìn)行作業(yè)邏輯的編排,并由研發(fā)同事去調(diào)研,哪些調(diào)度方式更適合,小米用的是自研調(diào)度器,為了適應(yīng)小米的數(shù)據(jù)特性而研發(fā)的。質(zhì)量監(jiān)控告警的核心偏產(chǎn)品層面設(shè)計(jì),監(jiān)控告警對(duì)作業(yè)本身的運(yùn)行沒太大影響,相對(duì)來說是一個(gè)事后監(jiān)控機(jī)制,其實(shí)和應(yīng)用場(chǎng)景類似,數(shù)據(jù)產(chǎn)生之后,查數(shù)看是否符合質(zhì)量監(jiān)控預(yù)期,質(zhì)量監(jiān)控選型更多從產(chǎn)品角度出發(fā),去設(shè)計(jì)功能,技術(shù)要求并不高,更多的是和已有的技術(shù)開發(fā)與生產(chǎn)環(huán)節(jié)融合,提高技術(shù)兼容性。