【问题标题】:Create a sub-cube in SSAS Tabular在 SSAS 表格中创建子多维数据集
【发布时间】:2020-05-16 20:47:39
【问题描述】:

我有一个 SSAS 表格立方体,我每天都会刷新它。对于某些用例来说,它很大而且效率不高。我想创建一个包含过滤数据的子多维数据集并将其部署为单独的多维数据集。我该怎么做?

我的一个想法是使用 MDX 提取一个子多维数据集并将其存储在一个新多维数据集中(并在 SSIS 包中自动化)。是否可以?有人能解释一下怎么做吗?

【问题讨论】:

  • 大而低效的描述有点模糊。您是否有处理时间过长的问题?用户是否觉得 Cube 速度慢或者 datamodel 太大?我不会通过查询原始的来创建子立方体,为什么不根据与大的相同的查询创建更小的cobes,但过滤?
  • @Gigga,感谢您的反馈。是的,正如您所描述的那样 - 对于一些深入的报告,用户觉得它太慢了。此外,模型太大,因为它试图涵盖所有用例。你是绝对正确的 - 我想创建一个较小的立方体,但我也想保留主要的,大的。所以我正在寻找一种可扩展的方法来从大立方体中创建一个小立方体。理想情况下,我想刷新大数据,然后将数据子集复制到小数据中,而不是刷新小数据的查询。

标签: sql-server ssas mdx tabular


【解决方案1】:

好的,这是一个棘手的地方。多维数据集并不是真正设计用于工作的,因此您可以从另一个中创建一个子集。我的意思是,你可以这样做,但这不是他们的目的。您只需要创建一些 DAX 或 MDX 查询,它们可以提供您需要的数据,或者您可以使用 M Query 语言来获取数据。

如果您想使用 DAX,可以使用 SSIS Analysis Services 连接器和执行 SQL 任务来实现该目的。如果您没有使用 DAX 的经验,可以使用 Excel 等工具并将数据导入 Power Pivot 表。您可以在此处拖放所需的字段,然后使用 SQL Profiler 获取带下划线的 DAX 查询(设置 pofiler 会话并在 Excel 中单击刷新以获取查询)。

对于 M 查询,最好使用 Excel 或 Power BI Desktop 及其 Power Query 编辑器来设计输出,然后复制编辑器生成的 M Query。然后就可以使用查询和SSISPower Query Source获取数据了。

如果您有企业版 SQL Server,您可能会考虑使用分区来加速多维数据集的处理。

另一种方法是将数据量限制为二级立方体(仅限当前季度/一个国家/一个部门/等)。我是一个多维数据集一一数据区型设计的粉丝。所以我仍然建议您复制当前多维数据集项目的一个/多个副本,并使它们更具体到一个特定领域(例如在金融多维数据集中,我们可能不需要人力资源数据)。

【讨论】:

  • 感谢您的评论。我熟悉 DAX 和 MDX,我们有一个 Enterprise SQL Server,并且已经有了分区。这正是我们想要做的——创建现有多维数据集的特定副本。我只想了解如何以可扩展和自动化的方式进行操作,因此当我在主多维数据集中创建度量时,它会自动部署到副本。我看到的主要风险是我们有一个副本和主立方体,然后他们开始过自己的生活。但我想要的是副本只是主要版本的简化版本(带有一些过滤器和一些表格)。
  • 我不知道多维数据集结构中的更改可以以某种简单的方式自动复制到另一个多维数据集。同样,这是可以做到的,但这并不是一件容易的事。有一些工具可以将立方体与另一个进行比较,也许这些工具可以在这里使用。很抱歉我在这里没有更好的答案,我希望其他人也在这里写下他们的意见。
猜你喜欢
  • 2012-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-17
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 1970-01-01
相关资源
最近更新 更多