设计用于库存管理的数据仓库

Designing a data warehouse for inventory management

我有一项大学作业要求,需要为产品库存管理建立一个数据仓库,这可以帮助库存管理了解现有价值并使用历史数据来预测何时引入新库存。我一直在阅读以找出使用多维数据集或数据集市的最佳方法。我的问题是,我是否必须先创建一个数据仓库,然后在构建的多维数据集、数据集市之上,或者我可以直接将交易数据提取到 Cube/Data 集市。

接下来,是否必须构建一个星型模式(或其他 DW 模式)来完成这项任务,因为在阅读多篇文章后我的理解是 OLAP 多维数据集可以有多个被维度包围的事实。

答案是肯定的,星型模型总是有助于更好的分析,但它是相关的,立方体是多维的(它执行所有数据交叉)并且经常用作星型模型的数据源(推荐) .

OLAP 多维数据集通常用于快速分析和汇总数据。

因此,按照标准,我建议您制作所需的所有星形模型,然后生成 OLAP 多维数据集以供您分析。

你的问题比你知道的要大得多!

作为一般原则,您将拥有一个临时数据库,用于从一个或多个 OLTP 系统获取数据。然后登台数据库会将数据提供给数据仓库(DWH)。在 DWH 之上将建立许多集市,这些通常是特定主题领域的。

有几种 DWH 方法

  • Kimball Star Schema - 你在上面提到了星型模式,这广义上就是 Kimball 星型模式。由拉尔夫·金博尔提议。我还会在此处包括 Snowflake Schemas,它是 Star Schemas 的变体。
  • Inmon 模型 - 由 Bill Inmon
  • 提出
  • Data Vault - 由 Dan Linstedt 提议。在比荷卢经济联盟国家拥有庞大的用户群。 Data Vault 有多种变体。

重要的是不要混淆 DWH 方法和实施 DWH 的技术,尽管有时有些技术适用于特定的方法。例如,OLAP 多维数据集很容易与 Kimball 星型模式一起使用。没有特别需要为特定数据库使用关系技术。一些 NoSQL 数据库(如 Cassandra)非常适合暂存数据库。

回答您的具体问题

Do I have to create a Data warehouse first and on top of that built Cube, Data mart or I can directly extract transactional data into Cube/Data Mart.

如果您有针对您的报告量身定制的特定集市,则 OLAP 多维数据集是可选的,但这取决于您的报告和分析要求以及访问速度。 数据集市实际上只能使用直接来自 DWH 的 OLAP 多维数据集来构建。

特别是在库存管理方面,所有这些 DWH 方法都适用。

我无法回答你的最后一个问题,因为这似乎是作业的重点,而你没有提供足够的信息来回答这个问题,但你需要对 dimensional modelling 做一些研究,所以我希望这为您指明了正确的方向!

因为这是一个 'homework' 问题,我猜讲师正在寻找 Kimball 和 Inmon 之间的 pros/cons,这是用于最终用户报告的两个 'default' 设计。在现实世界中,DataVault 也可以作为 DWH 策略的一部分应用,但它起着不同的作用,不建议最终用户使用。

DataVault 是一种设计模式,可以不受干扰地从源系统中获取数据。在将数据呈现给最终用户解决方案之前,不可避免地需要清理数据,如果发现任何问题或业务需求发生变化,DV 允许重新 运行 DWH ETL 流程,尤其是在粒度级别下降的情况下(例如,原来的事实 table 是针对销售的,而维度要求是针对销售人员和产品类别的,现在他们想要按销售轮次和销售人员对产品子类别和类别进行事实销售。没有 DV,您就没有粒度数据重播历史信息并重建 DWH)