添加属性到多维数据集并重新处理没有原始数据库

时间:2012-10-30 22:29:59

标签: sql sql-server ssas sql-server-2012 xmla

每年我们都会保留其中一个立方体的历史副本。今年有人决定他们想付钱给我们添加一个以前不存在的立方体属性。好吧,我喜欢钱,但问题是我们没有备份我们建立这个多维数据集的数据库。

所以我脑子里出现了一个问题,我们是否需要原始数据库来为这个多维数据集添加一个新属性?我们是否可以向多维数据集添加新属性,并且只处理此属性而不使用多维数据集orignal数据源?

当我将属性添加到SSAS多维数据集和进程时,我不太了解幕后发生的事情,我不能说这是否可能。我可以想象,可能的情况是,多维数据集在数据源的内存中有一个可以解决的快照。我还可以想象这将是非常低效的,所以有可能这是不可能的。

编辑:添加一个利用多维数据集中现有数据的计算成员至少似乎是可行的。

我还应该提一下,我试图在这样的多维数据集中添加一个属性并收到错误:

  

“无法保存维度[合作伙伴]文件系统错误无法复制   文件C:\\ MYSQLSERVER \ OLAP \ DATA \ 2013_Cube.db \\。dim \ .dstore到C:\\ MYSQLSERVER \ OLAP \ DATA \ 2013_Cube.db \\。dim \ .dstore文件存在“

抱歉,我伪造了一些文件路径。

2 个答案:

答案 0 :(得分:2)

这项任务非常困难。我能想象的唯一方法是基于数据源视图手动重建原始数据库(它具有缓存的元数据),然后尝试使用SSAS查询工具(例如Excel,SSRS,OLE DB)生成数据以填充它分析服务提供商)。

如果您想在维度中添加一个属性,则可以将该工作限制为相关维度的源数据。

答案 1 :(得分:1)

首先让我根据流程的步骤解释多维数据集如何存储数据!!!

  1. 获取数据源 - 数据!!!这是访问原始数据库/文件等。此时所有数据都在主要来源。所有数据都以这种或那种方式标准化。
  2. 构建数据仓库。 ELT流程。此时,您将所有数据组合在非规范化的wharehouse中,无需外键或任何约束。现在,所有数据都处于非规范化sql数据库的中间状态,并且可以在多维数据集中使用。
  3. 构建OLAP多维数据集。数据仓库现在是您的数据源。现在,所有数据都在多维数据集内的行中聚合,并带有相应的值。冗余是巨大的,数据是100%非规范化的,它们几乎不遵循模式(当然它们确实如此,但它并不总是容易理解)。
  4. 此状态下的一个例子就是这样的行

    Company -> Department -> Room | Value(Employees)
    ET LTD  -> IT -> Room 4 -> | 4 
    

    Value(Revenue)将存在完全相同的行。 因此,实质上所有数据都存在于SSAS数据库(多维数据集)中。 重建数据库意味着逆向工程的 Great Deal

    您可以使用MDX连接器和查询来创建新的C#程序以获取数据,并使用MSsql连接器将它们保存在OLTP数据库中。 MDX的学习曲线陡峭,网站引用很少,因此不建议使用上述方法。

    我无法从excel获取数据,因为excel以动态方式从DataConnection获取数据透视表数据。