首页 > 解决方案 > 主键不是多维数据集中的度量?

问题描述

我是新手SSAS,所以请多多包涵。

我有两张桌子:FactTestDimLocation。我包括表模式,但本质上,andFactTest.LocationName是外键,DimLocation.LocationName并且DimLocation.LocationNameprimary key

CREATE TABLE [dbo].[FactTest](
    [test_date] [date] NULL,
    [DOWNLOAD] [float] NULL,
    [LocationName] [varchar](50) NULL
) ON [PRIMARY]


GO

ALTER TABLE [dbo].[FactTest]  WITH CHECK ADD  CONSTRAINT [FK_FactTest_DimLocation] FOREIGN KEY([LocationName])
REFERENCES [dbo].[DimLocation] ([LocationName])
GO

ALTER TABLE [dbo].[FactTest] CHECK CONSTRAINT [FK_FactTest_DimLocation]
GO

CREATE TABLE [dbo].[DimLocation](
    [LocationId] [int] IDENTITY(1,1) NOT NULL,
    [LocationName] [varchar](50) NOT NULL,
 CONSTRAINT [PK_DimLocation] PRIMARY KEY CLUSTERED 
(
    [LocationName] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

DimLocation看起来像这样:

LocationId      LocationName
1               Houston
2               San Antonio
3               Dallas
4               Austin

FactTest看起来像这样:

test_date       Download      LocationName
1/4/2020        8.56          Houston
1/4/2020        9.43          Dallas
1/5/2020        3.20          Houston

在创建cubein 时VS 2013,我注意到该列LocationName未作为Measures. 我还有其他维度表,并且没有一个主键列是度量的一部分。 在此处输入图像描述

Measures创建时不应该使用主键cube吗?如果不是,那么我应该如何将事实表链接到暗表?

标签: sql-servervisual-studio-2013ssascubebids

解决方案


这是由于 DimLocation 中的 PK 定义不正确造成的。
所有维度 PK 都应该是整数,因此 LocationId 应该是您的 PK,您应该将其包含在事实表中,而不是 LocationName。位置名称应定义为维度属性。
在您的多维数据集中,唯一的度量是“[DOWNLOAD] [float]”。

度量的定义:它是代表与组织目标一致的度量的任何数字量/值。度量值存储在事实表中。


推荐阅读