【问题标题】:Primary key not a Measure in cube?主键不是多维数据集中的度量?
【发布时间】:2020-02-14 15:43:31
【问题描述】:

我是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

当我在VS 2013 中创建cube 时,我注意到LocationName 列未作为Measures 之一包含在内。我还有其他维度表,主键列都不是度量的一部分。

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

【问题讨论】:

    标签: sql-server visual-studio-2013 ssas cube bids


    【解决方案1】:

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

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

    【讨论】:

    • 那么,如果我删除 PK DimLocation.LocationName,我将如何将 DimLocation.LocationName 链接到 FactSpeed.LocationName
    • 事实表中不应有任何 varchar 列。您的 ETL/ELT 流程应该为每一行计算 LocationId。
    • 换句话说,除非与暗表进行连接,否则事实表将不可读?
    • 是的,这有点像维度建模以最小化存储。您可以研究一些较新的技术,例如列式多维数据集或表格立方体,它们以不同的方式解决了这个问题。
    • 我进行了更改,但仍然看不到度量。我又发了question
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多