标签: ssas

维度帮助 - 确定事实或维度

我们有以下昏暗和事实:

客户维度:SCD 类型 2,关于客户的信息,即首次购买日期、姓名、地址等 产品维度:SCD 类型 2,关于我们的产品

客户快照事实:有关客户产品销售事实的月度财务事实:客户销售额

并且会有更多涉及客户维度的事实。

我们有一个旧数据库,它正在收集有关客户的 100 个数据字段,并被要求对这些数据进行 DW。有 100 多个字段与客户相关,其中可能是指示客户是否有资格获得某物的标志。用户想要对我们的任何事实表进行的大多数查询可能包括这些指标的过滤和/或分组。

问题是我们是否应该向我们的 Customer Dim 添加 100 多个指标,如果不是,则应如何构建数据,以便将这些信息与我们的所有其他事实结合起来。

谢谢你的帮助。

database-design sql-server ssas slowly-changing-dimension

6
推荐指数
1
解决办法
515
查看次数

关于 SSAS Cube 的几个问题

我是 SSAS 2012 的新手,以下是我的问题:

  • 我们可以有复杂类型(表)的度量吗?
  • 是否可以按特定度量或属性对结果进行排序?
  • 我的立方体可以建模为一维层次结构,这通常好吗?
  • 我可以在一系列成员上使用远程分区对多维数据集进行分片吗?
  • 我们有 SQL Server 2012 数据库的远程表分区吗?

谢谢!

sql-server ssas sql-server-2012

6
推荐指数
1
解决办法
405
查看次数

Excel 中的 SSAS Cube - 仅显示具有 KPI 的适用行?

我有一个内置于 SSAS 2008r2 的立方体。我暂时通过excel数据透视表公开它。

我最近向多维数据集添加了一个 KPI,当我在数据透视表界面中显示 KPI 时,它会导致在当前级别显示不适用的维度值。

例如,假设我有客户:

CustomerA
CustomerB
CustomerC
Run Code Online (Sandbox Code Playgroud)

和国家:

NY
VA
TX
Run Code Online (Sandbox Code Playgroud)

当我查看没有 KPI 的数据透视表时,下面CustomerB没有行,NY因为它们在那里没有位置。

当我添加我的 KPI 并只显示valueKPI 时,一切都很好。

当我添加状态指示器(即交通灯或其他)时, 我会看到每个状态下的每个客户。

这是预期的行为吗?有办法解决吗?我喜欢 KPI,但如果我在每个级别获得维度的每个值,它就会失去目的。

更多细节:

Value Expression为KPI仅仅是一个计算的措施,工作正常。

Status Expression是:

CASE
    WHEN KpiValue("MyKPI") / KpiGoal("MyKPI") > .90
        THEN 1
    WHEN KpiValue("MyKPI") / KpiGoal("MyKPI") <= .90
        AND KpiValue("MyKPI") / KpiGoal("MyKPI") > .75
    THEN 0
ELSE -1
END
Run Code Online (Sandbox Code Playgroud)

ssas sql-server-2008-r2 excel

6
推荐指数
1
解决办法
2216
查看次数

6
推荐指数
1
解决办法
1644
查看次数

什么原因导致“处理时找不到属性键”错误?

当我在我的第一个 SSAS 项目中处理多维数据集时,我一直得到这个错误的变化:

OLAP存储引擎错误:处理时找不到属性键:表:'dbo_Transactions',列:'TransactionSK',值:'68342998';表:'dbo_Transactions',列:'TransactionDateTimeUTC',值:'7625037'。属性是“事务SK”。

短语“处理时无法找到属性键”在 Google 上获得了多次点击,在 Stack Overflow 上也获得了多次点击(123)。然而,这些解决了损坏的 FK、NULL 值或重复值(例如,由于不一致的区分大小写)。这些情况都不适用。

这里只有一张桌子:dbo.Transactions。它有田TransactionSKTransactionDateTimeUTC,两者INT NOT NULL。您可以猜到,该TransactionDateTimeUTC字段是DateTimes表的 FK ,但没有丢失记录,这是在 ETL 中强制执行的,我已经在 SQL 中进行了验证。

还有什么可能导致此错误消息?为什么它列出两个字段,TransactionSKTransactionDateTimeUTC?到目前为止,我遇到的类似情况始终只引用错误消息中的一个字段。

该表正在近实时更新,包括偶尔删除,但有问题的两个字段没有更新。如果在 SSAS 扫描一列之后和扫描另一列之前从表中删除一条记录,是否会产生此错误?抽查了一些问题记录,它们不是在处理多维数据集的过程中创建的。

sql-server ssas sql-server-2014

6
推荐指数
1
解决办法
6348
查看次数

从已经实现 SCD 的规范化源设计维度 DB

我构建了一个 SSIS ETL 来将各种数据源(一个来自 MySQL,两个来自 SQL Server)集成到一个单独的 SQL Server 关系和规范化数据库中,我称之为 [NDS]。

SSIS ETL 处理类型 2 更新,因此 [NDS] 生成代理键和 SCD 表包括一个 [_EffectiveFrom] 时间戳和一个可为空的 [_EffectiveTo] 列,并且对链接所有的自然键和漂亮的外键有约束数据一起。

现在,我想用它构建一个 SSAS 维度数据库,没过多久我意识到我正在为雪花模式设置自己:

描述表关系示例的 yUML 图

所以我正在考虑添加一个新的 [DDS](关系)数据库,以创建实际的维度和事实表,这些表将为 SSAS 数据库提供 DSV。

这个 [DDS] 数据库将尽可能地非规范化,以便“扁平化”事实和维度(例如,[OrderHeaders]+[OrderDetails] 到 [Orders] 事实表,以及 [CustomerStores]+[Customers]+ [SalesReps] 到一些 [Customers] 维度表中) - 这样做不仅应该让我更容易在 SSAS 中构建维度层次结构,还应该更容易提出实际的星型模式。

不过我有几个问题:

  • 我可以重用现有代理键的子集吗?我正在考虑采用最细粒度的现有键并将其作为维度键。这是一个好方法,还是我应该忽略 [NDS] 代理键并让 [DDS](关系数据库)生成一组新的代理键?
  • 如何处理SCD?例如,当源系统中的某些特定字段发生变化时,“材料”和“供应商”将在 [NDS] 中生成新记录......我想我必须设计 SSIS ETL 以仅加载“最后一个图像”记录进入 [DDS] 数据库,然后在该过程中重新实现类型 2 更新,即将 [NDS] 视为保留历史记录的“源系统”,同时复制此 [DDS] 数据库中的所有内容。但是,为什么我需要在 [NDS][DDS] 中保留历史记录?显然有些不对劲。

我是在为 Big Mess™ 做好准备,还是在正确的轨道上?

sql-server ssas slowly-changing-dimension dimensional-modeling ssis-2014

6
推荐指数
1
解决办法
302
查看次数

对半加性测度组的钻取操作

我在我正在开发的立方体中创建了一个半加法(最后一个非空)度量。对于该度量值组,我创建了一个钻取操作。当我使用该钻取操作时,它不仅像我预期的那样为每个项目返回一行,而是每个日期的每个项目返回一行,就好像它没有认识到该度量是半可加的。

同样的问题在 2009 年这里这里的几篇 Microsoft Connect 文章中都提到过,但没有评论如何解决这个问题,而且我在这个问题上发现的其他内容很少。

我正在使用 SQL Server 2012 企业版。

是否有针对此问题的解决方案或变通方法?

sql-server ssas ssdt

6
推荐指数
1
解决办法
225
查看次数

SSAS 数据库的管理员权限

我有一家第三方公司过来建立 ssas 数据库来生成报告。

他们做到了,但现在 DBA 想要查看,但我没有权限,甚至无法查看这些数据库,如下图所示。

我可以授予自己管理员权限吗?

我是系统管理员。有一个名为SQLDBA和的 AD 组

在此处输入图片说明

当右键单击 server-properties-security-Add- 然后添加我的 AD 组时,SQLDBA它说我没有alter服务器对象的权限,如下图所示。

我之前已将该sqldbaAD 组作为管理员添加到该框中。

在此处输入图片说明

标题:Microsoft SQL Server 管理工作室

“mycompany\MMiorelli”用户无权更改“myserver\instance”对象,或者该对象不存在。(Microsoft.AnalysisServices.AppLocal.Core)


纽扣:

好的

sql-server ssas permissions ssas-2016

6
推荐指数
1
解决办法
5410
查看次数

从 SQL Server 到 SSAS 的链接服务器不起作用 - 缺少什么?

我有一个 SQL Server 2012 标准版 sp1,它也安装了 ssas。

我从这个服务器创建了一个链接服务器到一个名为 BIREPLON1 的 ssas 服务器,但是当我尝试访问它时,我收到如下所示的错误消息。

有趣的是,当我通过 GUI 时,单击 Server Objects\linked servers\BIREPLON1 似乎一切正常(如下图 4 所示)。

但是当我运行简单的select

SELECT CATALOG_NAME 
FROM OPENQUERY([BIREPLON1], 'SET FMTONLY OFF;SELECT [CATALOG_NAME] FROM $SYSTEM.DBSCHEMA_CATALOGS') as Radhe
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器“BIREPLON1”的 OLE DB 提供程序“MSOLAP”的数据源对象。

我错过了什么吗?

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

sql-server ssas linked-server sql-server-2012

5
推荐指数
1
解决办法
2万
查看次数

SSAS 表格:不支持处理操作的 ImpersonationMode

我有一个 SQL 2016 SP1 SSAS 表格实例。我已经部署了一个具有以下属性的模型

在此处输入图片说明

在此处输入图片说明

当我尝试处理数据库或表时,出现错误“数据源包含处理操作不支持的 ImpersonationMode”

但是,如果我更改连接属性上的模拟信息以使用服务帐户而不是当前用户,则它可以正常工作。

如果我们将默认模式更改为 DirectQuery 而不是导入,我们也不会遇到这个问题,但是我们需要使用导入,因为我们需要使用 DAX 用户名函数来实现行级安全。

我是 SSAS 实例的管理员,也是作为数据源的 SQL Server 实例的管理员。为什么我不能以我的用户身份处理 SSAS 表格模型?

sql-server ssas tabular-model sql-server-2016

5
推荐指数
1
解决办法
2万
查看次数