亚马逊AWS官方博客

新的 Amazon QuickSight API 功能可加速商业智能转型

经常阅读本博客的读者以及 AWS 客户都知道基础设施即代码(IaC)的优点。它让您能够使用编程语言来描述基础设施,从而将基础设施一致地部署到多个环境或 AWS 区域。其他优点包括可以使用与管理应用程序源代码相同的开发工具和工作流来进行基础设施版本控制。借助 IaC,您还可以在部署基础设施之前通过编程方式验证部分基础设施的功能。

今天,我们扩展了 QuickSight API 的功能,允许以编程方式创建和管理控制面板、分析和模板。借助这些功能,商业智能(BI)团队可将其 BI 资产作为代码进行管理,与 IaC 类似。这让 BI 团队能够变得更加敏捷,并且可以利用编程迁移选项加快从遗留产品迁移 BI 的速度。

商业智能和 IT 运营(BIOps)的灵感来自通过数十年 DevOps 获得的最佳实践。BIOps 可以帮助客户加速创新,快速为客户提供数据洞察。由于 BI 创作在性质上由 UI 驱动,控制面板通常是手动开发和部署的。这给 BIOps 带来了挑战,因为部署期间对控制面板的更改可能未经过充分验证,如果无意中将更改转移到生产环境,则可能导致错误和停机。借助新的 QuickSight API,您可以通过编程方式创建和修改 QuickSight 分析和控制面板,在代码存储库中启用对这些资产的版本控制,并帮助加速向 AWS Cloud 迁移。

以编程方式创建和管理分析、模板和控制面板,还有利于您从旧 BI 解决方案中迁移资产。在各种需要迁移到云端的数据和分析工作负载中,商业智能往往是最后才会从遗留本地解决方案迁移出来的部分之一。BI 团队经常会有数以千计的自定义报告和控制面板,这些报告和控制面板经过数十年的构建,迁移过程十分繁琐。这些报告的迁移非常耗时,因为 BI 团队需要花费数月的时间手动逐个迁移这些资产。

术语
在此次发布时,QuickSight 新增了一组新的 describe API。此外我们还更新了现有的 createupdatelist API 动词。借助这些新增和更新后的 API,您可以使用分析模板控制面板的数据模型,通过 API 进行细粒度控制。

  • QuickSight 分析是一个易于使用的工作区,可用于创建数据可视化,即以图形的方式来表示数据。每项分析都包含一组允许您进行排列和自定义的可视化。
  • 借助 QuickSight 控制面板,您可以与其他用户共享来自某个分析的交互式可视化或静态报告。
  • QuickSight 模板是一个封装了创建分析或控制面板所需元数据的实体。它通过用占位符替换与分析相关的数据集来实现抽象。

新的 API(DescribeAnalysisDefinitionDescribeTemplateDefinitionDescribeDashboardDefinition)现在允许开发人员管理所有支持的图表和可视组件。

下面来看实际操作
假设我想以编程方式创建一个 QuickSight 分析。

以编程方式创建新的商业智能分析分为三个步骤:创建提供分析数据的数据来源、基于数据来源创建数据集以及创建 QuickSight 分析。

以编程方式或通过用户界面使用 QuickSight 时,第一步是定义数据来源。数据来源定义了包含所要分析数据的数据库的属性。以编程方式创建和管理数据来源并不是什么新鲜事。您可以参阅 控制数据来源的 QuickSight API 操作页面

第二步是 创建数据集以链接一个或多个数据来源。同样,以编程方式管理数据集 也不是什么新鲜事物。

在使用新的 describe API 时,分析、控制面板和模板被定义为 JSON 对象,这些对象在 AWS SDK 中完全建模。在此演示中,我使用的是 AWS 命令行界面(CLI),它将使用 JSON 对象。如果使用 Java 或其他 AWS SDK,您将能够以编程方式操作所有元素。

要开始以编程方式创建新的分析或控制面板,非常简单的方法是利用您在控制台中创建的现有分析或控制面板定义。

第三步是创建分析。我首先调用了 describe-analysis-definition API 来描述一个现有的分析。我收到了一个 JSON 文件,这是该 API 调用的完整响应。我可以检查和修改 describe-analysis-definition 响应中的 Definition 以创建一个新的分析。

aws quicksight describe-analysis-definition      \
        --aws-account-id 0123456789              \
        --analysis-id linechart-kpi-donut-pivot
> ./AWS\ Blog\ Sample\ Code/linechart-kpi-donut-pivot.json

注意:如果不进行多项修改以作为 create API 的输入,则无法直接使用此 JSON 文件。

在准备好创建新分析后,我会使用 --generate-cli-skeleton 参数生成一个 JSON 文件。然后,我将之前调用 describe-analysis-definition 时使用的原始或修改过的 Definition 对象复制到 create-sales-analysis.json 文件中。

aws quicksight create-analysis \ 
      --generate-cli-skeleton > create-sales-analysis.json

aws quicksight create-analysis  \
      --cli-input-json file://./AWS\ Blog\ Sample\ Code/create-sales-analysis.json

Definition 字段在控制面板、模板和分析之间具有相同的形状,因此,需要时也可以利用 create-dashboard API,重复使用创建分析时所用的 Definition 来创建新的控制面板。

aws quicksight create-dashboard \
      --generate-cli-skeleton > create-dashboard.json

然后我可以修改 create-dashboard.json 文件,以包含来自我的 create-sales-analysis.json 文件的 Definition,并且我还可以修改其他参数,然后再调用 create-dashboard

aws quicksight create-dashboard \
       --cli-input-json file://./AWS\ Blog\ Sample\ Code/create-dashboard.json

这是我使用的 JSON 文件的摘录。

QuickSight API – 创建控制面板

显然,使用 API 开发控制面板是一个迭代过程。这是几次迭代后的结果。

QuickSight API – 新控制面板

我可以使用相同的方法以编程方式从旧商业智能解决方案迁移资产。

定价和可用性
借助新的 API,您可以将商业智能控制面板定义为可编程的对象,从而加快从旧 BI 工具迁移的速度。有关详细信息,请访问 QuickSight 的 API 文档页面

所有 QuickSight 企业版客户均可在所有 已开放 QuickSight 的 AWS 区域免费使用此 API。对于这些 API 新支持的数据模型,AWS CloudFormation 也将很快推出支持。

立即 开始以编程方式构建您的第一个控制面板

– seb