建立用戶畫像首先需要建立數(shù)據(jù)倉庫,用于存儲用戶標(biāo)簽數(shù)據(jù)。 Hive是基于Hadoop的數(shù)據(jù)倉庫工具,依賴于HDFS存儲數(shù)據(jù),提供的 SQL語言可以查詢存儲在HDFS中的數(shù)據(jù)。開發(fā)時一般使用Hive作為數(shù)據(jù)倉庫,存儲標(biāo)簽和用戶特征庫等相關(guān)數(shù)據(jù)。
“ 數(shù) 據(jù) 倉 庫 之 父 ”W.H.Inmon 在 《 Building the Data Warehouse》一書中定義數(shù)據(jù)倉庫是“一個面向主題的、集成的、非易失的、隨時間變化的、用來支持管理人員決策的數(shù)據(jù)集合”。
·面向主題:業(yè)務(wù)數(shù)據(jù)庫中的數(shù)據(jù)主要針對事務(wù)處理,各個業(yè)務(wù)系 統(tǒng)之間是相互分離的,而數(shù)據(jù)倉庫中的數(shù)據(jù)是按照一定主題進(jìn)行組織的。
·集成:數(shù)據(jù)倉庫中存儲的數(shù)據(jù)是從業(yè)務(wù)數(shù)據(jù)庫中提取出來的,但并不是對原有數(shù)據(jù)的簡單復(fù)制,而是經(jīng)過了抽取、清理、轉(zhuǎn)換(ETL) 等工作。業(yè)務(wù)數(shù)據(jù)庫記錄的是每一項業(yè)務(wù)處理的流水賬。這些數(shù)據(jù)不適合進(jìn)行分析處理,進(jìn)入數(shù)據(jù)倉庫之前需要經(jīng)過一系列計算,同時拋棄一些無關(guān)分析處理的數(shù)據(jù)。
·非易失:業(yè)務(wù)數(shù)據(jù)庫中一般只存儲短期數(shù)據(jù),因此其數(shù)據(jù)是不穩(wěn)定的,記錄的是系統(tǒng)中數(shù)據(jù)變化的瞬態(tài)。數(shù)據(jù)倉庫中的數(shù)據(jù)大多表示過去某一時刻的數(shù)據(jù),主要用于查詢、分析,不像業(yè)務(wù)系統(tǒng)中的數(shù)據(jù)庫一樣經(jīng)常修改,一般數(shù)據(jù)倉庫構(gòu)建完成后主要用于訪問,不進(jìn)行修改和刪除。
·隨時間變化:數(shù)據(jù)倉庫關(guān)注的是歷史數(shù)據(jù),按時間順序定期從業(yè)務(wù)數(shù)據(jù)庫和日志庫里面載入新的數(shù)據(jù)進(jìn)行追加,帶有時間屬性。 數(shù)據(jù)抽取到數(shù)據(jù)倉庫的流程如圖3-1所示。
圖3-1 數(shù)據(jù)抽取到數(shù)據(jù)倉庫
在數(shù)據(jù)倉庫建模的過程中,主要涉及事實表和維度表的建模開發(fā) (圖3-2)。
事實表主要圍繞業(yè)務(wù)過程設(shè)計,就應(yīng)用場景來看主要包括事務(wù)事實表,周期快照事實表和累計快照事實表:
·事務(wù)事實表:用于描述業(yè)務(wù)過程,按業(yè)務(wù)過程的單一性或多業(yè)務(wù)過程可進(jìn)一步分為單事務(wù)事實表和多事務(wù)事實表。其中單事務(wù)事實表分別記錄每個業(yè)務(wù)過程,如下單業(yè)務(wù)記入下單事實表,支付業(yè)務(wù)記入支付事實表。多事務(wù)事實表在同一個表中包含了不同業(yè)務(wù)過程,如下單、支付、簽收等業(yè)務(wù)過程記錄在一張表中,通過新增字段來判斷屬于哪一個業(yè)務(wù)過程。當(dāng)不同業(yè)務(wù)過程有著相似性時可考慮將多業(yè)務(wù)過程放到多事務(wù)事實表中。
·周期快照事實表:在一個確定的時間間隔內(nèi)對業(yè)務(wù)狀態(tài)進(jìn)行度量。例如查看一個用戶的近1年付款金額、近1年購物次數(shù)、近30日登錄天數(shù)等。
·累計快照事實表:用于查看不同事件之間的時間間隔,例如分析用戶從購買到支付的時長、從下單到訂單完結(jié)的時長等。一般適用于有明確時間周期的業(yè)務(wù)過程。
圖3-2 數(shù)據(jù)倉庫建模
維度表主要用于對事實屬性的各個方面描述,例如,商品維度包括商品的價格、折扣、品牌、原廠家、型號等方面信息。維度表開發(fā)的過程中,經(jīng)常會遇到維度緩慢變化的情況,對于緩慢變化維一般會采用:①重寫維度值,對歷史數(shù)據(jù)進(jìn)行覆蓋;②保留多條記錄,通過插入維度列字段加以區(qū)分;③開發(fā)日期分區(qū)表,每日分區(qū)數(shù)據(jù)記錄當(dāng)日維度的屬性;④開發(fā)拉鏈表按時間變化進(jìn)行全量存儲等方式進(jìn)行處 理。在畫像系統(tǒng)中主要使用Hive作為數(shù)據(jù)倉庫,開發(fā)相應(yīng)的維度表和 事實表來存儲標(biāo)簽、人群、應(yīng)用到服務(wù)層的相關(guān)數(shù)據(jù)。








暫無數(shù)據(jù)