我有時和商業(yè)智能BI項目上的同事閑聊,問他們在商業(yè)智能BI項目建設(shè)過程中,你覺得什么挑戰(zhàn)性最大?有的人說我最怕業(yè)務(wù)邏輯太復(fù)雜,有的人說最怕用戶的需求不明確,也有的人說復(fù)雜的業(yè)務(wù)場景不知道如何通過技術(shù)去實現(xiàn),挑戰(zhàn)性最大。大家說的都很有道理,那我來談?wù)勎覀€人覺得商業(yè)智能BI項目開發(fā)過程中什么問題挑戰(zhàn)最大,我認(rèn)為是數(shù)據(jù)質(zhì)量的問題。
為什么數(shù)據(jù)質(zhì)量問題挑戰(zhàn)最大
5、6年前我還在從事商業(yè)智能BI開發(fā)的時候碰到過一個項目,業(yè)務(wù)并不復(fù)雜,就是統(tǒng)計一些時間段的時間差額,最后算出每個用戶在上面消耗的時間,做商業(yè)智能BI統(tǒng)計分析。但是在實際開發(fā)過程中發(fā)現(xiàn),即使把業(yè)務(wù)規(guī)則理解的再透徹,開發(fā)完成之后到實際的生產(chǎn)環(huán)境跑數(shù)據(jù),總有些數(shù)據(jù)對不上。在測試開發(fā)環(huán)境下反復(fù)的檢查業(yè)務(wù)邏輯,都沒有問題,我就陷于了深深的苦惱。
商業(yè)智能BI – 派可數(shù)據(jù)商業(yè)智能BI可視化分析平臺
這個商業(yè)智能BI項目到底是什么環(huán)節(jié)出現(xiàn)了問題,是ETL跑的時候丟數(shù)據(jù)了?還是我的代碼有問題?還是我對業(yè)務(wù)理解的不夠?弄得我開始對自己的能力開始懷疑了。應(yīng)該不會啊,我能力這么強,在商業(yè)智能BI項目上從來沒有失手過,不至于連這個搞不定。在反復(fù)的自我檢查之后,我基本上可以斷定,是生產(chǎn)環(huán)境的數(shù)據(jù)有問題。
因為在有些商業(yè)智能BI項目上,開發(fā)測試和生產(chǎn)環(huán)境是完全隔離的,開發(fā)測試環(huán)境下的數(shù)據(jù)是有限的、不完整的,沒有生產(chǎn)環(huán)境那么全。于是,申請看看商業(yè)智能BI項目分析生產(chǎn)環(huán)境的實際數(shù)據(jù),結(jié)果一看,就發(fā)現(xiàn)問題了,就是生產(chǎn)環(huán)境的數(shù)據(jù)存在問題,并且問題還很大。
如何處理數(shù)據(jù)質(zhì)量問題
商業(yè)智能BI項目中,一個正常的數(shù)據(jù)邏輯,在生產(chǎn)環(huán)境下反復(fù)梳理,結(jié)果梳理出了24種異常數(shù)據(jù)的情況。原因是怎么造成的呢? 就是在業(yè)務(wù)系統(tǒng)中,有一個業(yè)務(wù)處理的流程,比如 A、B、C、D,正常情況下它應(yīng)該是一個線性的、不可逆的操作流程。
業(yè)務(wù)流程 – 派可數(shù)據(jù)商業(yè)智能BI可視化分析平臺
但是有些新用戶在實際使用過程中,比如處理完A節(jié)點下面的N項操作,就到了B節(jié)點,B節(jié)點處理完了就到了C節(jié)點。按道理,到了C節(jié)點是不可能回去重新對A節(jié)點的業(yè)務(wù)做任何操作處理。結(jié)果在系統(tǒng)中就出現(xiàn)了這樣的問題。就導(dǎo)致了在后臺數(shù)據(jù)庫中的數(shù)據(jù)節(jié)點序列的順序在某些場景下完全是錯亂的,存在大批量的異常操作數(shù)據(jù),讓商業(yè)智能BI項目的數(shù)據(jù)質(zhì)量出現(xiàn)了問題。
那么在商業(yè)智能BI統(tǒng)計分析的時候,這些異常操作數(shù)據(jù)產(chǎn)生的時間序列就不應(yīng)該被計算進(jìn)來。當(dāng)然,實際上的場景比我描述的要更加復(fù)雜。我大概描述一下,就是這里有一排房間,從左往右房間數(shù)量是無限的。
每個房間放了一個數(shù)據(jù),你每往前走一個房間,都要記住之前每個房間做過什么事情,有什么樣的數(shù)據(jù)。等到了第N個房間的時候,看到了一個數(shù)據(jù),這個數(shù)據(jù)正好能和你之前走過的房間的某一個數(shù)據(jù)形成一個正確的時間序列,這樣就需要記住之前每一個房間放的是什么,然后把這兩個數(shù)據(jù)的時間差額給算出來,記下來。
數(shù)據(jù)可視化 – 派可數(shù)據(jù)商業(yè)智能BI可視化分析平臺
再往前走的時候,又發(fā)現(xiàn)一個數(shù)據(jù),這個數(shù)據(jù)和之前房間的某一個數(shù)據(jù)又對應(yīng)上了,那么你上次完成的計算條件就不能成立了,就又需要重新組合一次。這個過程的處理非常復(fù)雜,我們把所有的場景全部梳理出來,有24種。拿這些場景和商業(yè)智能BI項目的業(yè)務(wù)人員去確認(rèn),業(yè)務(wù)人員基本上也弄不清楚,無法確認(rèn),因為數(shù)據(jù)太錯亂了,已經(jīng)超出他們對業(yè)務(wù)理解的范圍了。
但最終,通過反復(fù)的看數(shù)據(jù),找場景,還是把業(yè)務(wù)規(guī)則給確認(rèn)了下來。最后到開發(fā)階段,就這一項工作,整整耗費了我兩周的商業(yè)智能BI開發(fā)時間。純SQL和存儲過程是無法直接實現(xiàn)的,后來是寫了一段程序,再結(jié)合ETL和SQL才處理完畢。并且,模擬了一億條數(shù)據(jù),對所有的場景進(jìn)行反復(fù)測試,沒有問題。到現(xiàn)在上線已經(jīng)很多年了,這個商業(yè)智能BI項目沒有出現(xiàn)過任何問題。
數(shù)據(jù)質(zhì)量問題處理思路
實際上,這個商業(yè)智能BI項目的問題是一個業(yè)務(wù)系統(tǒng)上的邏輯漏洞,在業(yè)務(wù)系統(tǒng)上很好調(diào)整。就是當(dāng)用戶操作到某一個節(jié)點的時候,前面已經(jīng)操作完成的節(jié)點不讓他們再回去操作,控制一下流程就可以了。
數(shù)據(jù)可視化 – 派可數(shù)據(jù)商業(yè)智能BI可視化分析平臺
那么在以往他們這樣反復(fù)的回頭操作,在業(yè)務(wù)流程上是不會出現(xiàn)太大問題,所以他們就忽略了商業(yè)智能BI項目的數(shù)據(jù)問題。這樣一來,在做商業(yè)智能BI數(shù)據(jù)統(tǒng)計分析的時候,就需要把這些問題給考慮進(jìn)去。結(jié)果把這個問題提交上去之后,供應(yīng)商還是國外的,說排到半年之后才能解決。所以,這個事情從業(yè)務(wù)系統(tǒng)上推進(jìn)不了,那就只能在商業(yè)智能BI層面來解決,但是所付出的代價就很大了。
所以,在業(yè)務(wù)系統(tǒng)建設(shè)過程中,很多問題不到數(shù)據(jù)層面,是無法發(fā)現(xiàn)很多潛在的問題的。因為用戶有時為了省事,也能用,這些問題他們平常不會意識到,因為對他們?nèi)粘9ぷ鳑]有太大的影響。到了商業(yè)智能BI層面,由于數(shù)據(jù)需要被統(tǒng)計分析,一種業(yè)務(wù)規(guī)則對應(yīng)一種處理規(guī)則,是需要在開發(fā)過程中明確下來的。如果一種業(yè)務(wù)規(guī)則有N種特殊的數(shù)據(jù)處理場景,就需要對應(yīng)N種數(shù)據(jù)處理開發(fā)過程,是無法像業(yè)務(wù)人員那樣可以自動忽略的,這個工作量就大了。
簡單來說,在業(yè)務(wù)系統(tǒng)中這個問題的調(diào)整可能只需要半天的開發(fā)時間就完全可以調(diào)整完畢。對于數(shù)據(jù)邏輯來說,在數(shù)據(jù)質(zhì)量上的控制,越在源頭端控制,效果越明顯。這就是問題前置、程序前置處理。前面不處理,越往后放,后置處理,一旦進(jìn)行商業(yè)智能BI等涉及數(shù)據(jù)的項目,問題就變得就難上加難。
數(shù)據(jù)可視化 – 派可數(shù)據(jù)商業(yè)智能BI可視化分析平臺
所以業(yè)務(wù)系統(tǒng)的一個小的數(shù)據(jù)質(zhì)量問題對商業(yè)智能BI而言可能就是需要投入巨大的時間和精力才能處理掉的,這就需要我們企業(yè)在業(yè)務(wù)系統(tǒng)的使用、操作、程序規(guī)范性上真正的要重視起來,可以極大的降低商業(yè)智能BI實施開發(fā)過程中的時間成本。包括之前碰到的多個系統(tǒng)的數(shù)據(jù)檔案信息不一致等問題,都是在業(yè)務(wù)系統(tǒng)規(guī)劃之初沒有提前規(guī)劃而導(dǎo)致的。
這些問題能不能在一開始的時候就完全避免,不能說絕對,但是一定是可以做到絕大部分情況下去避免掉的。這就需要我們企業(yè)的信息化部門要有很前瞻的判斷力,不僅僅要關(guān)注當(dāng)下系統(tǒng)的建設(shè)情況、建設(shè)質(zhì)量,也要預(yù)計好在未來部署商業(yè)智能BI系統(tǒng)擴展、各系統(tǒng)銜接的時候可能會存在的問題,要有一個很清晰的規(guī)劃和預(yù)判力,這就需要有比較扎實的信息化項目開發(fā)、技術(shù)、項目管理、數(shù)據(jù)等綜合的意識和能力。
移動BI_ERP數(shù)據(jù)分析_自助敏捷BI分析_數(shù)據(jù)可視化分析系統(tǒng)-派可數(shù)據(jù)
派可數(shù)據(jù)-商業(yè)智能BI_大屏BI可視化分析平臺_用友BI財務(wù)分析_數(shù)據(jù)中臺