我看过很多涵盖 SSAS 业务方面的材料,但关于行政和管理的重要方面的内容并不多。
从管理 SQL Server Analysis Services 实例的角度来看,工作的 DBA 必须了解哪些有关 SSAS 的知识才能正确有效地管理它?
我对 Microsoft Sql Server 商业智能非常陌生Analysis Service(但我使用 SQL Server 编程多年)。有人能用简单的语言描述多维数据集中的度量和维度吗(如果可以的话)?
谢谢
我们最近创建了一个 SSAS 表格模型,以便我们的用户可以通过 PowerView 访问它。我们对我们的一个事实表进行了测量,以TotalActiveItems使用公式获取:
TotalActive:=COUNTAX(FILTER('Stats', ISBLANK([DeactDate]) = TRUE), 1)
Run Code Online (Sandbox Code Playgroud)
这在需要时非常有效,但现在我们有一个请求,以获取TotalActive.
作为参考,这是我们模型的一部分:
create table factStats
(
StatsID INT IDENTITY NOT NULL PRIMARY KEY,
DevID INT NOT NULL,
DeactDate DATETIME NULL,
BillDateTimeID BIGINT NOT NULL,
CustID INT NOT NULL,
ParentID INT NOT NULL
);
create table dimCust
(
CustID INT NOT NULL PRIMARY KEY,
CustName varchar(150) NOT NULL
);
create table dimParent
(
ParentID INT NOT NULL PRIMARY KEY,
ParentName varchar(100) NOT NULL
);
create table dimDateTime …Run Code Online (Sandbox Code Playgroud) 每次我决定构建一个立方体时,我都会遇到一个问题,但我还没有找到克服它的方法。
问题是如何允许用户自动定义一系列事物,而无需在维度中对它们进行硬编码。我将在一个例子中解释我的问题。
我有一个叫做客户的表:

这是表中的数据:

我想以枢轴样式显示数据,并将工资和年龄分组在定义的范围内,如下所示:

我写了这个脚本并定义了范围:
SELECT [CustId]
,[CustName]
,[Age]
,[Salary]
,[SalaryRange] = case
when cast(salary as float) <= 500 then
'0 - 500'
when cast(salary as float) between 501 and 1000 then
'501 - 1000'
when cast(salary as float) between 1001 and 2000 then
'1001 - 2000'
when cast(salary as float) > 2000 then
'2001+'
end,
[AgeRange] = case
when cast(age as float) < 15 then
'below 15'
when cast(age as float) between …Run Code Online (Sandbox Code Playgroud) 我正在使用 BIDS 在 SSAS 2008 r2 中创建一个多维数据集。
我使用向导创建了一个时间维度。该配置的一部分是选择日期范围。
创建后,我意识到我需要比最初指定的日期范围更广的日期范围。
我确实发现我可以打开维度,转到属性,并在那里重新定义日期范围。我保存并重新处理了维度,但表中的实际日期范围并未增加以包括新添加的日期。
有没有另一种方法可以让这个时间维度增长,还是我需要从头开始重新创建它?
我们有许多具有相同配置的系统
每天晚上 SQL Server 会做大约 2-3 小时的处理,然后是 2-3 小时的 AS 处理。然后全天只查询 AS。
假设这是一个专用服务器,没有其他应用程序值得关注,并且两组处理是完全同步的 - 没有重叠总是一个接一个 - 我怎样才能最好地设置 SQL 和 AS 服务器内存限制。
询问的原因是,如果我不为 SQL 设置限制,它将抢占它所能获取的所有内存。但是 - 我的理解是,如果出现以下情况,SQL 将很乐意放弃此内存:
它没有使用它并且
另一个服务/程序请求它。
所以从逻辑的角度来看,我相信允许 SQL 根据需要使用尽可能多的东西,但我不太确定 AS' TotalMemoryLimit。我不确定 AS 是否会放弃它的记忆。事实上,阅读更多让我相信让它承担一切是错误的。
这是否意味着我实际上需要为两者设置限制?我对最佳实践应该是什么以及考虑到流程不重叠我们需要衡量什么感到困惑。
希望这是有道理的。
我的任务是为一家大型零售连锁店设计一个解决方案。他们希望允许其 120 万客户中的每一个都登录到一个网站,查看大约 50 个类别的最近购买(当月、上月、年初至今)的分布情况。数据将每天更新一次。
我正在考虑建立一个基于 SQL Server 2012 的 OLAP 多维数据集,并让网站直接查询这个多维数据集,利用主动缓存等功能。但是,作为一名开发人员,我几乎没有使用 SQL Server 的分析服务部分的经验,因此我非常关心此解决方案的性能。
将网站直接连接到 OLAP 多维数据集听起来像一个可行的解决方案吗?这些系统是否像 SQL Server 一样对来自多个用户的负载做出反应,使其成为一个合理的解决方案,或者它们的行为是否完全不同?
我不希望用户经常检查他们的状态,我当然会在网络服务器等上使用缓存。
我们刚刚开始设计一个新的数据仓库,我们正在尝试设计日期和时间维度的工作方式。我们需要能够支持多个时区(可能至少是 GMT、IST、PST 和 EST)。我们最初认为我们将有一个广泛的组合日期时间维度,大约 15 分钟的粒度,这样我们的事实表中有一个键,所有支持的时区的所有不同日期时间数据都在一个维度表中。(即日期键、GMT 日期、GMT 时间、IST 日期、IST 时间等...)
Kimball 建议从一天的时间维度中设置一个单独的日期维度,以防止表变得过大(数据仓库工具包第 240 页),这听起来不错,但这意味着我们在每个时区的事实表中有两个键我们需要支持(一个用于日期,一个用于一天中的时间)。
由于我在这方面非常缺乏经验,我希望有人知道这两种方法之间的权衡,即性能与所有不同时区键的管理。也许还有其他方法,我看到有些人谈论在每个时区的事实表中有一个单独的行,但这似乎是一个问题,如果你的事实表有数百万行,那么你需要将它翻两番来添加时区.
如果我们使用 15 分钟的粒度,我们的日期时间维度表中每年将有 131,400 (24 * 15 * 365) 行,这对性能来说听起来并不太可怕,但在我们测试之前我们不会确定原型查询。在事实表中使用单独的时区键的另一个问题是查询必须根据所需的时区将维度表连接到不同的列,也许这是 SSAS 为您处理的事情,我不确定.
感谢您的任何想法,-马特
我希望向我的 SSAS Cube (SSAS 2012) 添加一个计算,该计算将显示当前成员与该石斑鱼中所有其他成员的相对排名,而无需提前指定石斑鱼。
例如,假设我已经有一个Efficiency定义为 $$/hour 的计算。
我还想添加一个Efficiency Rank计算,它会告诉我当前成员在它设置中的相对位置。
我试过的语法是
RANK([Measures].[Efficiency].CurrentMember, [Measures].[Efficiency])
Run Code Online (Sandbox Code Playgroud)
我意识到这是不正确的。
我似乎无法在其他任何地方找到这方面的指南,所以我希望有一些既定的最佳实践或模式,因为这似乎是一个相对常见的业务需求。
我想将SQL Server 2014 Analysis Services添加到SQL Server的特定实例并以这样的方式对其进行配置,即 Analysis Services (SSAS) 和未来的 Reporting Services (SSRS) 将仅接收对特定实例的请求IP,为了让SQL Server Browser 服务保持在停止状态。
对于运行多个 SQL Server 2014 实例的单个 Windows Server,我有以下先决条件:
- 2 x 网卡 - 12 个 IP 地址 - 10 个 SQL Server Server 服务实例(正在运行) - 10 个 SQL Server 代理服务器服务实例(正在运行) - 1 x SQL Server 浏览器服务(未运行)
Windows Server NIC 的配置如下:
- 1 x NIC(备份网络)
- 10.2.0.1
- 1 x 网卡 (LAN) … sql-server ssas configuration sql-server-2014 sql-server-2016