关于数据仓库的基本问题

Posted

技术标签:

【中文标题】关于数据仓库的基本问题【英文标题】:Basic questions regarding Data Warehousing 【发布时间】:2014-04-19 05:10:33 【问题描述】:

我想使用 OLAP 多维数据集,必须先设计一个数据仓库。我要使用星型模式。我对如何从普通数据库转换为数据仓库有点困惑,尤其是关于维度表之间的外键。我知道事实表有维度的外键,但是维度之间有外键吗?例如,我需要如何处理以下 2 个示例:

TABLE: Airports
COLUMNS: Id, Name, Code, CityId

当我创建 Airports 维度时,是否要删除 CityId 并代之以城市名称?还是什么?

TABLE: Regions
COLUMNS: Id, Name, RegionType, ParentId

这个问题大部分是相同的,但有点复杂,因为这里 ParentId 指的是同一个表(区域).. 示例:一个 City 可以指一个父 Country 记录。如何将这些转换为数据仓库星型架构?

最后,关于措施,这些都在事实表上,对吗?我想我可能需要多个事实表。这正常吗?一张事实表是否转换为一个 OLAP 多维数据集?还是什么?

【问题讨论】:

【参考方案1】:

您希望在机场维度中包含城市。您有意扁平化您的规范化模式以提高维度模型的速度,如果您来自事务性开发,这似乎与直觉相悖。

关于常年子女关系,您希望将 parented 转换为区域记录的代理项。在您设计多维数据集时,Ssas 将提供关联父子记录的功能。

多个事实并不罕见,但除非事实数据完全不相关,否则没有必要将它们分成不同的立方体。对多个事实的需求将由不同粒度的数据驱动。将所有指标(即航班)放在一起,但您会将航班指标与食品销售指标分开

【讨论】:

【参考方案2】:

您没有转换为数据仓库,您正在创建具有少量维度和 1 个(至少)事实表的新数据仓库。首先加载维度表,您不想用名称更改 id。 您需要每个维度表的附加键。一旦你加载维度,我通常使用 ssis 包来加载事实表。(增量加载或者你可以在每次加载新数据之前截断事实表(取决于你需要什么)......

【讨论】:

以上是关于关于数据仓库的基本问题的主要内容,如果未能解决你的问题,请参考以下文章

关于数据仓库建模,看这篇文章就够了

关于数据仓库数据质量的问题处理

下面列出的条目中,哪些是数据仓库的基本特征

关于hive

什么叫数据仓库?

关于数据仓库中复杂报表SQL语句的写法