使用故事设计的数据可视化最佳实践
学习目标
使用最佳实践设计故事以优化性能。
最佳实践概览
在本课中,我们将重点介绍构建和查看故事时页面和微件的设计特定最佳实践。如果计划故事设计,然后使用故事设计中的性能优化最佳实践构建故事设计,则为性能良好的故事奠定基础。
性能优化提示
如果故事包含大量数据绑定(进程繁重)微件,则处理这些微件中的数据可能会影响故事的性能。
构建故事时,系统会提供故事设计的性能优化提示(如果适用)。例如,它可能建议将一个包含十个统计图和五个表的页面拆分为两个页面,以便不会一次加载所有表。但是,请记住与任何工具一样,文件越大,加载的时间越长,因此如果你有 15 页,提示可能会建议减少故事中的页面数量。

小组件单位重量
在计划故事时,优化故事设计的一种方法是考虑微件的单位权重。在 SAP Analytics Cloud 中,为每个微件类型分配一个单位权重。对于故事,建议每页的重量最多保留五个单位。
如果你的页面包含大量微件,可能会快速达到最大权重,并且可能会开始看到故事的性能问题。为了提高性能,可以更改正在使用的微件类型,或减少每页进程繁重微件的数量。
小组件单位重量场景
让我们看一个超过最大权重的故事(每个微件类型的单位权重的完整列表在场景下方列出)。
在下表中,你可以看到微件的数量、单位权重和故事的总权重,如下所示。页面的总权重为 5.5,因此为了提高性能,你可以考虑更改正在使用的微件类型或减少每页的微件数量。
小工具 |
单位重量 |
总重量 |
|---|---|---|
1 个地理地图 |
1 |
1 |
3 个图表 |
0.3 |
0.9 |
2 个表 |
0.6 |
1.2 |
2 个 R 可视化对象 |
1.2 |
2.4 |
5.5 |

每个小组件的单位重量
下表显示了小组件以及该小组件类型的相关单位权重。
窗口小部件的权重
小部件 |
单位重量 |
|---|---|
R 可视化对象(至少包含一个数据框架) |
1.2 |
地理地图价值驱动树 |
1 |
表 |
0.6 |
过滤器(已展开) |
0.4 |
图表动态图像 |
0.3 |
筛选器(未展开)弹出窗口文本框(含动态文本) |
0.2 |
BPC 计划序列按钮复选框组留言微件数据操作触发器下拉组过滤器行流式布局面板抬头图像输入字段列表框多步操作触发器页簿面板单选按钮组范围滑块RSS 阅读器形状滑块切换表标签文本区域文本框Web 页面 |
0.1 |
小部件特定的最佳实践
除了微件单位权重之外,在 SAP Analytics Cloud 中计划和构建故事时,你应该遵循其他特定于微件的最佳实践。
表和统计图
有一些设计选项可以提高使用表和统计图的故事的性能,从而缩短故事的渲染时间。
限制表中的单元格数。
使用完全下钻避免表的初始状态。
避免使用超过 500 个数据点的统计图。
避免链接过多统计图(链接分析):这将在每次选择或筛选器更改时触发值的更新。
应用"前 N 项"功能:对于高基数维,请考虑手动设置"前 N 项"值,而不是使用"前 N 项(自动)"。 使用"前 N 项(自动)"时,在渲染"前 N 项"数据之前,将从系统中传输所有数据。使用"前 N 项"时,会对数据进行排序,并且只会在系统中选择并发送"前 N 项"值。
地理地图
地理地图是在地理上可视化数据的好方法,但是,你可以做出一些设计选择来提高性能:
减少地图上显示的数据点数量。
为 1,000 多个点启用位置聚类,而不是默认的 5,000 多个点。
如果启用了地点聚类,则构建地图布局以限制缩放和平移,因为每个移动都会提交后端查询。
图像
虽然可以上载较大的图像,但建议使用较小的文件大小。这有助于提高性能,尤其是对于网络带宽较低的用户。较小的图像意味着本地设备上的 RAM 使用减少。事实上,尝试上载大于 10MB 的图像时可能会遇到问题。
在故事中使用图像时,请考虑尝试以下操作:
上载 1Mb 或更小的背景图像。要获得高质量的背景图像,您可以使用压缩的 Web 图像,或者您可能希望使用 SVG 图像而不是 PNG、JPG 或 BMP 图像。
尽可能利用页眉图像。
输入控件和过滤器
展开的页面过滤器或输入控件非常方便,因为你可以在控件中快速选择成员或搜索成员。但是,建议对其进行设计,以便在初始视图中将其折叠,因为仅当用户与输入控件交互而不是页面加载时,查询才会发送到后端系统。
关闭输入控件的"级联效应"选项会提高性能。使用输入控件时,默认情况下会选择"级联效应"。
在下面的示例中,如果为*"国家/地区*"启用了"级联效应",则在选择某个值时,"城市"值将与统计图一起更新,需要额外请求来刷新数据。如果禁用了*"级联效应*",则只有统计图会更新,并且"城市"值不会更改。

将实时计算推送到后端
SAP Analytics Cloud 提供在故事级别创建称为计算所得度量的即时计算的功能。但是,为获得最佳性能,建议尽可能在数据源级别创建计算。这允许以更有效的方式处理查询。
构建故事时优化性能
构建故事时,可能会出现性能问题,不仅限于查看已完成故事并与之交互的用户。创建故事时,添加和配置微件和其他元素的速度取决于调用基础数据源的频率。让我们看一下如何使用模型中的"优化故事构建性能"设置来优化故事构建性能。
默认情况下,从"生成器"面板对表或统计图进行的每次修改都会向服务器发送查询,从而立即更新表或统计图。例如,添加或删除维或度量时,需要等待统计图或表更新,然后才能进行其他更改。根据模型的大小,响应时间可能会很慢;这可能会给服务器带来大量负载。因此,故事设计的最佳实践之一是减少查询数量。
激活优化故事构建性能
如果在模型首选项中激活"优化故事构建性能"功能,则会阻止在故事设计期间更新数据。
要在故事设计期间关闭自动数据更新:
打开模型 "首选项" 。
选择" 数据和性能" 。
打开" 优化故事构建性能 "下的开关。

手动刷新数据源
在"生成器"面板中进行更改时,将出现刷新图标。只需单击 图标即可应用更改并在故事中手动触发数据刷新。

精简版查看器
精简版查看器是优化故事体验的扩展。它是一种查看器,旨在加载最精简版本的应用程序。虽然它提高了通过 URL 打开的故事的性能,但它不支持当前在完整查看器中提供的所有功能。
如果故事不包含任何不受支持的功能(例如脚本 API 或计划数据操作),则在构建故事时选择"查看"时,精简版查看器将自动打开。因此,设计不太复杂的简单故事更有可能在此模式下启动。

要查看精简版查看器中支持的功能和使用限制的完整列表,可以转到 支持的功能和使用限制 。
在精简版查看器中查看故事时,任何不支持的功能都将灰显,但是,可以通过单击在完整查看器中打开故事轻松切换到优化设计体验故事查看模式,如下例所示。但请记住,以这种方式打开故事后,将无法使用返回按钮恢复至当前选项卡中的精简版查看器。需要在新标签页中打开故事,或使用故事 URL。
