說(shuō)說(shuō)數(shù)倉(cāng)(9)-上下游約定


數(shù)倉(cāng)總結(jié)目錄:
說(shuō)說(shuō)數(shù)倉(cāng)(1) - 什么是數(shù)倉(cāng)
說(shuō)說(shuō)數(shù)倉(cāng)(2) - 傳統(tǒng)數(shù)倉(cāng)與互聯(lián)網(wǎng)數(shù)倉(cāng)
說(shuō)說(shuō)數(shù)倉(cāng)(3) - 數(shù)倉(cāng)架構(gòu)
說(shuō)說(shuō)數(shù)倉(cāng)(4) - 指標(biāo)字典
說(shuō)說(shuō)數(shù)倉(cāng)(5)-最重要的維度之日期維度
說(shuō)說(shuō)數(shù)倉(cāng)(6)-關(guān)于命名規(guī)范
說(shuō)說(shuō)數(shù)倉(cāng)(7)-淺談數(shù)據(jù)治理
說(shuō)說(shuō)數(shù)倉(cāng)(8)-關(guān)于增量
說(shuō)說(shuō)數(shù)倉(cāng)(9)-上下游約定
說(shuō)說(shuō)數(shù)倉(cāng)(10)-任務(wù)注釋


我平時(shí)比較喜歡說(shuō)數(shù)據(jù)平臺(tái),現(xiàn)在數(shù)倉(cāng)逐步變成了數(shù)據(jù)平臺(tái)的一部分,偏向建模這塊兒。

由于數(shù)倉(cāng)的特性和定位,它就需要強(qiáng)依賴上游的業(yè)務(wù)系統(tǒng),當(dāng)然也會(huì)有一些下游系統(tǒng),所以定好上下游的規(guī)范,變更的通知機(jī)制是非常有必要的。

感覺(jué)好像寫過(guò)上下游的事情,剛才沒(méi)找到,這里就再重新寫寫。

上游

這里說(shuō)的主要是基于小公司,類似我目前所在的創(chuàng)業(yè)公司為例,像發(fā)展成熟的大公司,各種流程規(guī)定、容錯(cuò)監(jiān)控類的機(jī)制都很完善,對(duì)于這些場(chǎng)景,我說(shuō)的可能就不適用了。

對(duì)于數(shù)倉(cāng)來(lái)說(shuō),最重要的就是數(shù)據(jù)了,數(shù)倉(cāng)中的數(shù)據(jù),主要來(lái)源是業(yè)務(wù)系統(tǒng),就是公司各種業(yè)務(wù)數(shù)據(jù),所以數(shù)倉(cāng)需要不斷的將業(yè)務(wù)系統(tǒng)數(shù)據(jù)同步到自身平臺(tái)來(lái),所以一旦上游業(yè)務(wù)系統(tǒng)發(fā)生變化,數(shù)倉(cāng)也要同步變化,不然,這種同步操作很可能失敗。

  • 表結(jié)構(gòu)變更
    上游的表結(jié)構(gòu)經(jīng)常會(huì)發(fā)生變化,新增字段、修改字段、刪除字段(除非真的不用這個(gè)字段了,通常會(huì)選擇標(biāo)識(shí)為棄用)。

表結(jié)構(gòu)最好要維護(hù)清楚,表名、字段名、字段類型、字段描述,都整理清楚,不使用的字段要么刪除,要么備注好,當(dāng)業(yè)務(wù)頻繁發(fā)生變化或者迭代優(yōu)化的時(shí)候,很容易出現(xiàn),我寫了半天的代碼,最后發(fā)現(xiàn)表用的不對(duì),字段用的不對(duì),這就尷尬了。

對(duì)于這種變化,人工處理的話,就是手動(dòng)在數(shù)倉(cāng)對(duì)應(yīng)的表中增加、修改字段,然后修改同步任務(wù);這個(gè)最好可以搞成自動(dòng)化的,比如,自動(dòng)監(jiān)控上游表結(jié)構(gòu)的變更,變化后,自動(dòng)去修改數(shù)倉(cāng)中的表結(jié)構(gòu),自動(dòng)修改同步任務(wù)。

  • 枚舉值
    業(yè)務(wù)系統(tǒng)中會(huì)有很多的常量,用來(lái)標(biāo)識(shí)一些狀態(tài)或者類型,這種值經(jīng)常會(huì)新增,數(shù)倉(cāng)中會(huì)對(duì)這些值做些處理,比如轉(zhuǎn)換成維度,會(huì)翻譯成對(duì)應(yīng)的中文,而實(shí)際上這種映射關(guān)系,我們是不知道的,只有業(yè)務(wù)開發(fā)才知道,所以最好可以讓他們維護(hù)一張枚舉值表,我們?nèi)ネ竭@張表。

  • create_time & update_time
    正常來(lái)說(shuō),create_time,當(dāng)這條記錄插入后,就不會(huì)再變了,但是某種情況下,哈哈,開發(fā)同學(xué)會(huì)去更新它;update_time,當(dāng)這條記錄變化后,這個(gè)時(shí)間也要變,有的開發(fā)同學(xué)不去更新它......
    所以在做增量操作的時(shí)候,一定和開發(fā)說(shuō)好這兩個(gè)字段的定義和使用場(chǎng)景。

  • is_delete & is_valid
    有些場(chǎng)景下,我們需要?jiǎng)h除某些數(shù)據(jù),一般不會(huì)物理刪除,會(huì)通過(guò)一個(gè)字段來(lái)做邏輯刪除,請(qǐng)和開發(fā)同學(xué)溝通好,使用固定的一個(gè)字段,并確認(rèn)該字段雙方的理解是一致的,不然后面又很多坑。

下游

說(shuō)完了上游,我們說(shuō)說(shuō)下游,對(duì)于數(shù)倉(cāng)來(lái)說(shuō),一般的郵件、報(bào)表、可視化平臺(tái)都是下游,所以當(dāng)我們?cè)跀?shù)倉(cāng)中進(jìn)行某些重構(gòu)、優(yōu)化操作的時(shí)候,也需要通知他們。

主要就是對(duì)數(shù)倉(cāng)模型做好維護(hù),表的使用場(chǎng)景、字段描述等。

對(duì)上游的要求,自己也要做好,因?yàn)樽约阂彩巧嫌巍?/p>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容