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