由一個(gè)數(shù)據(jù)增量處理問(wèn)題看到技術(shù)人員的意識(shí)差距
這是我們一位技術(shù)人員在做商業(yè)智能BI項(xiàng)目的時(shí)候問(wèn)到的一個(gè)的問(wèn)題,我們?cè)趦?nèi)部也做了下復(fù)盤,覺(jué)得有些價(jià)值和啟發(fā),跟大家也分享一下。
數(shù)據(jù)增量處理問(wèn)題
比如像歷史訂單數(shù)據(jù)量比較大,所以按道理應(yīng)該每天做增量抽取,按時(shí)間日期戳抽取最新一天的數(shù)據(jù)。但問(wèn)題就在于這個(gè)訂單信息業(yè)務(wù)部門昨天提交了,數(shù)據(jù)也被加載到數(shù)據(jù)倉(cāng)庫(kù)了,但這個(gè)訂單隔了幾天之后業(yè)務(wù)部門可能重新修改了,這樣就造成已經(jīng)進(jìn)入到商業(yè)智能BI數(shù)據(jù)倉(cāng)庫(kù)的歷史訂單數(shù)據(jù)就不準(zhǔn)確了。
那我就問(wèn),你在這個(gè)商業(yè)智能BI項(xiàng)目上是如何處理的。技術(shù)人員回答說(shuō)我們是全刪全查,每天ETL抽取的時(shí)候?qū)?shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)先刪除掉,然后再重新查詢進(jìn)來(lái)。但是歷史訂單數(shù)據(jù)量很大,可能還存了好幾年的,每次全刪全查,這種效率就很低。

?
那我就問(wèn),為什么不換種方式呢?比如在這個(gè)商業(yè)智能BI項(xiàng)目數(shù)據(jù)倉(cāng)庫(kù)中刪除最近30天的歷史訂單數(shù)據(jù),每次重新加載最近30天的訂單數(shù)據(jù)進(jìn)來(lái)不就可以解決問(wèn)題了嗎?這也是一種增量處理方式。增量并不是每次就處理一天的數(shù)據(jù),30天也算是增量處理。
技術(shù)人員就說(shuō)不行,因?yàn)闃I(yè)務(wù)部門說(shuō)了訂單的數(shù)據(jù)不保證什么時(shí)候會(huì)修改,有可能是30天,有可能更長(zhǎng)。所以,沒(méi)有辦法,只能做全量數(shù)據(jù)刪除和加載處理。所以就按照這種方式一直處理到現(xiàn)在,效率就很慢,從ODS層開始到DW到DM層層都要重新算,周期就拉得很長(zhǎng)。
當(dāng)然這位技術(shù)人員在這個(gè)商業(yè)智能BI項(xiàng)目里面也嘗試其他的方式比如做分區(qū)、做索引優(yōu)化去改善等等,事情就到這里就結(jié)束了。
數(shù)據(jù)增量問(wèn)題處理方案
感覺(jué)整個(gè)過(guò)程有沒(méi)有問(wèn)題?從技術(shù)角度來(lái)講沒(méi)有問(wèn)題,商業(yè)智能BI項(xiàng)目里通常情況下都是這么做的。
但實(shí)際上呢?還是有問(wèn)題的,技術(shù)人員思考的方向需要再打開一些。憑什么業(yè)務(wù)人員說(shuō)訂單任何時(shí)候都會(huì)修改,三個(gè)月以前的會(huì)修改嗎?一年前的會(huì)修改嗎?很顯然,這些業(yè)務(wù)場(chǎng)景的真實(shí)性是存在問(wèn)題的。
?

一個(gè)銷售訂單下來(lái)了,審核沒(méi)有問(wèn)題就到工廠那邊去了,工廠排計(jì)劃排產(chǎn)東西都生產(chǎn)出來(lái)了,最后發(fā)到客戶那邊,整個(gè)訂單的流程就執(zhí)行完成了,這個(gè)周期算下來(lái)30天、45天還是90天,這個(gè)很容易去驗(yàn)證,怎么會(huì)出現(xiàn)一年前的訂單數(shù)據(jù)再去修改的問(wèn)題呢?這個(gè)概率有多大,顯然很小。所以這種場(chǎng)景從業(yè)務(wù)的角度是不存在的,至于為什么會(huì)那么長(zhǎng)時(shí)間還會(huì)修改訂單信息,這個(gè)就只有業(yè)務(wù)人員自己知道了。
所以,最后帶著這種疑問(wèn)去跟業(yè)務(wù)部門的領(lǐng)導(dǎo)一碰,根本就不存在這個(gè)問(wèn)題,偶爾會(huì)有訂單信息在近幾天內(nèi)調(diào)整修改,再長(zhǎng)也不會(huì)超過(guò)30天。下單的時(shí)候?qū)徍艘淮危缴a(chǎn)那邊再審核一次,沒(méi)有問(wèn)題就執(zhí)行了。特殊情況因?yàn)楦鞣N各樣的原因訂單沒(méi)有執(zhí)行,也是以一種狀態(tài)來(lái)結(jié)束的,這些訂單數(shù)據(jù)在收入統(tǒng)計(jì)的時(shí)候會(huì)被剔除掉的。
數(shù)據(jù)增量問(wèn)題處理思路
那我講這件事情的目的在哪里?就是雖然我們在商業(yè)智能BI項(xiàng)目里從事的是技術(shù),但是也要有業(yè)務(wù)的敏感度。像上面提到的技術(shù)人員,技術(shù)沒(méi)有問(wèn)題想的方式挺全考慮聽周到的,但是對(duì)業(yè)務(wù)不太敏感。就造成了一個(gè)原本相對(duì)簡(jiǎn)單的處理方式,最后弄得非常得復(fù)雜,并且還沒(méi)有很好的方式去優(yōu)化。
我們做信息化的目的不僅僅是為了把業(yè)務(wù)流程捋順、效率提升,很多時(shí)候也是要推動(dòng)業(yè)務(wù)管理的進(jìn)步和改善的。假設(shè)剛才提到的場(chǎng)景就真實(shí)存在,一年前的訂單信息還會(huì)被修改,那這種情況是不是業(yè)務(wù)管理上的一個(gè)漏洞,經(jīng)不經(jīng)得起解釋,這種業(yè)務(wù)管理流程是否合理。

?
在這個(gè)例子中就能看出來(lái)我們一些技術(shù)人員會(huì)存在的一個(gè)問(wèn)題,就是技術(shù)思維領(lǐng)先,缺乏一種業(yè)務(wù)視角,也缺乏一種意識(shí)去質(zhì)疑一些事情。比如有沒(méi)有這種意識(shí)先去質(zhì)疑這種一眼看上去就不合理的業(yè)務(wù)要求,去弄明白為什么會(huì)出現(xiàn)這種違背常理的處理方式,去跟業(yè)務(wù)較下勁,至于結(jié)果怎么樣不說(shuō),個(gè)人有沒(méi)有這種意識(shí)去突破,去做出這種動(dòng)作,這一點(diǎn)很重要。
別人想到的你能想到,別人沒(méi)有想到的你也能想到,想到了并且還能去主動(dòng)驗(yàn)證下并提出更優(yōu)的解決方式,這就是普通技術(shù)人員跟優(yōu)秀技術(shù)人員的差距。
由一個(gè)數(shù)據(jù)增量處理問(wèn)題看到技術(shù)人員的意識(shí)差距的評(píng)論 (共 條)
