我正在尝试将一些无事实的事实表和/或垃圾维度表添加到Kimball样式的数据仓库中,但是我很难理解如何在将这些表添加到多维数据集并且多维数据集是例如,从Excel查询(数据透视表)。
以下是该方案:
物业服务公司提供按揭服务。当潜在客户有兴趣获得抵押贷款时,会打开一个案例,并在向客户提供抵押(和其他潜在产品)之前进行各种流程。
(对于每个案例,可能有多个业务流程由单独的事务性事实表(包含附加度量)建模,但我们不会关注这些,因为它们很容易建模)
我正在努力的是对案例流程本身进行建模(从业务的角度来看,当案件由抵押贷款经纪人推进时,这是所有事情的总称)。案例包含用户在OLTP系统中设置的各种标志(和文本字段)。用户希望能够报告案例,并列出所有这些标志,文本字段等的值,而不需要任何度量/聚合。 因此,如果我为标志使用无事实的事实表和垃圾维度,我们会有这样的:
DimDate
DateKey Date Year Month etc.
20150101 01/01/2015 2015 1
20150102 02/01/2015 2015 1
20150103 03/01/2015 2015 1
etc.
DimCustomer
CustomerKey CustomerName
1 J Smith
2 B Edwards
3 A Davies
etc.
DimCaseIndicator
IndicatorKey HasWillFlag HasHomeInsuranceFlag
1 True True
2 True False
3 False True
etc.
FactCase
CaseOpenedDateKey CaseSubmittedDateKey IdCase(BusinessKey) CustomerKey IndicatorKey
20150101 20150102 ABC1234 1 2
20150101 20150101 ABC1235 2 3
现在,为了显示一个展平的报告(每个案例1行),我们可以直接在数据仓库中对上面的表运行以下SQL,如下所示:
SELECT FactCase.IdCase,
DimCustomer.CustomerName,
DimIndicator.HasWillFlag,
DimIndicator.HasHomeInsuranceFlag
etc.
FROM FactCase
JOIN DimCustomer on FactCase.CustomerKey = DimCustomer.CustomerKey
JOIN DimIndicator ON FactCase.IndicatorKey = DimIndicator.IndicatorKey
etc.
这会给我们:
IdCase CustomerName HasWillFlag HasHomeInsuranceFlag
ABC1234 J Smith True False
ABC1235 B Edwards False True
但是,如果上面的表包含在多维数据集中并且我们使用Excel查询多维数据集,我们将如何实现相同的输出? 当我尝试这样做时,Excel中的数据透视表想要聚合(这是正确的!),但我想要的是如上所述的平面报告。