為什么要建數(shù)據(jù)倉庫,而不是直連數(shù)據(jù)源?

??????? 各位數(shù)據(jù)的朋友,大家好,我是老周道數(shù)據(jù),和你一起,用常人思維+數(shù)據(jù)分析,通過數(shù)據(jù)講故事。
??????? 今天和大家聊一個(gè)話題:為什么BI軟件要用構(gòu)建數(shù)據(jù)倉庫,而不是直連數(shù)據(jù)源的方式開發(fā)報(bào)表?

??????? 在與企業(yè)IT的交流過程中,經(jīng)常會討論到一個(gè)話題,就是做BI數(shù)據(jù)可視化分析報(bào)表時(shí),是建數(shù)據(jù)倉庫好,還是直連數(shù)據(jù)源好。這個(gè)話題,在很多年前非常普遍,近幾年少了許多,但仍然會有一些客戶會問:“奧威BI軟件支持在同一個(gè)報(bào)表中訪問不同的數(shù)據(jù)源嗎?”
??????? 可以肯定地回答,奧威BI軟件在技術(shù)上是支持的。但是,我們強(qiáng)烈反對使用這種方式來開發(fā)報(bào)表,我們建議大家先將不同數(shù)據(jù)源的數(shù)據(jù),轉(zhuǎn)換到同一個(gè)數(shù)據(jù)倉庫中,進(jìn)行必要的清洗與規(guī)范,再進(jìn)行開發(fā)。很多IT會反對說,這樣不是很麻煩嗎?
??????? 是的,這樣相對來說,是麻煩了一點(diǎn)。但,很多事情在復(fù)雜的演化過程中,麻煩變成了主流。
??????? 我們來對比一下,農(nóng)村建房子和城市建房子有什么不同?農(nóng)村建房子,一般建個(gè)兩三層,所以,壘幾塊磚做地基,就開始往上建,是很快,但是,大家都知道,這樣的房子建不高,如果想再加高,就得推倒重建。而城市里建房子,則是一塊地,一圍就是半年一年甚至更長,這是在干什么呢?這是在挖地基,樓建的越高,地基挖的就越深。
??????? 前一段時(shí)間,我經(jīng)常開車經(jīng)過的一段路,開通了紅綠燈。本來車流量不大,沒有紅綠燈的情況下,通行效率會更高,所以,對此頗為不解。后來看到通行的行人,才明白,這個(gè)紅綠燈雖然降低了車的通行效率,卻提高了行人的安全保障。
??????? 曾經(jīng)有一個(gè)段子,說一個(gè)軟件公司請了一個(gè)開發(fā)高手,老板問他,你一個(gè)人開發(fā)完這個(gè)項(xiàng)目需要多長時(shí)間?高手說2個(gè)月,老板心里想,這個(gè)項(xiàng)目很著急,需要1個(gè)月完成,于是說,如果給你增加2個(gè)人,你需要多少時(shí)間?高手回答:4個(gè)月?老板瘋了,為什么?。咳瞬皇窃蕉喔苫钤娇靻??高手說,給我增加2個(gè)人,我還得和他們溝通,要檢查他們的代碼,還不如我一個(gè)人開發(fā)來得快。
??????? 其實(shí),奧威也是一樣,研發(fā)剛開始就幾個(gè)人,1個(gè)人就要承擔(dān)一個(gè)大的產(chǎn)品模塊的開發(fā),包括需求梳理、代碼開發(fā)、功能測試等。但是,當(dāng)產(chǎn)品的功能、客戶的需求以及使用量越來越多的時(shí)候,很多問題就開始暴露出來,特別是產(chǎn)品的性能與穩(wěn)定性,而這些問題非常影響客戶的正常使用。于是,慢慢的就開始進(jìn)行分工,將架構(gòu)設(shè)計(jì)、需求規(guī)劃、代碼開發(fā)、產(chǎn)品測試都獨(dú)立開來,再后來,代碼開發(fā)還區(qū)分后臺開發(fā)與前端開發(fā),再后來,從面向?qū)ο箝_發(fā)跨向微服務(wù)開發(fā)……就像剛才段子里說的那樣,人一多,溝通的成本就增加,代碼的復(fù)雜度也在增加,整個(gè)開發(fā)的進(jìn)度明顯變慢。但是,奧威BI軟件經(jīng)過幾次的技術(shù)迭代之后,產(chǎn)品的性能不會因?yàn)楣δ艿脑黾佣兟?,也不會因?yàn)楣δ艿脑黾佣兊貌环€(wěn)定,也大幅減少了修復(fù)了一個(gè)bug,又帶出三個(gè)新bug的情況。很難想像,如果我們還按以前作坊式的開發(fā)方式,奧威BI軟件是否還能生存下來。
??????? 再看我們現(xiàn)在的交通網(wǎng)絡(luò),城際主干網(wǎng)為飛機(jī)或高鐵,市內(nèi)主要是地鐵或公交,最后一公里則是共享單車或步行。我經(jīng)常出差,200公里內(nèi),一般采取自駕的方式,200-1500公里,則通常用高鐵,1500公里以上,則采取飛行的方式。我最喜歡的是自駕的方式在珠三角出差,因?yàn)檫@樣方便且高效。但是,一旦超過200公里,我就只能選擇其他方式了,因?yàn)槠渌绞诫m然麻煩一些,但卻變得更高效。通常我在有地鐵的城市見客戶,也基本不打車,雖然坐地鐵麻煩,但比打車在時(shí)間上更可靠。
??????? 講了這么多,就是想說,BI的建設(shè)我們不能圖一時(shí)之快,能省事就省事,而要圖長遠(yuǎn),這個(gè)平臺可以支撐起未來公司3-5年甚至更長時(shí)間的持續(xù)優(yōu)化,深入應(yīng)用,那么,這個(gè)時(shí)候,就必須要用略顯麻煩的方式去滿足未來復(fù)雜場景下的高效,穩(wěn)定運(yùn)行。所謂的復(fù)雜場景,就是指越來越多的人使用,越來越多的需求場景,越來越多的數(shù)據(jù)量。其實(shí),現(xiàn)在更大型的企業(yè)已經(jīng)在數(shù)據(jù)倉庫的基礎(chǔ)上,衍生的更復(fù)雜,包括數(shù)據(jù)中臺、數(shù)據(jù)湖等等。這些高大上的概念,大家有興趣的話,可以自行去百度,簡單的說來,數(shù)據(jù)倉庫主要是為決策提供數(shù)據(jù)支持,數(shù)據(jù)中臺則不僅包含為決策提供數(shù)據(jù)支持,還多了為不同業(yè)務(wù)系統(tǒng)提供數(shù)據(jù)支持;而數(shù)據(jù)湖呢,它更強(qiáng)調(diào)保持?jǐn)?shù)據(jù)的原汁原味,包含很多非結(jié)構(gòu)數(shù)據(jù),也不強(qiáng)調(diào)數(shù)據(jù)治理,更多是希望借助AI技術(shù)進(jìn)行深度數(shù)據(jù)價(jià)值挖掘。那對于我們這些非互聯(lián)網(wǎng)企業(yè)來說,構(gòu)建好數(shù)據(jù)倉庫就已經(jīng)足夠應(yīng)對未來5-10年的復(fù)雜需求場景了。
?
??????? 說了半天,好像都沒有搞明白,為什么直連數(shù)據(jù)源就像是農(nóng)村一樣建房,而構(gòu)建數(shù)據(jù)倉庫則是建高樓大廈的地基呢?
??????? 舉例說明:
??????? 假如我們需要從ERP、MES、HR、CRM中取數(shù)制作一張老板要的大屏,分別展示財(cái)務(wù)、生產(chǎn)、人力與客戶的情況,可以按不同時(shí)間篩選。
??????? 1、直連數(shù)據(jù)源
??????? 小強(qiáng)用直連數(shù)據(jù)源并分別將老板關(guān)心的數(shù)據(jù)用寫SQL的方式獲得,并在BI軟件上制作出大屏。這肯定是最快的。但是,當(dāng)大屏做好之后,老板突然覺得這還不夠,希望能按組織篩選不同事業(yè)部或分公司的數(shù)據(jù)。這個(gè)時(shí)候,小強(qiáng)就傻眼了。為什么呢?因?yàn)镋RP、MES、HR、CRM中組織這個(gè)基礎(chǔ)資料都不一樣,同一個(gè)事業(yè)部或分公司,在不同的系統(tǒng)里編碼不一樣,名稱叫法可能都不一樣,甚至組織劃分的方式都不同。最后,沒辦法,只好通過一系列復(fù)雜的操作,想辦法在前端實(shí)現(xiàn)篩選時(shí),可以得到一致的結(jié)果,加了幾個(gè)通宵班,才勉強(qiáng)交差。
??????? 又過了一段時(shí)間,老板又有了新的想法,希望能往下鉆取,分別要看到不同事業(yè)部或分公司的更多維度的數(shù)據(jù)。這下可慘了,小強(qiáng)又得折騰一段時(shí)間,并且瑟瑟發(fā)抖,祈禱老板不要有新的想法。
??????? 2、數(shù)據(jù)倉庫:
??????? 用數(shù)據(jù)倉庫的方法就不會出現(xiàn)上述這種情況。只要打好了數(shù)據(jù)倉庫這個(gè)地基,后面老板有任何的想法,都可以基于數(shù)據(jù)倉庫與分析模型,前端拖拽即可實(shí)現(xiàn),立等可?。?/span>
到底怎么構(gòu)建數(shù)據(jù)倉庫呢?
??????? 奧威BI軟件根據(jù)近20年的經(jīng)驗(yàn),開發(fā)出一套適用于絕大多數(shù)企業(yè)的通用數(shù)據(jù)底座,不管企業(yè)用的是用友金蝶ERP,還是其他的MES或HR,都可以按這個(gè)數(shù)據(jù)底座進(jìn)行對接,將構(gòu)建數(shù)據(jù)倉庫的時(shí)間大幅壓縮。

???????? 構(gòu)建數(shù)據(jù)倉庫,打好堅(jiān)實(shí)的地基,BI大廈才能越建越高!
??????? 老周道數(shù)據(jù),和你一起,用常人思維+數(shù)據(jù)分析,通過數(shù)據(jù)講故事,我們下一講再見!