數(shù)據(jù)可視化服務(wù)的系統(tǒng)能力與確定性
編輯導(dǎo)讀:當(dāng)你說你要做一個(gè)產(chǎn)品,你需要的是建設(shè)一套系統(tǒng)能力。產(chǎn)品上線后,要持續(xù)地提供用戶可以依賴的確定性,才能讓人留戀和依賴。本文作者以數(shù)據(jù)可視化產(chǎn)品為例,分析其系統(tǒng)能力與確定性,一起來看看吧。
接著梁寧系列課程的思考,這節(jié)課講的是產(chǎn)品的系統(tǒng)能力,在課后她留的作業(yè)是:
- 挑選一個(gè)你最熟悉的產(chǎn)品,說說它應(yīng)該給用戶提供怎樣的確定性滿足?這個(gè)產(chǎn)品做到了嗎?如果沒有,你覺得問題在哪?
- 持續(xù)的滿足就會(huì)依賴,不確定的感覺就是傷害。你可以說說,你有沒有確定性被傷害的時(shí)候?
在寫作業(yè)之前,我們先學(xué)習(xí)一下梁寧在這節(jié)課的名詞解釋:
- 當(dāng)你說你要做一個(gè)產(chǎn)品,你需要的是建設(shè)一套系統(tǒng)能力;
- 確定性很重要。人生如此不確定,所以當(dāng)你看到有一個(gè)東西非常確定的時(shí)候,是讓人留戀與依賴的。持續(xù)地提供用戶可以依賴的確定性,這個(gè)是關(guān)鍵;
今天我們圍繞著梁寧布置的作業(yè),那就從“系統(tǒng)能力”、“確定性”兩個(gè)方面來探討一下數(shù)據(jù)可視化產(chǎn)品(更確切的說是“數(shù)據(jù)可視化服務(wù)”)。
一、如何進(jìn)行數(shù)據(jù)服務(wù)?數(shù)據(jù)可視化產(chǎn)品的系統(tǒng)能力
其實(shí)在《數(shù)據(jù)可視化如何實(shí)現(xiàn)?》一文中就介紹過數(shù)據(jù)產(chǎn)品的系統(tǒng),主要分為:數(shù)據(jù)存儲層、數(shù)據(jù)計(jì)算層、數(shù)據(jù)展示層(如下圖所示)。當(dāng)時(shí)僅對系統(tǒng)的各個(gè)層級進(jìn)行了名詞解釋,但作為一個(gè)整體的系統(tǒng)各個(gè)層級之間又是怎么工作來進(jìn)行數(shù)據(jù)服務(wù)呢?
作為業(yè)務(wù)人員,數(shù)據(jù)可視化產(chǎn)品對他們最直觀的服務(wù)就是數(shù)據(jù)的圖表化展示,我們單從字面的意思來看,整個(gè)系統(tǒng)由兩部分組成:用于業(yè)務(wù)場景的數(shù)據(jù)+將數(shù)據(jù)圖表化的能力。
1. 用于業(yè)務(wù)場景的數(shù)據(jù)
在企業(yè)實(shí)際的工作場景中,數(shù)據(jù)分散在不同的存儲中,比如日志數(shù)據(jù)、埋點(diǎn)數(shù)據(jù)、服務(wù)端數(shù)據(jù)等。但這些數(shù)據(jù)如果不經(jīng)過加工,幾乎不可能滿足業(yè)務(wù)的需要,所以這里就要提到數(shù)據(jù)倉庫。在BI工具中,可視化的數(shù)據(jù)來源于數(shù)據(jù)集(你可以理解為一張滿足業(yè)務(wù)方一處分析需求,涵蓋其所有指標(biāo)、維度的數(shù)據(jù)表),而數(shù)據(jù)集就是直接引用或聚合計(jì)算數(shù)據(jù)倉庫內(nèi)的數(shù)據(jù)表。
再說一說數(shù)據(jù)倉庫內(nèi)的數(shù)據(jù)表,或許你也聽過ods、dwd、dws、adm這些數(shù)倉層級結(jié)構(gòu),其實(shí)除了這些技術(shù)性的內(nèi)容,數(shù)據(jù)倉庫還有一點(diǎn)需要了解:其需要數(shù)據(jù)倉庫工程師按照業(yè)務(wù)結(jié)構(gòu)創(chuàng)建。而在企業(yè)的實(shí)際工作場景下,工程師創(chuàng)建數(shù)據(jù)倉庫則依賴于數(shù)據(jù)產(chǎn)品整理的數(shù)據(jù)映射表(又稱datamapping,即將某業(yè)務(wù)中指標(biāo)[含指標(biāo)定義]、維度[指標(biāo)按照該字段聚合查看]關(guān)聯(lián)的表格)通過系統(tǒng)已有的數(shù)據(jù)整理并建模(數(shù)據(jù)映射表里的指標(biāo)可能需要通過多張表的字段,通過復(fù)雜的數(shù)學(xué)計(jì)算得到),完成一張或多張滿足分析需求的數(shù)據(jù)表存儲在數(shù)據(jù)倉庫里。
2. 將數(shù)據(jù)圖表化的能力
這里我們數(shù)據(jù)可視化產(chǎn)品來制作儀表盤的實(shí)現(xiàn)方式為例,這里能力有兩部分:一部分是后端能力,另一部分是前端能力。體驗(yàn)過 Tableau 或者相似產(chǎn)品的朋友應(yīng)該清楚創(chuàng)建儀表盤的整個(gè)過程:
通過該過程就可以明顯的看出“數(shù)據(jù)連接”、“生成數(shù)據(jù)集”就是后端能力的一部分,數(shù)據(jù)連接,即通過 JDBC 等接口將數(shù)據(jù)庫(含數(shù)據(jù)倉庫)與我們的數(shù)據(jù)可視化產(chǎn)品連接起來,這是生成數(shù)據(jù)集的前提條件。生成數(shù)據(jù)集,即為了滿足后面的可視化需要,通過數(shù)據(jù)查詢語言(一般是 sql 語言)將連接的數(shù)據(jù)庫內(nèi)的一張或多張數(shù)據(jù)表聚合生成一張大寬表(里面包含分析需要的指標(biāo)、維度,與數(shù)據(jù)產(chǎn)品之前整理的數(shù)據(jù)映射表字段一致,或者是其子集)。既然需要?jiǎng)?chuàng)建儀表盤,一定是業(yè)務(wù)經(jīng)常需要的查看的,所以這里的數(shù)據(jù)一定要保證能夠隨著時(shí)間而進(jìn)行周期性的更新,這里就得提到調(diào)度模塊了。所謂調(diào)度,就是通過任務(wù)執(zhí)行的定時(shí)設(shè)置,來實(shí)現(xiàn)數(shù)據(jù)集的定時(shí)更新。
“創(chuàng)建圖表和儀表盤”就是前端能力了,即將后端傳來的數(shù)據(jù)在圖標(biāo)上展示出來。一些大公司或者專業(yè)的可視化系統(tǒng)企業(yè)會(huì)自己開發(fā)自己的圖表組件,如 Tableau 。而國內(nèi)的百度(Echart)、阿里(AntV)也開源了自己的圖表組件,前端同學(xué)可以此二次開發(fā)實(shí)現(xiàn)可視化展示。
二、如何更好的數(shù)據(jù)服務(wù)?數(shù)據(jù)可視化產(chǎn)品的確定性
1. 加載速率
數(shù)據(jù)產(chǎn)品與那些諸如 C 端、系統(tǒng)后臺產(chǎn)品等在數(shù)據(jù)側(cè)的最大不同點(diǎn)就是數(shù)據(jù)量的多少,有時(shí)候一張數(shù)據(jù)看板需要查詢的數(shù)據(jù)就可能有上億條數(shù)據(jù)。用戶愿意等多久才不會(huì)躁動(dòng)?數(shù)據(jù)查詢執(zhí)行時(shí)間是否超出公司系統(tǒng)的限制?這時(shí)候數(shù)據(jù)加載的時(shí)長就要受到用戶、甚至系統(tǒng)的限制了。
為了提升加載速率,第一步通常是跟業(yè)務(wù)側(cè)的同學(xué)溝通,把沒有的分析砍掉來減少初始的數(shù)據(jù)量,如按日方式的細(xì)粒度查詢方式能否改成按周/月的高匯總度的查詢,來減少數(shù)據(jù)存儲(不過,通過這種方式成功的可能性也不高)。第二步就得從數(shù)據(jù)側(cè)入手了,如果非點(diǎn)查詢而是匯總查詢(舉個(gè)例子,有10w用戶,我需要隨機(jī)展示單個(gè)用戶的標(biāo)簽信息,這就是點(diǎn)查詢。如果我只看這10w用戶整體的標(biāo)簽信息分布,這就是匯總查詢),那我們可以把數(shù)據(jù)存儲在 clickhouse 里,在匯總查詢下速率會(huì)更快。那如果是點(diǎn)查詢,可以將 Spark 替換 MR 來操作數(shù)據(jù)集,這樣查詢效率更快但是內(nèi)存消耗也越大,所以財(cái)大氣粗的公司可以多買一些計(jì)算資源。第三步就要從看板設(shè)計(jì)側(cè)入手了,比如在時(shí)間篩選器中限制日期的跨度選擇,也可以將一張儀表盤的圖表數(shù)量減少,來降低單張看板查詢的時(shí)間(后面有機(jī)會(huì)再單獨(dú)介紹一下單張看板的設(shè)計(jì))。
2. 數(shù)據(jù)準(zhǔn)確性
經(jīng)??匆恍?shù)據(jù)報(bào)告的朋友應(yīng)該清楚,比結(jié)論更重要的就是數(shù)據(jù)準(zhǔn)確定,如果數(shù)據(jù)都不準(zhǔn)確那得到的結(jié)論就一點(diǎn)價(jià)值都沒了,數(shù)據(jù)可視化產(chǎn)品亦要遵守此規(guī)則。這里的數(shù)據(jù)準(zhǔn)確性并非僅狹義里指的數(shù)據(jù)是否錯(cuò)誤,還包括數(shù)據(jù)是否正常執(zhí)行(如果因?yàn)閿?shù)據(jù)無法生產(chǎn),我昨日的數(shù)據(jù)對的不是昨日,而是前天的數(shù)據(jù),那這也是一種錯(cuò)誤)、數(shù)據(jù)是否出現(xiàn)異常(如出現(xiàn)空值等)、數(shù)據(jù)是否存在二義性(也可以稱為數(shù)據(jù)孤島,就是相同的指標(biāo)在不同的業(yè)務(wù)部門數(shù)據(jù)源是否一致?規(guī)則是否一致?如果這些都不能保證,那不同的業(yè)務(wù)部門就被不能很好的交流了)。
數(shù)據(jù)錯(cuò)誤、數(shù)據(jù)異常、數(shù)據(jù)執(zhí)行中斷可以通過調(diào)度系統(tǒng)里的監(jiān)控模塊進(jìn)行監(jiān)控,數(shù)據(jù)產(chǎn)品經(jīng)理也可以給大數(shù)據(jù)開發(fā)工程師提供一些方案,如出現(xiàn)空數(shù)據(jù)、空值,或者相關(guān)指標(biāo)與前一次執(zhí)行的數(shù)據(jù)結(jié)果差異變化超過某個(gè)閾值,就會(huì)提醒相應(yīng)的數(shù)倉同學(xué)來確認(rèn)一下問題。針對一些畫像標(biāo)簽數(shù)據(jù),還可以采用數(shù)據(jù)注入的方式來驗(yàn)證一下畫像標(biāo)簽是否準(zhǔn)確。
數(shù)據(jù)二義性就需要數(shù)據(jù)倉庫工程師統(tǒng)一管理公司所有業(yè)務(wù)線的數(shù)據(jù),保證相同的指標(biāo)其數(shù)據(jù)源、口徑都是一致的。另一方面,這樣做也可以有助于一些指標(biāo)在公司范圍內(nèi)進(jìn)行推廣。
今天就說到這里,如果內(nèi)容對你有幫助的話,歡迎分享或收藏。如果你有其他的觀點(diǎn)歡迎在下方留言討論~
#專欄作家#
兮兮,微信公眾號:孤身旅人(ID:gushenlvren),人人都是產(chǎn)品經(jīng)理專欄作家。關(guān)注人工智能、toB產(chǎn)品、大文娛等領(lǐng)域。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自 Unsplash,基于 CC0 協(xié)議
了解了!