基于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希望展示为饮料
答案:可以使用内部表或者新建表来实现分类查看。
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和账号
参考资料
-
[mondrian 源码]
https://github.com/pentaho/mondrian
-
【saiku源码】
https://github.com/OSBI/saiku
-
【mondrian 学习写schema】
https://mondrian.pentaho.com/documentation/schema.php
-
【学习mondrian 写schema的聚合表】
https://mondrian.pentaho.com/documentation/aggregate_tables.php#Another_aggregate_table
-
【微软mdx文档】
https://docs.microsoft.com/zh-cn/sql/mdx/mdx-syntax-elements-mdx?view=sql-server-ver15