用于报告和分析工具的数据库仓库设计
Posted
技术标签:
【中文标题】用于报告和分析工具的数据库仓库设计【英文标题】:Database warehouse design for reporting and analytical tools 【发布时间】:2017-08-21 15:01:42 【问题描述】:我是 OLAP 数据库设计的新手,我有一个带有以下表格的 mysql 数据库:-
countries(id, name);
occupations(id, name);
areas(id, name);
purposes(id, name);
tickets(id, issue_date, country_id, occupation_id, area_id, purpose_id, first_name, last_name, gender, birth_date, cost, quantity, .....);
这是我的交易数据库的简化版本,每次销售都会定期更新。如果我的票表每天填充大约 1000 行。如何设计我的 olap/数据库,以便我可以在图表上查看每日、每周、每月和每年的数据?
我可以使用上表在图表上描绘每天的数据,但是对于每周、每月等,由于数据集很大,应用程序无法响应!
更新! 在我看来,数据库模式本身就像一个星型模式,一个事实表作为门票,其他维度表作为国家、职业、地区等。我真的需要另一个模式吗?可能我什至根本不需要它。只有我担心的是,当票务表被要求获取一年的所有数据时,它将获取大约 1000*365 或更多的记录!正常吗?
【问题讨论】:
每天 1000 条记录并不是很多。但是您查询的门票表中的销售日期在哪里?你看到的问题是什么,你得到了太多的行,或者当你得到一个行一年后,需要很长时间才能得到?我同意这几乎就像一个星型模式,所以缺少的部分是一个每天一行的日期表。在该表中,您将有许多代表月份、年份等的列。您可以使用它来过滤年份或月份。 【参考方案1】:OLTP 和 OLAP 模型有不同的要求(您可以在 Google 上了解更多详细信息),因此使用 OLTP 模型进行 OLAP 分析可能不是正确的解决方案,尤其是当数据量开始增长时。
如果您只想使用数据库解决方案,我想您需要为您的 OLAP 分析创建一个专用架构,或者如果您可以使用外部工具,您可以四处寻找 OLAP 工具。例如,icCube 允许创建一个 OLAP 模式,该模式可以经常更新以执行日常和历史分析。
免责声明:我为 icCube 工作 - 我曾提到它作为示例,但其他工具可以进行类似的分析。
【讨论】:
以上是关于用于报告和分析工具的数据库仓库设计的主要内容,如果未能解决你的问题,请参考以下文章
毕业设计-仓库管理信息系统设计与实现(论文+源码+ppt答辩+开题报告+任务书)