我已经使用服务的凭据设置了到 Adventure Works DW 数据库的数据源连接。
我正在使用该DimDate表创建一个维度。为了简化事情,我只使用Calendar Quarter, Calendar Year, Day Number of Month, English Month Name, 和Date Key列。
这些属性中的每一个都已设置为 AttributeHierarchyVisible = False。
我将其Calendar Year拖入Hierarchies后跟Calendar Quarter, English Month Name,Day Number of Month。
我将属性关系设置为:
日期键 -> 月份的天数 -> 英文月份名称 -> 日历季度 -> 日历年
所有关系都设置为 rigid。
当我尝试部署此设置时,出现以下错误:
错误 2 内部错误:操作未成功终止。0 0
错误 3 服务器:当前操作被取消,因为事务中的另一个操作失败。0 0
我也收到此警告:
警告 1 OLAP 存储引擎中的错误:处理时发现重复的属性键:表:'dbo_DimDate',列:'CalendarQuarter',值:'2'。该属性是“日历季度”。0 0
我无法弄清楚发生了什么,或者为什么会出错。我正在使用的这本书给了我上面列出的步骤,到目前为止,谷歌让我失望了(一件非常可怕的事情)。
你们可以提供任何帮助来帮助我弄清楚我做错了什么,将不胜感激。
我有一个包含以下列的事实表:
WorkerName
OrderId
NumberOfPackagesPerOrder
Run Code Online (Sandbox Code Playgroud)
请注意,在此事实表中既不是WorkerName也不OrderId是唯一的。多个用户可以处理单个 OrderId 还要注意,NumberOfPackagesPerOrder仅取决于OrderId,即对于每个OrderId,数量NumberOfPackagesPerOrder将相同。
我正在尝试构建一个多维数据集,以按员工层次结构报告来自此数据的分层报告:
ManagerLevel1 [Total orders completed] [Total Packages Shipped]
Managerlevel2
.....
ManagerLevelN
Worker
Run Code Online (Sandbox Code Playgroud)
由于多个工作人员可以按相同的顺序工作,因此我需要避免PackagesPerOrder对经理级别(非叶节点)进行重复计算 。
这该怎么做?我需要什么 MDX 脚本才能正确地SUM NumberOfPackagesPerOrder将它们相加,然后将DISTINCT它们添加到OrderId?
注 1 - 雇佣层次结构是递归定义的 - 级别不是静态的。
注意 2 - 非叶节点上的管理器也可能会运送包。
我理解预聚合数据的概念,以便多维查询执行得更快,但我在 SSAS 中看到的聚合描述似乎暗示聚合仅涉及单个维度或属性。例如,本文中的示例显示了一个针对时间的聚合:
http://msdn.microsoft.com/en-us/library/ms174587.aspx
当您查询来自两个不同维度(例如路线和时间)的属性时,SSAS 如何利用这种聚合?它必须以某种方式对 6005 的第 2 季度包进行聚合并将其分解为海、空等。我不知道它如何在不返回叶级数据的情况下做到这一点。
我能想象的唯一另一种可能性是它具有预聚合,可以存储许多可能的维度组合。
由于您实际上无法查看预先聚合的数据,要查看它的小向导会提供什么,我很难想象它是如何工作的。(我是那种必须先了解底层细节的人,然后才能真正觉得自己理解了某些东西并可以正确使用它)。
聚合是如何构建的,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”的数据源对象。
我错过了什么吗?




我有一个备份 SSAS 数据库的程序。
这是一种魅力。
现在我的服务器被 SSAS 备份填满,我想删除超过 2 天的备份文件。
为了实现这一点,我使用了以下 POWERSHELL 脚本:
#-------------------------------------------------------------------------------
# Script to delete old SSAS backup files
#
# Marcelo Miorelli
#
# 19-novembre-2014 Wed
#-------------------------------------------------------------------------------
#-- connect to the remote server -- SQLBILON1
#
ENTER-PSSESSION sqlbilon1
#-- set the Path where the backup files (.abf) are located
#
$path = 'H:\SQLBackups'
#-- set the number of days backups should be deleted -- in this case 2
#
$NumberOfDays = 2
#-- …Run Code Online (Sandbox Code Playgroud) 我有一个 SQL 2016 SP1 SSAS 表格实例。我已经部署了一个具有以下属性的模型
当我尝试处理数据库或表时,出现错误“数据源包含处理操作不支持的 ImpersonationMode”。
但是,如果我更改连接属性上的模拟信息以使用服务帐户而不是当前用户,则它可以正常工作。
如果我们将默认模式更改为 DirectQuery 而不是导入,我们也不会遇到这个问题,但是我们需要使用导入,因为我们需要使用 DAX 用户名函数来实现行级安全。
我是 SSAS 实例的管理员,也是作为数据源的 SQL Server 实例的管理员。为什么我不能以我的用户身份处理 SSAS 表格模型?
我们在 Windows 2003 上有一个 SQL 2008 Analysis Services 实例,它在高峰活动期间几乎每天都遇到性能问题(查询超时)。从同一应用程序查询的第二个相同实例(使用循环 IP 进行负载平衡)没有相同的问题。我们甚至切换了两个实例,问题似乎“停留”在物理服务器上。我们知道这不是 SSAS 配置问题。立方体每天重建一次。
以下是我们能够确定的:当Memory\System Cache Resident Bytes perfmon 计数器意外下降时发生超时(我们称之为“缓存刷新”)。例如,今天早上它在大约 2 分钟内从大约 14GB 下降到 8.4GB。发生这种情况时,Memory:Page Reads/sec从 0 跳到 800-1200,事情开始横盘整理。
您可以看到对 MSOLAP 计数器的直接影响:存储引擎查询\数据读取/秒从 50,000 危险地下降到 5,000(这些显然不是物理读取,它们是从系统缓存中读取;这可以通过类似的下降得到证实)进程(msmdsrv)\IO 读取操作/秒)。存储引擎查询\平均时间/查询从 500-2000 攀升至 20,000-50,000,并且查询开始超时。线程\处理池忙线程从 ~50 跳到最大配置值 240,并且线程\处理池作业队列长度开始攀升。
在接下来的 30 分钟左右,查询会继续超时,直到(我认为)文件缓存被丢失的数据重新填充。Memory\Page Reads/sec回落到接近零,事情似乎恢复到“正常”。
在整个过程中,Process(msmdsrv):Working Set (~10.5GB) 、Process(Total):Working Set (~13.9GB) 或MSOLAP:Memory\Memory Usage KB (~50GB)没有显着变化。这是一台具有 128GB RAM 的 48 核服务器,仅运行 SSAS(另一台没有问题的服务器是 24 …
我们的 SSAS 多维数据集有一个日期维度,对于 DayName 字符串成员,它按字母顺序而不是按时间顺序显示。我添加了一个 DayOfWeek 整数 1-7 用于排序。我有两种选择来实现这一点,不确定两者的优点/缺点。
像这样设置时,属性在功能上是相同的。我倾向于#2,因为它是一个整数。
我的公司从外部承包商那里收到了一个 Analysis Services 多维数据集项目,我正在尝试获取它,以便开发人员可以在他们的本地计算机上进行处理。
我很确定最初的开发人员从多维数据集项目中为后端数据库生成了架构,然后针对该架构进行了工作。因此,我想从 Visual Studio 生成架构,而不仅仅是在 SQL Server Management Studio 中导出数据库。目前,当我尝试生成关系模式时,我收到一条错误消息,指出维度已绑定到用户表。
我的方法是否合理,如果是,我将如何进行?如果我的方法不合理,为什么不呢?
(注意:几天前我在 StackOverflow 上问过这个问题。当我回到这个问题时,我觉得这对它来说是一个更好的地方,所以我把它移到了这里。)
我们已经开始遇到有关刷新表格 SSAS 模型的问题。
表格 SSAS 模型中有 38 个表。
这个过程已经运行了一年多没有问题,但是现在大约一个月了,我们无法成功处理模型中的表。
如果我访问 SSAS 数据库 > 右键单击 > 处理数据库 > 选择处理默认模式,然后单击确定,这就是问题发生的时间。
它将在那里停留大约 5 分钟,然后出现错误消息:
未能将修改保存到服务器。返回错误:'没有足够的内存来完成此操作。请稍后在可能有更多可用内存时重试。
如果我尝试单独“处理”表,我也会收到相同的错误消息。
我在高级窗口中查看了 SSAS 的内存设置,并将这些值重置为默认值。所以目前的关键值(据我所知)是:
服务器已经重新启动了几次,我们仍然有同样的问题。
环境详情:
Windows Server 2016 数据中心
SQL Server 2017 (RTM-CU9-GDR) (KB4293805) - 14.0.3035.2 (X64)
SSAS 版本:14.0.223.1
服务器模式:表格
服务器内存:64Gb
SQL Server 分配的内存:28Gb
我已经在网上准备了多篇关于这些问题的文章,但到目前为止似乎没有任何相关/有用的文章。
任何指导/帮助将不胜感激。
免责声明:我不是 BI / SSAS 的人。我只是一个 DBA,他遇到了这个问题,所以如果我没有完全正确地解释这一点,请原谅我。