Spotfire® 用户指南

从多维数据集数据源导入数据

添加来自数据连接的数据表时,您可以选择将数据表保留在外,或将其导入 Spotfire 数据引擎并在内存中使用。

将多维数据集数据导入 Spotfire 时,您实际上会将数据库扁平化为一个数据表,这意味着使用数据库内数据时可用的部分功能将无法使用,而且相比由外部系统执行所有聚合操作时获得的结果,聚合 Spotfire 中的导入数据会得到不同的结果。Spotfire 不会导入聚合的数据,只有叶节点随后可使用 Spotfire 聚合方法进行聚合。

注: 如果对来自 OLAP(在线分析处理)多维数据集的所有数据感兴趣,最好使用数据库内连接,而导入主要用于导入数据库数据中的一小部分数据。

限制维度数

如果打算将来自多维数据集的数据导入 Spotfire,则必须谨记若干事项。

首先,整个多维数据集可能十分庞大,因此建议始终限制要导入的维度,以确保只导入绝对必需的维度,从而尽可能减轻数据膨胀问题。如果将类似左下方所示的多维数据集导入 Spotfire,您将获得右侧所示的表。随后,您设置的图表可以决定如何聚合生成的表中的度量值。

聚合导入的多维数据集数据表时(例如使用默认的 Sum 聚合方法),如果显示更高级别的分类值,则只会汇总可用的叶值(例如计算上表中法国的 Sum(Sales))。但是,在数据库内的多维数据集中,外部系统负责决定聚合意味着什么、可能包括哪些其他聚合方法、未包含在导入中的数据等等,而这可能会产生完全不同的结果。

这里举例说明在导入前尽可能限制数据的重要性,假设某多维数据集为不同维度使用了以下数量的值。

Department: 10
Product: 5000
Currency: 20
Business Unit: 1000 
Scenario: 10 
Account: 100 
如果导入整个多维数据集,那么生成的交叉联接表将具有以下数量的列数:
10x5000x20x1000x10x100=1x10 12

可想而知,前文使用的维度数导致数据量迅速膨胀,尤其是在每个维度还含有许多不同值的情况下。请谨慎操作,避免因合并过多的维度而导致数据源过载。

数据导入最佳做法

为了充分利用数据,请遵循以下建议从多维数据集导入数据。

  • “连接中的数据选择”对话框中只选择必要的维度和度量值,从而尽可能限制要导入的数据。
  • “限制数据”对话框中清除所选数据中不需要的类别对应的复选框,从而进一步限制数据。
  • 单击“估计导入大小”,尝试评估导入是否可行,然后再尝试导入所选数据。

已知的局限性

  • 多维数据集数据源(无论是导入的多维数据集还是数据库内多维数据集)不支持按需功能。
  • 相比来自关系数据源的数据连接,选择多维数据集数据连接始终会生成一个数据表。
  • 在多维数据集数据连接中,您不能从导入的配置切换至数据库内配置(反之亦然),而使用关系数据源则可以这么做。但是,您始终可以将基于多维数据集数据连接的数据表替换为另一个数据表。
  • 将多维数据集层级添加到连接时,Spotfire 中的层级不会在编辑数据连接时更新。但是,您始终可以手动重新创建新的层级。
  • 导入大量数据可能不起作用。如果尝试导入时导入失败,请编辑连接,并限制所选的维度和/或进一步限制类别。
  • 估计预计导入大小时,估计值只为近似值,而且无法就导入能否起作用给出任何肯定性信息。如果估计时耗时过长,那么这通常(但并非始终如此)意味着所选结果太大,无法导入。
  • 如果一个叶值存在多个实例,则在使用导入的数据和数据库内数据时可能会获得不同的行为,因为导入的数据可能已丢失区分各个叶值所需的层级信息。例如,全球有多个称为 Berlin 的城市,而导入后,所有这些城市全都综合到一起导入扁平数据表的一个分组中,除非您确保始终包括所有轴上的完整层级。
  • 您将始终获得所选层级中的分支的叶节点。这意味着您只能选择完整层级,而非某一层级中的单个列。