BI(Business Intelligence)模型抽象

BI產(chǎn)品的核心功能是數(shù)據(jù)可視化,借助數(shù)據(jù)可視化挖掘分析數(shù)據(jù)背后的價值,從而起到輔助研究或決策的作用挡爵。

近期調(diào)研了很多BI產(chǎn)品,包括付費的與開源的甚垦,需要根據(jù)需求決定是購買還是基于開源的擴展還是自己開發(fā)茶鹃。

產(chǎn)品很雜,需求又總要考慮到擴展艰亮,如果每個產(chǎn)品都試用一遍闭翩,分析分析利弊,測試一下user story垃杖,需要的成本比較高男杈,因此就重點看了兩個比較體驗與上手的BI產(chǎn)品(FineBI和豌豆BI)丈屹,抽象出了BI模型调俘,然后根據(jù)模型再結(jié)合需求分析分析可擴展性,以及BI產(chǎn)品在自己開發(fā)時的難點旺垒。

BI模型

BI產(chǎn)品的設(shè)計思路可以抽象為下圖的模型彩库。


BI模型抽象(原創(chuàng)圖片)

倒著推理,想要可視化數(shù)據(jù)先蒋,其實依賴的是x和y骇钦,也就是說,想要生成圖表竞漾,傳給圖表的數(shù)據(jù)必須是x和y(可能有z)眯搭。最簡單的場景就是我們要可視化的是一張數(shù)據(jù)表窥翩,且這張表直接包含要設(shè)置的x值與y值,那么直接繪圖就可以鳞仙;再想要靈活一些寇蚊,可能想要展示的數(shù)據(jù)不在表里,需要動態(tài)計算得出棍好,那么要支持動態(tài)計算列仗岸,算出來后就將問題轉(zhuǎn)變?yōu)樯弦粋€場景的問題,可以直接繪圖借笙;再靈活一些扒怖,可能數(shù)據(jù)都不是一張表,分散在n張表业稼,需要從n張表做連接等運算盗痒,才能得到可展示的表,轉(zhuǎn)化為上兩個場景的問題低散。

所以积糯,BI解決的核心問題就可以抽象為「如何從n張表x和y」的問題。這個過程就是「數(shù)據(jù)建那矗」看成,從n張表到x和y,可以涵蓋BI面臨的所有場景跨嘉,需求再怎么擴展川慌,也不過就到n張表。

結(jié)合上述三個場景祠乃,「數(shù)據(jù)建拿沃兀」又可以拆分為「表生成」與「動態(tài)列生成」兩步,「表生成」做的是把n張表變成1張表亮瓷,是場景三到場景二的抽象琴拧,「動態(tài)列生成」是場景二到場景一的抽象。


BI模型

BI產(chǎn)品可能的擴展點

根據(jù)BI模型可以發(fā)現(xiàn)嘱支,BI產(chǎn)品的可擴展點有三個部分蚓胸,即「數(shù)據(jù)獲取」、「數(shù)據(jù)建某Γ」沛膳、「數(shù)據(jù)可視化」。

數(shù)據(jù)獲取的擴展點

數(shù)據(jù)獲取的擴展點主要在于數(shù)據(jù)來源的多樣性汛聚。數(shù)據(jù)可能來自各種種類的數(shù)據(jù)庫锹安,也可能來自文件,如果寫死任何一個來源,在擴展時都會變得很難受叹哭,這個問題就抽象成了「如何屏蔽某個方向的變化忍宋,使其不影響后續(xù)步驟」,這就自然聯(lián)想到“接口”的概念风罩。為了讓可視化依賴的圖表與數(shù)據(jù)源不耦合讶踪,可以專門抽象出一層表,作為可視化依賴的表泊交,如下圖所示乳讥,所有數(shù)據(jù)源的內(nèi)容都需要先轉(zhuǎn)成這個中間依賴,這樣無論數(shù)據(jù)源怎樣變廓俭,只需要配置上層云石,不需要修改其他內(nèi)容。事實上研乒,看一些優(yōu)秀的開源BI產(chǎn)品(比如superset)就會發(fā)現(xiàn)汹忠,他們都會有自己的數(shù)據(jù)庫引擎,支持多種數(shù)據(jù)源雹熬,然后把數(shù)據(jù)源的數(shù)據(jù)轉(zhuǎn)化成數(shù)據(jù)庫引擎的數(shù)據(jù)宽菜,設(shè)計理由就是如上所述。


可視化與數(shù)據(jù)源解耦

數(shù)據(jù)建模的擴展點

數(shù)據(jù)建模的擴展點其實在分析數(shù)據(jù)建模場景的時候已經(jīng)分析過了竿报。如果你的需求比較簡單铅乡,那么BI支持到動態(tài)列生成就足夠,如果你的需求可能變更烈菌,并且希望變更后不需要再進行改動阵幸,那么BI就要支持表生成,這樣未來不論需求如何擴展變更芽世,開發(fā)人員都不需要再另做開發(fā)挚赊。

這里值得一提的是關(guān)于「動態(tài)列生成」存在的擴展點。


動態(tài)列生成問題分類

可以看到济瓢,動態(tài)列生成分為三個場景荠割,對于第三個場景,想要計算A類與B類的精確率旺矾,得出x和y確實是依賴這兩列蔑鹦,但又不是簡單地「列1 / 列2」就能算出來的,對于這類場景宠漩,其實可以轉(zhuǎn)化為「重組中間表」的問題举反,其實期望的是根據(jù)這些數(shù)據(jù),重新得到一個「類別 | 精確率」的中間表扒吁,然后展示出來。

所以動態(tài)列生成的問題可以抽象為下圖所示問題


動態(tài)列生成抽象

可視化的擴展點

可視化的擴展很容易想到,無非是多種類型的圖表雕崩,然后就是交互上降低用戶的成本魁索,支持一些分享保存的常用功能,錦上添花盼铁。

BI設(shè)計難點(產(chǎn)品關(guān)注點)

從模型抽象以及可擴展點來看粗蔚,BI產(chǎn)品解決方案需要考慮的首先是「如何靈活地數(shù)據(jù)重組」,可以想到的有兩種方式:

  1. 用SQL之類可以實現(xiàn)多種邏輯的語言;
  2. 用Excel饶火,有強大的公式算符做基礎(chǔ)鹏控;

調(diào)研就會發(fā)現(xiàn),微軟的power BI就是基于Excel的肤寝,有Excel支撐当辐,重組表和計算公式不是問題,開源的BI通常都是用SQL鲤看,也有一些小眾的用plainless等語言缘揪,總之就是這些語言可以實現(xiàn)重組表和運算的邏輯,并且學(xué)習(xí)成本比較低义桂。只要支持了數(shù)據(jù)重組找筝,BI就完成了一大半。

除此之外慷吊,還需要考慮的問題是「如何使圖表能夠動態(tài)刷新」袖裕,由于產(chǎn)生了一系列的中間表,因此當原數(shù)據(jù)發(fā)生變更后溉瓶,這些中間表如何隨之變更陆赋,以及刷新的性能問題,是BI實現(xiàn)時需要考慮的重點嚷闭。

總結(jié)

從模型上能得出BI的設(shè)計思路攒岛,以及重要關(guān)注點,這些關(guān)注點也是考察一款產(chǎn)品時需要注意的點胞锰,如果一個產(chǎn)品是基于SQL的灾锯,那么你看一下他能否creat table以及create view,能否自定義sql嗅榕,如果能顺饮,那么他可以滿足所有核心需求了,如果不能生成表凌那,那么限制就比較大兼雄,有了模型抽象,產(chǎn)出各項產(chǎn)品的對比方案就會比較容易帽蝶。

很多問題看起來五花八門赦肋,其實越往向上抽象越會發(fā)現(xiàn)他們的相似性,越能聯(lián)想到一些已有的解決方案,一步步推出問題的解佃乘,大概就是格物致知吧囱井。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市趣避,隨后出現(xiàn)的幾起案子庞呕,更是在濱河造成了極大的恐慌,老刑警劉巖程帕,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件住练,死亡現(xiàn)場離奇詭異,居然都是意外死亡愁拭,警方通過查閱死者的電腦和手機讲逛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來敛苇,“玉大人妆绞,你說我怎么就攤上這事》闩剩” “怎么了括饶?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長来涨。 經(jīng)常有香客問我图焰,道長,這世上最難降的妖魔是什么蹦掐? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任技羔,我火速辦了婚禮,結(jié)果婚禮上卧抗,老公的妹妹穿的比我還像新娘藤滥。我一直安慰自己,他們只是感情好社裆,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布拙绊。 她就那樣靜靜地躺著,像睡著了一般泳秀。 火紅的嫁衣襯著肌膚如雪标沪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天嗜傅,我揣著相機與錄音金句,去河邊找鬼。 笑死吕嘀,一個胖子當著我的面吹牛违寞,可吹牛的內(nèi)容都是我干的贞瞒。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼坞靶,長吁一口氣:“原來是場噩夢啊……” “哼憔狞!你這毒婦竟也來了蝴悉?” 一聲冷哼從身側(cè)響起彰阴,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拍冠,沒想到半個月后尿这,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡庆杜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年射众,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晃财。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡叨橱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出断盛,到底是詐尸還是另有隱情罗洗,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布钢猛,位于F島的核電站伙菜,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏命迈。R本人自食惡果不足惜贩绕,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望壶愤。 院中可真熱鬧淑倾,春花似錦、人聲如沸征椒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽陕靠。三九已至迂尝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間剪芥,已是汗流浹背垄开。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留税肪,地道東北人溉躲。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓榜田,卻偏偏與公主長得像,于是被迫代替她去往敵國和親锻梳。 傳聞我的和親對象是個殘疾皇子箭券,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355