SSAS中的多维数据集度量标准中没有主键列?

问题描述 投票:0回答:1

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

我有两个表:FactTestDimLocation。我包括了表模式,但从本质上讲,FactTest.LocationNameDimLocation.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

[在cube中创建VS 2013时,我注意到LocationName列不作为Measures之一。我还有其他的Dimension表,所有primary key列都不是Measurements的一部分。enter image description here

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

sql-server visual-studio-2013 ssas cube bids
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.