Sql server 主键不是多维数据集中的度量值?

Sql server 主键不是多维数据集中的度量值?,sql-server,visual-studio-2013,ssas,cube,bids,Sql Server,Visual Studio 2013,Ssas,Cube,Bids,我是SSAS的新手,请耐心等待 我有两个表:FactTest和DimLocation。我包括了表架构,但本质上是,FactTest.LocationName是DimLocation.LocationName和DimLocation.LocationName是主键: CREATE TABLE [dbo].[FactTest]( [test_date] [date] NULL, [DOWNLOAD] [float] NULL, [LocationName] [varchar]

我是SSAS的新手,请耐心等待

我有两个表:
FactTest
DimLocation
。我包括了表架构,但本质上是,
FactTest.LocationName
DimLocation.LocationName
DimLocation.LocationName
主键

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
test_date       Download      LocationName
1/4/2020        8.56          Houston
1/4/2020        9.43          Dallas
1/5/2020        3.20          Houston
FactTest
看起来是这样的:

LocationId      LocationName
1               Houston
2               San Antonio
3               Dallas
4               Austin
test_date       Download      LocationName
1/4/2020        8.56          Houston
1/4/2020        9.43          Dallas
1/5/2020        3.20          Houston
VS 2013
中创建
多维数据集时,我注意到
LocationName
列未作为
度量值之一包含在内。我还有其他维度表,主键列都不是度量的一部分。


在创建
多维数据集时,主键不应该用作
度量值吗?如果没有,那么我应该如何将事实表链接到dim表?

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


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

因此,如果删除PK
DimLocation.LocationName
则如何将
DimLocation.LocationName
链接到
FactSpeed.LocationName
?事实表中不应有任何varchar列。ETL/ELT过程应该为每一行计算LocationId。换句话说,除非与dim表进行连接,否则事实表将无法读取?是的,这有点像维度建模以最小化存储。你可以研究新技术,如columnsore或Tablear cube,它们以不同的方式解决这个问题。我做了更改,但我仍然看不到度量。我又发了一封信。