AI News HubLIVE
站内改写5 分钟阅读

在Amazon QuickSight中使用Highcharts构建多区域可视化

本文介绍如何使用Highcharts自定义可视化在QuickSight中构建多区域运营商绩效仪表板,克服原生图表限制,同时通过QuickSight联合数据集能力维护跨AWS区域的数据主权。解决方案包括生产就绪的图表配置,并满足安全、合规和可扩展性要求。

来源AWS Machine Learning Blog作者: Anupa Bhattacharyya

当您的运营商绩效数据跨越多个区域时,仪表板必须在一个视图中协调根本不同的竞争结构。例如,在美国,您需要在49个州和数百个都市市场中对三个运营商(运营商1-3)进行排名。在英国,您需要在不同的国家区域中比较四个运营商(运营商4-7)。挑战不仅是地理上的,更是结构上的。

运营商数量、市场密度和区域细节的差异意味着没有单一的开箱即用图表类型可以讲述完整的故事。您需要能够同时回答分层问题的可视化:谁领先、领先多少、一致性如何,以及他们是改善还是下降。

您会发现,当您尝试大规模回答这些问题时,原生Amazon QuickSight可视化无法讲述完整的故事。QuickSight无法编码哪个运营商或运营商组合主导每个地理图块。它无法生成同时展示所有七个运营商在七个绩效类别中的雷达图。也无法生成子弹图、哑铃图等图表类型,而这些正是您所需的数据细节。

每次您尝试在原生QuickSight中近似这些可视化时,最终都会按区域构建单独的仪表板,使用堆叠条形图作为差值变通办法,或者平均指标,从而掩盖运营商最佳和最差市场之间的波动。这些妥协增加了维护开销,并模糊了利益相关者做出自信、数据驱动决策所需的洞察。

通过将Highcharts作为自定义可视化嵌入QuickSight,您可以用一个统一的JSON配置解决这些限制。利用其瓦片地图图表类型和colorAxis.dataClasses,您可以在一个可视化中编码跨多个区域的运营商主导地位(包括多运营商平局),并通过图例切换进行区域过滤。其极线图可生成真正的多边形雷达,用于多运营商、多类别比较,提供完整的竞争概况。

除了地理和雷达视图,Highcharts还提供了您的分析所需的其他图表类型。您可以使用子弹图显示相对于100分目标的性能,并带有彩色分区;使用哑铃图展示运营商最佳和最差都市市场之间的差距;使用瀑布图分解逐期分数变化。

本文向您展示如何使用Highcharts自定义可视化在QuickSight中构建多区域运营商绩效仪表板,克服原生图表限制。您将学习如何通过QuickSight联合数据集能力维护跨AWS区域的数据主权,同时创建统一的可视化。该解决方案包括生产就绪的图表配置,并解决安全性、合规性和可扩展性要求。

解决方案概述

您的架构取决于数据驻留要求、延迟需求和合规义务等因素。两种架构模式可解决此问题:

选项1:单一AWS区域

使用此方法,您将运营商数据(例如美国数据和英国数据)存储在一个AWS区域(例如us-east-1或eu-west-1)中,使用单个QuickSight SPICE数据集,并通过国家/地区列进行逻辑标识。

虽然此架构管理起来更简单(一个数据集和一个SPICE刷新),但存在潜在缺陷:如果您选择基于美国的区域,您的数据物理上位于英国之外,如果数据集包含个人身份信息,则可能违反英国GDPR或数据驻留规则。

选项2:按国家划分的独立AWS区域

有时,数据主权法要求您在收集数据的法律管辖区内物理存储和处理某些类别的数据(特别是关于个人、网络使用模式和商业敏感绩效指标的数据)。例如,对于英国运营商数据,英国GDPR规定有关英国消费者和英国网络性能的个人和操作敏感数据必须位于英国或更广泛的欧洲经济区内的基础设施上。这意味着您必须将美国运营商数据放置在美国AWS区域(例如us-east-1或us-west-2),将英国运营商数据放置在欧盟区域,且原始数据不能跨边界混用。这两个数据集是主权的。您不能将它们合并到单个Amazon S3存储桶中而不违反一个或两个司法管辖区的规定。

尽管数据位于不同的AWS区域,但您可以使用QuickSight架构构建统一的高程图表仪表板,而无需跨边界移动原始数据。您可以在QuickSight层使用联合数据集连接,而不是在存储层:将聚合的美国数据集(在us-east-1中)和聚合的英国数据集(在eu-west-2中)摄取到各自的区域SPICE实例中,然后Amazon QuickSight的数据准备功能在数据准备时将它们附加到一个逻辑数据集中。生成的统一数据集馈送一组Highcharts配置(瓦片地图、雷达、子弹图、哑铃图、瀑布图、流图),这些配置一起渲染多区域运营商。没有原始主权数据离开其所属区域。您仅将每个区域内计算的聚合RootScore、排名和ColorValue指标联合到统一视图中,既满足数据驻留要求,又实现了仪表板所需的组合可视化。

虽然选项1适用于大多数场景,但本文详细介绍了选项2,因为它解决了电信公司经常遇到的更复杂的需求。

解决方案架构

下图展示了多区域架构如何联合运营商绩效数据同时维护数据主权。两个区域数据管道(us-east-1用于美国运营商数据,eu-west-2用于英国运营商数据)在各自区域内独立聚合绩效指标。在QuickSight层,数据准备功能在查询时将这些聚合数据集联合成一个逻辑数据集。该统一数据集馈送Highcharts自定义可视化,从而实现组合的多区域仪表板,而无需跨边界移动原始数据。

前提条件

开始之前,请确保您具备以下条件:

  • 可访问QuickSight的AWS账户。
  • 跨多个AWS区域配置的数据源。
  • 对QuickSight仪表板和数据集成有基本了解。
  • 理解Highcharts的JSON配置。
  • 具有跨区域访问数据源的AWS Identity and Access Management(IAM)权限。

数据准备

要聚合来自多个区域的数据,请在QuickSight中配置数据源。此步骤有助于建立连接,实现跨区域数据检索。

  1. 在QuickSight控制台中,从左侧导航面板转到“数据集”。
  2. 选择“创建数据源”以添加第一个区域数据源。
  3. 选择数据源类型(例如Amazon S3、Amazon RDS或其他数据源)。
  4. 输入第一个区域的连接详细信息,包括端点URL和身份验证凭据。
  5. 选择“验证连接”以确认数据可访问。
  6. 验证连接后,选择“创建数据源”。
  7. 对每个要包含在分析中的其他AWS区域重复步骤2-6。

配置区域数据源后,可以继续将它们组合成统一数据集。

配置数据聚合和转换

连接数据源后,设置聚合规则以组合来自多个区域的数据。此步骤有助于保持数据格式一致,并生成统一分析。

  1. 在QuickSight中选择“数据集”。
  2. 选择“创建数据集”。
  3. 选择上一步中注册的数据源之一及其关联模式。
  4. 选择“编辑/预览数据”。
  5. 在数据准备界面中,选择“添加数据”。
  6. 从列表中选择第二个区域数据源。
  7. 选择“追加”以垂直堆叠数据集。
  8. 验证数据集之间的列名称是否匹配(如有必要,重命名)。
  9. 添加名为“Region”的计算字段以标识数据来源(例如,IF(condition, 'US', 'UK'))。
  10. 预览组合数据集以验证行计数。
  11. 根据需要添加计算字段以标准化跨区域的数据格式,例如将时间戳转换为公共时区。
  12. 选择“保存并发布”以发布聚合数据集。
  13. 发布数据集后,在此数据集下的“计划刷新”中配置刷新计划,以保持聚合数据最新。
  14. 根据业务需求设置频率(每小时、每天或每周)。

现在,您可以使用聚合数据集创建Highcharts可视化。

要了解如何为Highcharts可视化设置跨区域分析数据,请参阅关于构建多区域分析解决方案的演练。

数据集概述

本演练中使用的运营商性能数据集包含跨两个国家(英国、美国)的七个运营商的记录。数据集包括七个绩效类别(通话、数据、整体、可靠性、响应性、短信、视频),以及两个测量期间(2024年下半年、2025年上半年)的排名和RootScore指标。

数据集模式包括以下属性:

| 字段 | 描述 | |------|------| | carrier | 运营商ID(例如Carrier1至Carrier7) | | category | 绩效类别(通话、数据、整体、可靠性、响应性、短信、视频) | | country | 测量国家(美国、英国) | | rank | 该市场和类别内的竞争排名(1-4) | | rootscore | 绩效得分(0-100分制) | | product_period | 测量期间(2024-2H, 2025-1H) |

下表显示了数据集的一个代表性样本:

| carrier | category | country | rank | rootscore | product_period | |---------|----------|---------|------|-----------|----------------| | Carrier1 | Call | USA | 1.0 | 99.53 | 2024-2H | | Carrier1 | Call | USA | 1.0 | 98.08 | 2024-2H | | Carrier1 | Call | USA | 1.0 | 82.18 | 2024-2H | | Carrier1 | Call | USA | 1.0 | 99.99 | 2024-2H | | Carrier1 | Call | USA | 1.0 | 98.79 | 2024-2H | | Carrier1 | Call | USA | 1.0 | 98.37 | 2024-2H | | Carrier1 | Call | USA | 1.0 | 99.96 | 2024-2H | | Carrier1 | Call | USA | 1.0 | 99.12 | 2024-2H |

理解动态字段井绑定

本文中的代码块展示了数据如何使用占位符标记({{token}})从数据集中动态流动,这些标记映射到特定的数据集查询。

每个代码块包含两个组件:

  • 字段井映射指定哪些数据集字段(carrier、category、rootscore、rank、product_period、country)映射到哪些字段井。这些定义了数据如何从数据集流入图表。
  • JSON模板使用占位符标记(例如{{carrier_list}}和{{avg_rootscore_period_1}}),QuickSight字段井引擎在渲染时解析这些标记。每个图表后的映射图例记录了每个占位符解析的内容。

Highcharts实现演练

在本节中,您将逐步了解解决多区域运营商分析需求的Highcharts可视化,这些需求是原生QuickSight可视化无法独立满足的。在深入代码之前,请查看以下需求表。它将每个可视化映射到其Highcharts图表类型,总结可视化必须完成的内容,并解释为何无法使用内置QuickSight图表类型实现相同结果。每个后续图表都包含一个完整的JSON配置,您可以直接复制到QuickSight Highcharts自定义可视化中,以及显示预期输出的渲染预览。由于每个配置都动态绑定到QuickSight字段井,而不是硬编码运营商名称或区域值,因此您可以将这些示例适应到自己的数据集中。