數據倉庫中集成了企業幾乎所有的可以獲取到的數據以用於數據分析和決策支持,當然也包括了我在網站分析的數據來源一文中所提到的所有數據。 這些進入 到數據倉庫中的數據無外乎三種類型: 結構化數據 、 半結構化數據和非結構化數據 ,它們經過轉化後以某種形式統一地儲存在數據倉庫中,即通常說的ETL (Extract, Transform, Load,抽取、轉換、裝載)的過程。 下面主要說一下這三種數據類型的區別,它們分別包括哪些源數據以及這些數據在網站數據分析中的作用。
結構化數據
這類數據的格式非常規範,典型的代表就是關係數據庫中的數據,這些數據可以用二維表來存儲,有固定的字段數,每個字段有固定的數據類型(數字、字符、日期等),並且每個字段的字節長度也相對固定。 這類數據也是最易管理維護的,同時對於查詢、展示和分析而言也是最為方便的一類數據格式。
結構化的數據在網站中一般指的是網站內部的數據庫數據以及一些外部開放的數據庫接口中獲取的數據。 這些數據可以直接通過ETL導入到數據倉庫中進行集成化管理,而在網站分析和數據分析中直接可以根據需要通過SQL語句查詢導出。
結構化的數據在網站數據分析中佔據著舉足輕重的地位,這些存儲在數據庫中的數據一般都是網站的運營數據及用戶操作的結果數據(Outcome),比如網站的註冊用戶數、博客的文章數、評論數……而對於電子商務類網站而言,那些訂單和銷售數據也直接的存儲與數據庫中,而基於這些數據計算得到的總利潤、每個訂單平均利潤、每個用戶創造利潤等KPI數據可以直接分析網站的目標是否實現。
半結構化數據
半結構化數據的格式較為規範,一般都是純文本數據,可以通過某種方式解析得到每項的數據。 最常見的就是日誌數據、XML、JSON等格式的數據,它們每條記錄可能會有預定義的規範,但是可能每條記錄包含的信息不盡相同,也可能會有不同的字段數,包含不同的字段名或字段類型,或者包含著嵌套的格式。 這類數據一般都是以純文本的形式輸出,管理維護也較為方便,但在需要使用這些數據時,如獲取、查詢或分析數據時,可能需要先對這些數據格式進行相應的解析。
半結構化的數據通常是指網站的日誌數據,或者因為某些需求以XML或JSON格式輸出的數據。 最常見的就是網站的Apache日誌,它根據預定義的字段順序打出相應的值:
72.14.192.1 – - [09/May/2010:03:35:02 +0800] “GET / HTTP/1.1″ 200 13726 “-” “Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) ,gzip(gfe) (via translate.google.com)”
而JSON格式則會以鍵值對(Key/Value)的形式輸出數據:
{time: 1234567890, action: “comment”, respond: true, user: {userid: 1, username: “abc”}}
對於像Apache日誌那樣的數據,我們可以根據需要切分出那些有用的數據將它們導入到數據倉庫,而xml和JSON格式的數據我們可以調用各類字符串解析的方法通過它們的標籤或者名稱來獲取相應的值,對於嵌套結構可以使用逐層遍歷的方法依次獲取,同樣選取那些對於分析有用的數據存在數據倉庫。 在這個過程中,ETL中的轉換部分會顯得較為複雜,因為這裡需要進行格式解析,而這一步的優劣直接影響ETL的穩定性和健壯性。 還有一個令人頭疼的問題就是數據的格式和存放問題,也許有必要創建一些自定義字段類型;或者選擇NOSQL數據庫,關於NOSQL數據庫的討論一度熱火朝天,從Google的Big table、Amazon的Dynamo到Facebook的Cassandra,NOSQL數據庫提供了可擴展性的海量數據存儲,對於WEB數據管理提供了新的解決方案。
半結構化數據對於網站數據分析同樣非常重要,網站的點擊流日誌及一些用戶行為數據一般都是以半結構化數據的形式輸出的,當我們需要統計網站分析中的各類指標或者進行用戶行為分析時,這類數據就必不可少。
非結構化數據
非結構化數據指的是那些非純文本類數據,沒有標準格式,無法直接地解析出相應的值。 常見的非結構化數據有富文本文檔、網頁、多媒體(圖像、聲音、視頻等)。 這類數據不易收集管理,也無法直接查詢和分析,所以對這類數據需要使用一些不同的處理方式。
富文本、圖片、聲音、視頻等這些信息,除非需要進行高級的文本挖掘或者多媒體數據挖掘,否者對於一些日常涉及的數據統計和分析而言,非結構化數據本身是沒有分析的價值的。 所以一般不會將非結構化數據直接以二進制的形式存入數據倉庫,數據倉庫之父——Inmon的建議是在數據倉庫中只需要儲存非結構化數據的元數據( Meta Data) ,或者稱為解釋型數據。 所以我們一般將非結構化的數據存放在文件系統(File System)中,而在數據倉庫裡面記錄這些數據的信息,以便快速地索引和尋找需要的數據。 如Word文檔的標題、摘要、作者、創建時間、最近一次修改時間等,而圖片則可能還包括像素、分辨率等。 就像你右擊文件屬性的詳細信息標籤下看到的那些數據項,這些非結構化數據的元數據能夠通過標準的形式記錄,並且能幫助快速地搜索查詢到對應的非結構化數據,同樣可以被用於統計和分析,其實就是給每個非結構化數據貼上了標籤,並將標籤信息記錄到了數據倉庫中。
可能對於大多數網站而言,這類非結構化數據除非被用於高級的數據挖掘,在大部分時間中它們對數據的統計分析作用並不大,但對於某些網站,比如圖片、視頻類網站,這些數據就至關重要。 對於圖片、視頻網站而言,每個圖片和視頻就是網站的產品,而記錄圖片視頻的元數據就是這些產品的詳細信息數據,產品分析、產品細分等都依賴於這些數據;同樣,對於一些公司的內部歸檔的文檔、資料而言,如果有數據倉庫統一地記錄這些文件的信息,就能夠在必要時快速地搜索找到需要的文件,對於信息的統一集成化管理非常有效。
隨著互聯網的不斷發展,各類信息不斷膨脹,還有各式各樣的數據類型會不斷湧現,而數據倉庫扮演著數據集成者的角色,對於各類數據的處理和管理也將不斷地改進優化。
»本文采用BY-NC-SA協議,轉載請註明來源: 網站數據分析 » 《數據倉庫的源數據類型》
相關文章:







頂哇數據倉庫。 。 。 。
文中提到了NoSQL,其實我也好奇,把倉庫構建在非關係數據庫中的可操作性,呵呵
@ bookcold : NoSQL的優勢在於突破了傳統數據庫二維表這個模式的限制,可以儲存結構多樣的數據;同時多節點的並行處理提高了數據運算能力。 因為沒接觸過NoSQL,所以到底能不能應用到數據倉庫也不好說,但它在某種程度上可以解決底層數據結構各異的這類比較頭疼的問題。
不知道博主對數據挖掘有沒有研究,以及網站分析與數據挖掘之間的關係。 您推薦的《點擊流數據倉庫》很棒,同時我找到的一本《web數據挖掘——將客戶數據轉化為客戶價值》也很不錯。