1. 程式人生 > 實用技巧 >大資料專案之電商數倉(使用者行為資料採集)

大資料專案之電商數倉(使用者行為資料採集)

        大資料專案之電商數倉(使用者行為資料採集)

資料倉庫簡介

      1.什麼是資料庫?

    資料庫(database)是按照資料結構來組織,儲存和管理資料的建立在計算機儲存裝置上的倉庫。
    資料庫是長期儲存在計算機內,有組織的,可共享的資料集合。資料庫中的資料指的是以一定的資料模型組織,描述和
儲存在一起,具有儘可能小的冗餘度,較高的資料獨立性和易擴充套件性的特點並可在一定範圍內為多個使用者共享。
    常用的資料庫有mysql,oracle,sqlserver等。作用不一樣,資料庫是用來支撐業務(1)的,需要響應速度特別快,沒
有延時,查詢起來都是一條條查詢,把相關的資料全部得到,適合用這種關係型資料庫。資料倉庫主要用來支撐分析的。

問題:公司的多個部門,對相同的資料描述會不一樣,在彙總的時候會出問題。

(1)什麼是業務:
系統會和自己使用者打交道的系統,為業務系統。滴滴打車,乘客(叫車,上車,確定上車,確認達到,好評),司機,
自己公司的員工,公司就會開發出配套的it系統,
公司的一個員工:
考勤系統,都需要有對應的資料庫做支援
財務系統,都需要有對應的資料庫做支援
oa系統(自動化辦公),都需要有對應的資料庫做支援
市場部it系統。。。。
2.什麼是資料倉庫
在這裡插入圖片描述

資料倉庫,英文名稱Data Warehouse,簡寫為DW。資料倉庫顧名思義,是一個很大的資料儲存集合,出於企業的分析
性報告和決策支援目的而建立,對多樣的業務資料進行篩選與整合。它為企業提供一定的BI(商業智慧)能力,指導業務流程改進,監視時間,成本,質量以及控制。

資料倉庫的輸入方是各種各樣的資料來源,最終的輸出用於企業的資料分析,資料探勘,資料報表等方向
在這裡插入圖片描述

    資料倉庫是決策支援系統(dss)和聯機分析應用資料來源的結構話資料環境。資料倉庫研究和解決從資料庫中獲取資訊
的問題。
    資料倉庫的特徵在於面向主題,整合性,穩定性和時變性,用於支援管理決策。
    資料倉庫存在的意義在於對企業的所有資料進行彙總,為企業各個部門提供統一的,規範的資料出口。

面向物件:資料倉庫中的資料是按照一定的主題域進行組織的,每一個主題對應一個巨集觀的分析領域。資料倉庫排除對於決策無用的資料,提供特定主題的簡明檢視(2)。

整合的:企業內不同業務部門資料的完整整合。

對於企業內所有資料的整合要注意一致性(假設財務系統中對於性別使用F/M,而OA系統對性別使用A/B,這就是資料
不一致,如果想搭建企業級的資料倉庫,需要資料具有一致性)。

穩定的:數倉裡不存在資料的更新和刪除操作。

變化的:數倉裡會完整的記錄某個物件在一段時間內的變化情況。

資料倉庫的目的是實現整合,穩定,反映歷史變化有組織有結構的儲存資料的集合。

(2)面向主題(一種看待問題的角度):
使用者分析,財務分析,銷售分析,訂單分析。。。
主題不一樣,需要的分析指標不一樣,不同的指標的資料(表和欄位)和分析的指標就不一樣。
資料的一致性怎麼理解?
在資料倉庫裡面有各種資料的來源,最終我們建立資料倉庫需要把這些不同的資料整合,而很有可能這些資料不一致,
例如:
業務系統資料庫在建模的時候,會採用關係建模,遵循三正規化,減少冗餘,儘量保證資料的一致性。。。
性別:男/女nan/mv n/m f /m male/fmale…500張表 ,10張是有性別這個欄位,開發java後臺的時候,有可能是多個團隊,多個階段,多個專案組來實現…資料倉庫需要把這些資料全部匯入,需要做一致性的處理

oltp和olap的理解和區別?
OLAP(On-Line Analytical Processing)聯機分析處理,也稱為面向交易的處理過程,其基本特徵是前臺接收的使用者數
據可以立即傳送到計算中心進行處理,並在很短的時間內給出處理結果,是對使用者操作快速響應的方式之一。應用在資料倉庫,使用物件是決策者。OLAP系統強調的是資料分析,響應速度要求沒那麼高。OLTP(On-Line Transaction Processing)聯機事務處理,它使分析人員能夠迅速、一致、互動地從各個方面觀察資訊,
以達到深入理解資料的目的。它具有FASMI(Fast Analysis of Shared Multidimensional Information),即共享多維資訊的快速分析的特徵。主要應用是傳統關係型資料庫。OLTP系統強調的是記憶體效率,實時性比較高。
在這裡插入圖片描述

                  第一章資料倉庫的概念

在這裡插入圖片描述

(3)

(3)
    大資料裡面做的各種菜,當成我們大資料的各種產品,數倉的作用就是相當於這個牛逼的慘痛的後廚,採購各種原材料。
分類和加工,買回來的菜清洗一下,小蟲,農藥清理乾淨
很多的菜需要做初步的加工,回鍋肉,初步的加工,半熟的樣子
把某些原材料和初加工的菜歸類放的比較方便的地方 ----> 分層

如果你開始炒菜了,放到一個小碗裡面配置好–》 立刻炒菜—》 資料出的比較快

兩個面試題:

1.資料來源?
    日誌採集系統,寫日誌,寫入到檔案裡面去,xxx.log,js前端埋點,前端工程師寫一些js程式碼,js程式碼會捕捉各種事件(各種行為),把這些事件按照對應的資料個數以一條條日誌的方式,傳送給後臺。
sdk,java程式碼,主要用在手機app上。。。
業務系統的資料:寫入到mysql的資料
什麼是業務:系統和使用者打交道的場景,就是業務。。。

2.資料倉庫為什麼需要業務支撐?
幾乎所有做大資料的公司都會做報表。。。
使用者畫像,精準化營銷,推薦系統的基礎,最重要的工作就是給使用者打標籤,京東刻畫使用者標籤有5000多個。。。
標籤分為人口屬性標籤,年齡,學歷,家庭資訊…統計類 , 某個人每天上網時長。時間分佈。。。
挖掘類標籤 —> 演算法, 有沒有錢(有錢人,普通人,屌絲,薅羊毛的)

風控:判斷出你這個人有沒有信用,會不會違約,會不會按時還錢…
你向別人借錢,依據是能不能還錢,銀行常規業務就是需要你有抵押物,支付寶借錢,通過大資料分析–》畫像和風控,判斷出你的收入水平,你的信用記錄,判斷你的風險級別…
之前有很多P2P, 之前有很多人向P2P借錢,不還了,主要原因是:1,違法,2.很多是不上徵信,這是不道德,你這種行為是違法的

資料倉庫主要都是T+1 ,實時數倉,小時級別的,就是來一條資料很快出結果,頭條,抖音這樣公司…

    去企業,大部分情況都是做報表(分析各種指標),畫像,推薦,機器學習都需要掌握演算法,
    風控:風險控制,金融行業—》銀行,最重要的就是看你有沒有還款能力。

日誌資料:通過sdk(soft development kit)做資料採集(js採集,java程式碼),所謂sdk就是我們開發一些工具,採集使用者與前端互動的資料(點選,瀏覽,點贊,廣告,錯誤日誌),採集方式是通過監控事件的方式,採集之後對資料進行加密,壓縮,轉碼,採用實時傳送,定時傳送,還可能根據網路情況傳送,需要傳送給後端日誌伺服器。
業務資料:記錄在資料庫中的資料,這些資料基於事務機制記錄每個業務過程的資料。

未完待續。。。