關(guān)于數(shù)據(jù)漂移問(wèn)題和解決

數(shù)據(jù)漂移問(wèn)題出現(xiàn)的背景

我們通常構(gòu)建數(shù)倉(cāng)的ODS層時(shí)混蔼,會(huì)考慮按照某個(gè)時(shí)間戳將數(shù)據(jù)切分后分區(qū)存儲(chǔ)榨了。
ODS表中常出現(xiàn)的時(shí)間戳分為四個(gè)類型:

  1. 源表中標(biāo)識(shí)數(shù)據(jù)記錄更新的時(shí)間戳字段眶蕉,modified_time勋乾。
  2. 源表中標(biāo)識(shí)源庫(kù)日志記錄更新的時(shí)間戳字段执泰,log_time枕磁。
  3. 源表中記錄具體業(yè)務(wù)過(guò)程發(fā)生的時(shí)間戳字段,proc_time坦胶。
  4. 標(biāo)識(shí)數(shù)據(jù)從源表抽取到數(shù)倉(cāng)的時(shí)間戳字段透典,extract_time。

理想情況下顿苇,上述幾類時(shí)間戳記錄的時(shí)間一致峭咒,這樣無(wú)論使用哪個(gè)時(shí)間戳作為ODS表分區(qū)的依據(jù),同一調(diào)度周期內(nèi)的業(yè)務(wù)發(fā)生時(shí)間都位于同一個(gè)分區(qū)纪岁,不存在數(shù)據(jù)漂移凑队。
但是,生產(chǎn)上通常會(huì)出現(xiàn)如下問(wèn)題幔翰,這個(gè)問(wèn)題可能導(dǎo)致這幾類時(shí)間不一致:

  1. 數(shù)據(jù)抽取需要時(shí)間漩氨,所以extract_time往往晚于其他三個(gè)時(shí)間。
  2. 前臺(tái)業(yè)務(wù)系統(tǒng)手工修改數(shù)據(jù)時(shí)遗增,并沒(méi)有同步更新modified_time叫惊。
  3. 由于應(yīng)用系統(tǒng)的壓力,導(dǎo)致modified_time和log_time晚于proc_time做修。

這樣霍狰,我們?cè)贠DS中使用各種時(shí)間戳切分?jǐn)?shù)據(jù)時(shí)會(huì)面臨各種問(wèn)題:
為了便于分析抡草,我們假設(shè)統(tǒng)計(jì)周期是天,即ODS表每天數(shù)據(jù)存到一個(gè)分區(qū)蔗坯。

1. 如果根據(jù)extract_time切分?jǐn)?shù)據(jù)康震。

由于extract_time往往晚于proc_time,導(dǎo)致proc_time發(fā)生在某天末尾的少部分記錄對(duì)應(yīng)的extract_time會(huì)在第二天開(kāi)頭宾濒,這時(shí)如果按extract_time會(huì)導(dǎo)致當(dāng)天proc_time對(duì)應(yīng)的記錄存在當(dāng)天和第二天兩個(gè)分區(qū)中腿短。

2. 如果根據(jù)modified_time切分?jǐn)?shù)據(jù)。

可能某業(yè)務(wù)過(guò)程開(kāi)始發(fā)生在11:59:59绘梦,而業(yè)務(wù)過(guò)程結(jié)束橘忱,在數(shù)據(jù)庫(kù)生成數(shù)據(jù)的時(shí)間在第二天,也就是說(shuō)proc_time在11:59:59的記錄谚咬,對(duì)應(yīng)的modified_time記錄的時(shí)間在第二天鹦付。這時(shí)如果按照modified_time分區(qū),會(huì)導(dǎo)致proc_time在11:59:59的記錄存在第二天的分區(qū)內(nèi)择卦。

3. 根據(jù)log_time切分?jǐn)?shù)據(jù)。

由于log_time是由應(yīng)用系統(tǒng)日志程序記錄的郎嫁,當(dāng)生成環(huán)境發(fā)生網(wǎng)絡(luò)或者系統(tǒng)壓力時(shí)秉继,log_time會(huì)晚于proc_time。這時(shí)如果按照l(shuí)og_time分區(qū)泽铛,會(huì)發(fā)生和上述一樣的問(wèn)題尚辑。

4. 如果直接根據(jù)proc_time切分?jǐn)?shù)據(jù)。

如果該事實(shí)表只記錄了一個(gè)業(yè)務(wù)過(guò)程盔腔,是可行的杠茬。
但是如果事實(shí)表記錄了多個(gè)業(yè)務(wù)過(guò)程,只用某一個(gè)業(yè)務(wù)過(guò)程的proc_time做為分區(qū)時(shí)間弛随,那么當(dāng)天分區(qū)必定會(huì)遺漏其他業(yè)務(wù)過(guò)程的數(shù)據(jù)瓢喉。

如何處理數(shù)據(jù)漂移

最常用的處理方法是在ODS表每個(gè)時(shí)間分區(qū)中向前、后多冗余一些數(shù)據(jù)舀透,保障數(shù)據(jù)只多不少栓票,具體應(yīng)用的時(shí)候可以讓下游的表根據(jù)自身業(yè)務(wù)需要用不同的proc_time去做篩選處理。
當(dāng)然這種方式對(duì)累積快照事實(shí)表是有一些統(tǒng)計(jì)風(fēng)險(xiǎn)的愕够,例如一個(gè)訂單是當(dāng)天支付的走贪,但是第二天凌晨申請(qǐng)退款關(guān)閉了,那么當(dāng)這個(gè)訂單離線同步到ODS時(shí)惑芭,記錄該訂單的記錄只會(huì)保留最終的訂單狀態(tài)坠狡。那么統(tǒng)計(jì)當(dāng)天訂單數(shù)量時(shí)會(huì)出現(xiàn)錯(cuò)誤。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末遂跟,一起剝皮案震驚了整個(gè)濱河市逃沿,隨后出現(xiàn)的幾起案子婴渡,更是在濱河造成了極大的恐慌,老刑警劉巖感挥,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缩搅,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡触幼,警方通過(guò)查閱死者的電腦和手機(jī)硼瓣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)置谦,“玉大人堂鲤,你說(shuō)我怎么就攤上這事∶较浚” “怎么了瘟栖?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)谅阿。 經(jīng)常有香客問(wèn)我半哟,道長(zhǎng),這世上最難降的妖魔是什么签餐? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任寓涨,我火速辦了婚禮,結(jié)果婚禮上氯檐,老公的妹妹穿的比我還像新娘戒良。我一直安慰自己,他們只是感情好冠摄,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布糯崎。 她就那樣靜靜地躺著,像睡著了一般河泳。 火紅的嫁衣襯著肌膚如雪沃呢。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,246評(píng)論 1 308
  • 那天乔询,我揣著相機(jī)與錄音樟插,去河邊找鬼。 笑死竿刁,一個(gè)胖子當(dāng)著我的面吹牛黄锤,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播食拜,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼鸵熟,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了负甸?” 一聲冷哼從身側(cè)響起流强,我...
    開(kāi)封第一講書(shū)人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤痹届,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后打月,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體队腐,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年奏篙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了柴淘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡秘通,死狀恐怖为严,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情肺稀,我是刑警寧澤第股,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站话原,受9級(jí)特大地震影響夕吻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜繁仁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一梭冠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧改备,春花似錦、人聲如沸蔓倍。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)偶翅。三九已至默勾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間聚谁,已是汗流浹背母剥。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留形导,地道東北人环疼。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像朵耕,于是被迫代替她去往敵國(guó)和親炫隶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359