基於FOODMART設計數據分析課程
課程 | 數據倉庫課程設計 |
題目 | Foodmart批發店銷售分析系統 |
主講內容 | 基於Foodmart實例數據庫,進行數據分析,要求滿足以下分析要求 1. 按時間級別分析不同商店的銷售額、銷售成本額 2. 按時間級別分析每個產品的銷售額、銷售成本額 3. 按時間級別分析不同批發店(每個城市、省國家、擁有者)的銷售額、銷售成本額 4. 按時間級別分析不同批發店類型的銷售額、銷售成本額 5. 按時間級別分析不同商店(每個城市、省、國家)銷售產品的銷售額、銷售成本額 6. 按時間級別分析不同地區的銷售額、銷售成本額 7. 按時間級別分析不同產品的銷售額、銷售成本額 |
要求 | 基本要求: 1. 按照需求完成詳細的設計,包括實施白哦和維度的設計; 2. 按實際方案選擇先關數據表以及各表的字段,表的之間的關係; 3. 有詳細的數據準備方案,包括驗證、清理、轉換、裝載等; 4. 將表中的任命(如銷售人)的姓、名進行合併; 5. 按照設計方案構建多維度的數據集; 6. 按需求分析數據。 高級要求: 可以分析按不同匯率顯示銷售額和銷售成本額 |
工作計劃(工作分解) | 提前兩週:分組、選題 提前一週:明確需求分析、組內分工 第一天:與指導老師討論,明確需求,分工並開始設計 第二到四天:構建多維數據集,分析數據 第五天:完成設計書,答辯 第六天:針對答辯意見修改設計說明書,打印,上交 |
1:數據清洗
2:數據分析及操作
常見問題
1. mondrian配置的時候的數據源鏈接地址
答案:url:
jdbc:mysql://127.0.0.1:3306/foodmart?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
2. 已知類型如何讓他們轉義成易讀文字。例如food希望展示爲食品,Drink希望展示爲飲料
答案:todo
3. 按照時間維度統計各種產品的銷售情況,如果沒有時間維度的話,顯示數據爲空。這個需要確認下原因。
答案:Hierarchy有個屬性hasAll,如果該值爲false時,默認是選擇第一個匹配的維度值作爲條件進行查詢。舉例說明,我們使用事實表sales_fact_1998,同時表time_by_day裏的年度有1997和1998兩個年度的數據,當我們採用按照商品類型進行分析銷量時,如果hasAll=false時對應的是數據爲空,因爲匹配的時間維度爲1997.如果hasAll=true時就可以展示所有數據了。
4. 重新設置了schema,但是點擊後發現沒有生效。
答案:這個由於saiku使用了緩存,如果schema發生了變更,那麼對應的datasources需要更換名稱或者重啓服務。這樣就能解決問題了。
5. 如何獲取saiku的license和賬號
參考資料
-
https://mondrian.pentaho.com/documentation/schema.php【mondrian 學習寫schema】
-
https://mondrian.pentaho.com/documentation/aggregate_tables.php#Another_aggregate_table【學習mondrian 寫schema時聚合表】
-
https://github.com/pentaho/mondrian【mondrian 源碼】
-
https://github.com/OSBI/saiku【saiku源碼】
-
https://docs.microsoft.com/zh-cn/sql/mdx/mdx-syntax-elements-mdx?view=sql-server-ver15【微軟mdx文檔】