我有一个SSAS表格立方体,我每天刷新一次。在某些用例中,它很大且效率不高。我想创建一个具有过滤数据的子多维数据集,并将其部署为一个单独的多维数据集。我该怎么办?
我的一个想法是使用MDX提取一个子多维数据集并将其存储在新的多维数据集中(并在SSIS包中自动进行)。可能吗?有人可以解释如何做吗?
答案 0 :(得分:0)
好的,那是一个棘手的地方。多维数据集并不是真正设计成可以工作的,因此您可以从另一个对象中创建一个子集。我的意思是,您可以做到这一点,但这不是他们的目的。您只需要创建一些DAX或MDX查询即可提供所需的数据,也可以使用M查询语言获取数据。
如果您想使用DAX,则可以使用SSIS Analysis Services连接器并执行Execute SQL -task。如果您没有DAX的经验,则可以使用Excel之类的工具并将数据导入到Power Pivot表中。在那里,您可以拖放所需的字段,然后使用SQL Profiler获取下划线DAX查询(设置pofiler会话,然后在Excel中单击“刷新”以获取查询)。
对于M查询,最好使用Excel或Power BI Desktop,并且使用Power Query编辑器来设计输出,然后复制该编辑器进行的M查询。然后,您可以使用查询和SSIS Power Query Source来获取数据。
如果您拥有企业版SQL Server,则可以考虑使用分区来加快多维数据集的处理速度。
另一种方法是将数据量限制为次要多维数据集(仅当前季度/一个国家/一个部门/等等)。我是一个多维数据集一-数据区域型设计的粉丝。因此,我仍然建议您为当前的多维数据集项目制作一份或多份副本,并使它们更特定于一个特定区域(例如,在finance-cube中,我们可能不需要人力资源数据)。