AWS Quicksight - 快速指南

AWS Quicksight - 概述

AWS Quicksight 是最强大的商业智能工具之一,它允许您在几分钟内创建交互式仪表板,为组织提供业务洞察。仪表板可以以多种可视化或图形格式创建。仪表板会在数据更新或安排时自动更新。您还可以将在 Quicksight 中创建的仪表板嵌入到您的 Web 应用程序中。

借助最新的 ML 洞察(也称为机器学习洞察),Quicksight 使用其内置算法来查找历史数据中的任何类型的异常或峰值。这有助于根据这些洞察提前为业务需求做好准备。以下是 Quicksight 入门快速指南。

以下是 AWS 的官方产品描述页面 −

https://aws.amazon.com/quicksight/

您还可以通过填写以下信息并单击"继续"按钮来订阅 AWS 试用帐户。

Aws Trial Account

AWS Quicksight - 登陆页面

要访问 AWS Quicksight 工具,您可以通过在 Web 浏览器中传递此 URL 或导航到 AWS 控制台 → 直接打开它服务

https://aws.amazon.com/quicksight/

打开此 URL 后,在右上角单击"登录控制台"

登录控制台

您需要提供以下详细信息才能登录 Quicksight 工具 −

  • 账户 ID 或别名
  • IAM 用户名
  • 密码
登录 ...登录 Quicksight 后,您将看到以下屏幕 −

Quicksight

如上图所示,

A 部分 − "新分析"图标用于创建新分析。单击此图标时,它会要求您选择任何数据集。您也可以创建一个新的数据集,如下所示 −

新数据集

B 部分 − "管理数据"图标将显示已输入 Quicksight 的所有数据集。此选项可用于管理数据集而无需创建任何分析。

C 部分 −它显示了您已连接的各种数据源。您还可以连接到新数据源或上传文件。

数据集

D 部分 −此部分包含已创建的分析、已发布的仪表板和详细说明 Quicksight 的教程视频的图标。

您可以单击每个选项卡以查看它们,如下所示 −

所有分析

在这里,您可以查看 AWS Quicksight 帐户中所有现有的分析,包括报告和仪表板。

所有分析

所有仪表板

此选项仅显示 AWS Quicksight 帐户中现有的仪表板。

所有仪表板

教程视频

教程视频

打开 Quicksight 控制台的其他选项是使用以下 URL 导航到 AWS 控制台 −

https://aws.amazon.com/console/

登录后,您需要导航到"服务"选项卡并在搜索栏中搜索 Quicksight。如果您最近在 AWS 帐户中使用过 Quicksight 服务,它将显示在"历史记录"选项卡下。

服务

AWS Quicksight - 使用数据源

AWS Quicksight 接受来自各种来源的数据。单击主页上的"新数据集"后,它会为您提供所有可用数据源的选项。

以下是包含所有内部和外部源列表的源 −

使用数据源

让我们了解如何将 Quicksight 与一些最常用的数据源连接 −

从系统上传文件

它仅允许您输入 .csv、.tsv、.clf、.elf.xlsx 和 Json 格式的文件。选择文件后,Quicksight 会自动识别文件并显示数据。单击上传文件按钮时,您需要提供要用于创建数据集的文件的位置。

使用 S3 格式的文件

屏幕将显示如下。在数据源名称下,您可以输入要显示的要创建的数据集的名称。此外,您还需要从本地系统上传清单文件或提供清单文件的 S3 位置。

数据源名称

清单文件是 json 格式的文件,它指定输入文件的 url/位置及其格式。您可以输入多个输入文件,只要格式相同。以下是清单文件的示例。用于传递输入文件位置的"URI"参数是 S3。

{
   "fileLocations": [
      {
         "URIs": [
            "url of first file",
            "url of second file",
            "url of 3rd file and so on"
         ]
      },
   
   ],
}
"globalUploadSettings": {
   "format": "CSV",
   "delimiter": ",",
   "textqualifier": "'",
   "containsHeader": "true"
}

globalUploadSettings 中传递的参数是默认参数。您可以根据需要更改这些参数。

MySQL

您需要在字段中输入数据库信息才能连接到您的数据库。一旦连接到您的数据库,您就可以从中导入数据。

新 SQL 数据源

连接到任何 RDBMS 数据库时都需要以下信息 −

  • DSN 名称
  • 连接类型
  • 数据库服务器名称
  • 端口
  • 数据库名称
  • 用户名
  • 密码

Quicksight 支持以下基于 RDBMS 的数据源 −

  • Amazon Athena
  • Amazon Aurora
  • Amazon Redshift
  • Amazon Redshift Spectrum
  • Amazon S3
  • Amazon S3 Analytics
  • Apache Spark 2.0 或更高版本
  • MariaDB 10.0 或更高版本
  • Microsoft SQL Server 2012 或更高版本
  • MySQL 5.1 或更高版本
  • PostgreSQL 9.3.1 或更高版本
  • Presto 0.167 或更高版本
  • Snowflake
  • Teradata 14.0 或更高版本

Athena

Athena 是用于在表上运行查询的 AWS 工具。您可以从 Athena 中选择任何表,也可以 在这些表上运行自定义查询,并在 Quicksight 中使用这些查询的输出。选择数据源有几个步骤

当您选择 Athena 时,会出现以下屏幕。您可以输入任何想要在 Quicksight 中提供给数据源的数据源名称。单击"验证连接"。验证连接后,单击"创建新源"按钮

 Athena 数据源

现在从下拉列表中选择表名称。下拉列表将显示 Athena 中存在的数据库,并将进一步显示该数据库中的表。否则,您可以单击"使用自定义 SQL"在 Athena 表上运行查询。

选择

完成后,您可以单击"编辑/预览数据""可视化"来编辑数据或根据您的要求直接可视化数据。

完成数据集创建

删除数据源

当您删除任何 Quicksight 仪表板中正在使用的数据源时,可能会使相关数据集无法使用。这通常发生在您查询基于 SQL 的数据源时。

当您基于 S3、Sales force 或 SPICE 创建数据集时,它不会影响您使用任何数据集的能力,因为数据存储在 SPICE 中;但是在这种情况下刷新选项不可用。

要删除数据源,请选择数据源。在创建数据集页面上导航到"来自现有数据源"选项卡。

删除数据源

在删除之前,您还可以确认估计的表大小和数据源的其他详细信息。

数据源详细信息

AWS Quicksight - 数据源限制

当您在 Quicksight 工具中使用不同的数据源时,会根据数据源应用某些限制。

文件

您最多可以使用清单文件中指定的 25GB 总大小。此限制取决于导入到 SPICE 后的文件大小。

清单文件中支持的文件数量为 1000 个,并且每个文件中的列数也有一定的限制。

表和查询

当您查询大型表时,建议您使用 Where 或 Having 条件来减少导入到 SPICE 的数据数量。导入 SPICE 的查询结果不应超过 25 GB。

您可以在将数据导入 SPICE 时取消选择某些列。

如果您的数据源包含 Quicksight 不支持的数据类型,AWS Quicksight 会跳过这些值。

Person ID Sales Date Amount
001 10/14/2017 12.43
002 5/3/2017 25.00
003 Unknown 18.17
004 3/8/2019 86.02

从上述值中,Quicksight 将在数据集中导入此数据时删除无日期值行。Quicksight 支持以下数据类型 −

数据库源 数字数据类型 字符串数据类型 日期时间数据类型 布尔数据类型
Amazon Athena,Presto
  • bigint
  • decimal
  • double
  • integer
  • real
  • smallint
  • tinyint
  • char
  • varchar
  • date
  • timestamp
  • Boolean
Amazon Aurora, MariaDB,and MySQL
  • bigint
  • decimal
  • double
  • int
  • integer
  • mediumint
  • numeric
  • smallint
  • tinyint
  • char
  • enum
  • set
  • text
  • varchar
  • date
  • datetime
  • timestamp
  • year
PostgreSQL
  • bigint
  • decimal
  • double
  • integer
  • numeric
  • precision
  • real
  • smallint
  • char
  • character
  • text
  • varchar
  • varying character
  • date
  • timestamp
  • Boolean
Apache Spark
  • bigint
  • decimal
  • double
  • integer
  • real
  • smallint
  • tinyint
  • varchar
  • date
  • timestamp
  • Boolean
Snowflake
  • bigint
  • byteint
  • decimal
  • double
  • doubleprecision
  • float
  • float4
  • float8
  • int
  • integer
  • number
  • numeric
  • real
  • smallint
  • tinyint
  • char
  • character
  • string
  • text
  • varchar
  • date
  • datetime
  • time
  • timestamp
  • timestamp_*
  • Boolean
Microsoft SQL Server
  • bigint
  • bit
  • decimal
  • int
  • money
  • numeric
  • real
  • smallint
  • smallmoney
  • tinyint
  • char
  • nchar
  • nvarchar
  • text
  • varchar
  • date
  • datetime
  • datetime2
  • datetimeoffset
  • smalldatetime
  • bit

AWS Quicksight - 编辑数据集

当您创建要在 Quicksight 中使用的新数据集时,将出现以下消息。您可以根据需要预览或编辑数据。您可以更改某些字段的类型,重命名标题或根据输入字段添加一些计算字段。

编辑数据库

单击"编辑/预览数据"后,您将能够看到输入数据集上的标题和字段。这是一个示例数据集 −

保存

还有一个添加计算字段的选项。您可以在输入字段上使用内置函数来创建新字段。有许多选项,例如连接多个字段、将单个字段拆分为多个字段、两个日期之间的时间差等等。完整列表如下所示 −

添加计算字段

添加或修改字段后,只需单击顶部的"保存并可视化"或"保存"。 "保存"按钮将使您停留在现有屏幕上,而"保存并可视化"将带您进入可视化创建屏幕。

数据源

要取消更改,请单击顶部的"取消"按钮。

AWS Quicksight - 创建新分析

分析是一个或多个可视化的组合。可视化是以图形、图表或表格形式呈现数据。有多种格式可用于创建任何可视化。这包括饼图、水平条形图、垂直条形图和数据透视表。

根据业务需求修改输入数据集后,双击数据集并单击可视化以开始创建新分析。它将向您显示以下屏幕或工作区。

创建新分析

选择字段后,Quicksight 会根据字段自动选择可视化类型。如果要更改可视化类型,可以选择其中一种可视化类型。

例如,我们首先选择可视化类型下的水平条。首先,将任何一个字段拖到中心的可视化中。在顶部,您将看到"字段井",其中包含可视化中使用的字段和相应的轴。您可以单击用户名下方最后一个向下箭头。

Visual Types

这将为您提供扩展视图。我在 Y 轴上选择了"性别",在"组/颜色"下选择了"工作类别"。您可以从下拉列表中修改字段。在值下,您可以添加任何数字字段并对该字段使用聚合函数。默认情况下,视觉效果将显示行数。

行数

人员概览分析

视觉效果将显示如下 −

视觉显示

有选项可以更改视觉效果的标题和其他格式选项的数量。单击最右侧的下拉菜单。选项将展开。选择"格式化视觉效果"。您将能够在左侧选项卡的"格式化视觉对象"下看到各种选项。

Dropdown

X 轴/Y 轴 − 如果您想在相应的轴上查看标签或字段名称,这将提供选项。它还允许您重命名这些标签。

组/颜色 − 这提供了更改视觉对象中的默认颜色的选项。

图例 − 这提供了更改标题和标题在视觉对象中的位置的选项。您也可以通过单击标题来重命名标题。

数据标签 −这提供了显示每个条形的精确值以及需要显示值的位置的选项。

下面的屏幕显示了打开所有内容的视觉效果 −

Five Insights

AWS Quicksight - 添加视觉效果

要添加新视觉效果,请单击顶部的"添加"符号。另一个矩形空间将添加到分析中。您可以选择不同的视觉类型和字段来创建另一个视觉。

添加符号

单击"添加"按钮时,您可以选择将以下内容添加到现有分析中 −

  • 添加视觉
  • 添加见解
  • 添加标题
  • 添加说明
  • 添加计算字段
  • 添加参数
X 轴四视图

要格式化视觉,您还可以使用图表右上角的下拉箭头按钮。以下选项可用 −

  • 最大化
  • 格式化视觉效果
  • 隐藏图例
  • 导出到 CSV
  • 隐藏"其他"类别
  • URL 操作
  • 删除
记录数

AWS Quicksight - 将过滤器应用于视觉效果

Quicksight 允许您向正在创建的视觉效果添加过滤器。您可以选择将过滤器应用于任何分析下的单个视觉效果或所有视觉效果。要添加过滤器,请单击左侧选项卡上的"过滤器"图标。如果有任何过滤器,它将显示现有过滤器,或者可以根据要求创建过滤器。在下面的示例中,我们没有任何现有过滤器,因此它提供了一个"创建一个"选项

已应用过滤器

单击创建一个后,您可以创建过滤器。这允许您选择是否要将过滤器添加到一个或所有视觉效果中。它还允许您选择要应用过滤器的字段。

创建过滤器

在上面的示例中,我们在输入数据集上的"出生日期"字段上添加了一个过滤器并指定了一个日期。现在,该图表包含不同职位级别和职位类别下员工的平均任职年限,但仅包括出生日期在 1980-01-01 之后的员工。

AWS Quicksight - Insights

Amazon 使用其机器学习功能来分析您的数据并提供见解。这些见解向您展示了数据中的趋势,有助于预测业务指标并确定关键驱动因素。它节省了您手动分析和创建它们的大量时间。借助洞察,您可以轻松了解各种要点,帮助您确定并做出最佳决策,并实现目标。

单击洞察后,左侧面板会在"建议洞察"下显示 Quicksight 自动计算和创建的洞察

建议洞察

如果将鼠标悬停在每个洞察标题的右侧,您将看到一个"+"号和 3 个点。"+"号用于将洞察添加到您的分析中,而 3 个点为您提供了向现有洞察添加过滤器的选项。要添加洞察,请单击顶部的"添加"符号,然后单击"添加洞察"。

您可以进一步选择要执行的计算类型,并将该洞察添加到您的分析中。 "预测"和异常检测由机器学习提供支持,可在 Quicksight 的"企业版"中使用

Computation

AWS Quicksight - 创建故事

故事是一种选项,您可以在其中捕获一系列屏幕并逐一播放。例如,如果您想查看具有不同过滤选项的视觉效果,则可以使用故事。要创建故事,请单击最左侧面板上的故事。默认情况下,有一个名为故事板 1 的故事。现在使用顶部最右侧面板上的捕获图标捕获屏幕。每次屏幕捕获也称为场景。您可以捕获多个场景,这些场景将添加到"故事板 1"下。一旦您的主数据源刷新,故事中的数据就会自动刷新。

Story Board1

AWS Quicksight - 使用参数

参数是为将控制权交给用户修改仪表板而创建的变量。可以使用输入数据集的字段或为分析创建的过滤器来创建参数。例如,您使用过滤器创建参数,仪表板用户可以直接应用过滤器而无需创建任何过滤器。

创建新参数

创建参数

在本节中,我们将了解如何创建参数 −

步骤 1 − 输入参数的名称。让我们将 Gender 作为参数。

步骤 2 − 选择数据类型。默认情况下,它是字符串。

步骤 3 −选择以下可能的选项。

多个值

将添加参数。您可以选择向仪表板添加控件。

AWS Quicksight - 共享分析

分析准备就绪后,可以通过电子邮件或其他 Quicksight 用户与用户共享。在右上角的菜单中,有一个"共享"图标

共享图标

共享分析

默认情况下,只有作者或管理员可以访问分析。您需要向用户提供访问权限才能查看分析。单击"管理分析访问权限"后,将显示所有注册用户。您可以选择要扩展访问权限的用户,然后单击"邀请用户"。用户将收到电子邮件通知,一旦他们接受通知,他们就可以通过电子邮件获得分析。

邀请用户

AWS Quicksight - 仪表板

仪表板显示分析的屏幕截图。与分析不同,仪表板仅作为屏幕截图读取。只需使用在视觉效果中创建的参数和过滤器即可创建新的视觉效果,但具有相同的图表

公共仪表板

要生成您创建的分析的仪表板,只需单击共享图标下的发布仪表板。为仪表板提供任意名称,然后单击"发布仪表板"图标。

公共仪表板图标

您可以选择与此帐户中的所有用户或仅特定用户共享仪表板。

共享仪表板

现在仪表板在主屏幕上的"所有仪表板"选项卡下可见。

管理数据

这是附有过滤器的示例仪表板。您可以看到,除了应用创建视觉效果时添加的过滤器外,没有其他选项可以编辑仪表板。

Dashboard With Filter

AWS Quicksight - 管理 Quicksight

管理 Quicksight 是管理您当前的帐户。您可以添加具有相应角色的用户、管理您的订阅以及检查 SPICE 容量或将域列入白名单以进行嵌入。您需要管理员权限才能在此页面执行任何活动。

在用户配置文件下,您将找到管理 Quicksight 的选项。

管理 Quicksight

单击管理订阅后,将出现以下屏幕。它将显示此帐户中的用户及其各自的角色。

管理用户

您还有一个搜索选项;以防您想特别搜索 Quicksight 中的现有用户。

您可以邀请具有有效电子邮件地址的用户,也可以添加具有有效 IAM 帐户的用户。然后,具有 IAM 角色的用户可以登录到他们的 Quicksight 帐户并查看他们有权访问的仪表板。

有效 IAM 帐户

您的订阅将显示您订阅的 Quicksight 版本。

订阅

SPICE 容量显示他们选择的计算引擎的容量以及迄今为止使用的数量。如果需要,可以选择购买更多容量。

Spice Capacity

帐户设置显示 Quicksight 帐户的详细信息 − 通知电子邮件地址、AWS 资源对 Quicksight 的权限,或者您也可以选择关闭帐户。

帐户设置

关闭 Quicksight 帐户时,它会删除与以下对象相关的所有数据 −

  • 数据源
  • 数据集
  • 分析
  • 已发布的仪表板

管理 VPC 连接允许您管理和将 VPC 连接添加到 Quicksight。要添加新的 VPC 连接,您需要提供以下详细信息 −

管理 VPC 连接

添加 VPC 连接

域和嵌入允许您将要为用户嵌入 Quicksight 仪表板的域列入白名单。它仅支持将 https:// 域列入 Quicksight 白名单 −

https://example.com

您还可以通过选中下面显示的复选框来包含任何要使用的子域。单击"添加"按钮时,它会将域添加到 Quicksight 中允许嵌入的域名列表中。

域

要编辑允许的域,您需要单击域名旁边的"编辑"按钮。您可以进行更改并单击"更新"。

编辑允许的域

AWS Quicksight - 版本类型

AWS Quicksight 支持不同的版本,根据用户管理、权限和支持的功能而有所不同 − 标准版企业版。这两个版本都支持用于创建和共享数据可视化的所有 Quicksight 功能。

企业版支持将 Active Directory 集成到 AWS 目录。企业版还支持以下各种其他功能 −

支持的功能 标准版 企业版
免费作者数量 1 1
免费试用作者数量(60 天) 4 4
包含的 SPICE 容量 10 GB/用户 10 GB/用户
阅读器 N/A $0.30/会话
额外 SPICE 容量 $0.25/GB/月 $0.38/GB/月
连接到电子表格、数据库、数据湖和业务应用程序
使用 AutoGraph 轻松分析数据
快速、可扩展的可视化
发布仪表板以进行交互式数据访问
使用 SAML 或 OpenID Connect 进行单点登录
Web 和移动访问
深入查看详细信息并自定义过滤器
使用 AWS CloudTrail 启用审计日志
读者角色
安全访问私有 VPC 和本地数据
行级安全性
SPICE 每小时刷新数据
安全静态数据加密
连接到 Active Directory
使用 Active Directory 组

您可以使用 Manage Quicksight 选项。

Edition Enterprise

在企业版中,AWS Quicksight 允许您使用以下任何一种方式管理用户 −

  • 使用 Microsoft Active Directory:在企业版中,您可以添加/删除 Microsoft Active Directory 组来创建和停用用户帐户。您可以直接访问目录组,也可以使用 AD Connector 访问。

  • 联合登录。

  • 通过电子邮件邀请用户。

要在 Quicksight 中管理您的 AD 用户/组,您必须导航至 管理 Quicksight →管理用户/管理组

您还可以通过单击下拉列表 − 来更改现有用户的角色

  • 管理员
  • 作者
  • 读者

AWS Quicksight 管理员还可以使用管理用户选项重置现有用户的密码,如下所示 −

重置密码

您可以使用管理帐户选项从 AQS Quicksight 标准版更新到企业版。要执行升级,用户应具有 AWS Quicksight 管理员权限。

单击右上角的个人资料图标 →立即升级。

立即升级

单击"升级"后,将出现以下屏幕。要完成升级,请单击"升级"按钮。

升级企业版

注意 − 一旦将订阅从标准版更改为企业版,就无法将其回滚。

AWS Quicksight - 管理 IAM 策略

要管理 Quicksight 帐户的 IAM 策略,您可以使用根用户或 IAM 凭证。建议使用 IAM 凭证来管理资源访问和策略,而不是根用户。

注册和使用 Amazon Quicksight − 需要以下策略

标准版

  • ds:AuthorizeApplication
  • ds:CheckAlias
  • ds:CreateAlias
  • ds:CreateIdentityPoolDirectory
  • ds:DeleteDirectory
  • ds:DescribeDirectories
  • ds:DescribeTrusts
  • ds:UnauthorizeApplication
  • iam:CreatePolicy
  • iam:CreateRole
  • iam:ListAccountAliases
  • quicksight:CreateUser
  • quicksight:CreateAdmin
  • quicksight:Subscribe

企业版

除了上述策略外,企业版还需要以下权限−

  • quicksight:GetGroupMapping
  • quicksight:SearchDirectoryGroups
  • quicksight:SetGroupMapping

您还可以允许用户在 Quicksight中管理 AWS 资源的权限。应在两个版本中分配以下 IAM 策略 −

  • iam:AttachRolePolicy
  • iam:CreatePolicy
  • iam:CreatePolicyVersion
  • iam:CreateRole
  • iam:DeletePolicyVersion
  • iam:DeleteRole
  • iam:DetachRolePolicy
  • iam:GetPolicy
  • iam:GetPolicyVersion
  • iam:GetRole
  • iam:ListAttachedRolePolicies
  • iam:ListEntitiesForPolicy
  • iam:ListPolicyVersions
  • iam:ListRoles
  • s3:ListAllMyBuckets

要防止 AWS管理员取消订阅 Quicksight,您可以拒绝所有用户"quicksight:Unsubscribe"

仪表板嵌入的 IAM 策略

要在网页中嵌入 AWS Quciksight 仪表板 URL,您需要将以下 IAM 策略分配给用户 −

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Action": "quicksight:RegisterUser",
         "Resource": "*",
         "Effect": "Allow"
      },
      {
         "Action": "quicksight:GetDashboardEmbedUrl", 
         "Resource": "arn:aws:quicksight:us-east-1: 
         868211930999:dashboard/ 
         f2cb6cf2-477c-45f9-a1b3-639239eb95d8 ",
         "Effect": "Allow"
      }
   ]
}

您可以使用 Quicksight 中的 IAM 策略模拟器管理和测试这些角色和策略。以下是访问 IAM 策略模拟器的链接 −

https://policysim.aws.amazon.com/home/index.jsp?#

IAM 策略模拟器

AWS Quicksight - 嵌入仪表板

您还可以将 Quicksight 仪表板嵌入到外部应用程序/网页中,或者可以使用 AWS Cognito 服务控制用户访问。要执行用户控制,您可以在 Cognito 中创建用户池和身份池,并将嵌入仪表板策略分配给身份池。

AWS Cognito 是一种 IAM 服务,允许管理员创建和管理临时用户以提供对应用程序的访问权限。通过使用身份池,您可以管理这些用户池的权限。

让我们看看如何生成安全的仪表板 URL 并执行用户控制 −

步骤 1 - 创建用户池和用户

在 AWS Cognito 中创建用户池并创建用户。转到 Amazon Cognito → 管理用户池 →创建用户池

Amazon Cognito

第 2 步 - 创建身份池

创建用户池后,下一步是创建身份池。转到 https://console.aws.amazon.com/cognito/home?region=us-east-1

单击"创建新身份池"。

身份池

输入身份池的适当名称。转到身份验证提供商部分并选择"Cognito"选项。

创建池

步骤 3 - 创建 Cognito 角色

输入用户池 ID(您的用户池 ID)和应用程序客户端 ID(转到用户池中的应用程序客户端并复制 ID)。

接下来是单击"创建池",然后单击"允许"以在 IAM 中创建身份池的角色。它将创建 2 个 Cognito 角色。

步骤 4 - 分配自定义策略

下一步是将自定义策略分配给上述步骤中创建的身份角色 −

{
   "Version": "2012-10-17",
   "Statement": [
      {
         "Action": "quicksight:RegisterUser",
         "Resource": "*",
         "Effect": "Allow"
      },
      {
         "Action": "quicksight:GetDashboardEmbedUrl",
         "Resource": "*",
         "Effect": "Allow"
      },
      {
         "Action": "sts:AssumeRole",
         "Resource": "*",
         "Effect": "Allow"
      }
   ]
}
Policies

您可以在 quicksight:GetDashboardEmbedUrl" 下传递仪表板 Amazon 资源名称 (ARN),而不是"*",以限制用户只能访问一个仪表板。

第 5 步 - 登录 Cognito 应用程序

下一步是使用用户池中的用户凭证登录 Cognito 应用程序。当用户登录应用程序时,Cognito 会生成 3 个令牌 −

  • IDToken
  • AccessToken
  • 刷新令牌

要创建临时 IAM 用户,凭证如下所示 −

AWS.config.region = 'us-east-1';
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
   IdentityPoolId:"Identity pool ID", Logins: {
      'cognito-idp.us-east-1.amazonaws.com/UserPoolID': AccessToken
   }
});

要生成临时 IAM 凭证,您需要使用以下参数调用 sts.assume role 方法 −

var params = {
   RoleArn: "Cognito Identity role arn", RoleSessionName: "Session name"
};
sts.assumeRole(params, function (err, data) {
   if (err) console.log( err, err.stack); 
   // an error occurred
   else {
      console.log(data);
   })
}

第 6 步 - 在 Quicksight 中注册用户

下一步是使用"quicksight.registerUser"在 Quicksight 中注册用户,该用户使用第 3 步中生成的凭证,并带有以下参数 −

var params = {
   AwsAccountId: "account id",
   Email: 'email',
   IdentityType: 'IAM' ,
   Namespace: 'default',
   UserRole: ADMIN | AUTHOR | READER | RESTRICTED_AUTHOR | RESTRICTED_READER,
   IamArn: 'Cognito Identity role arn',
   SessionName: 'session name given in the assume role creation',
};
quicksight.registerUser(params, function (err, data1) {
   if (err) console.log("err register user"); 
   // an error occurred
   else {
      // console.log("Register User1");
   }
})

第 7 步 - 更新 AWS 配置文件

接下来是更新第 5 步中生成的用户的 AWS 配置。

AWS.config.update({
   accessKeyId: AccessToken,
   secretAccessKey: SecretAccessKey ,
   sessionToken: SessionToken,
   "region": Region
});

第 8 步 - 为 Quicksight 仪表板生成嵌入 URL

使用第 5 步中创建的凭据,使用以下参数调用 quicksight.getDashboardEmbedUrl 来生成 URL。

var params = {
   AwsAccountId: "Enter AWS account ID",
   DashboardId: "Enter dashboard Id",
   IdentityType: "IAM",
   ResetDisabled: true,
   SessionLifetimeInMinutes: between 15 to 600 minutes,
   UndoRedoDisabled: True | False
}
quicksight.getDashboardEmbedUrl(params,function (err, data) {
   if (!err) {
      console.log(data);
   } else {
      console.log(err);
   }
});

您必须使用上面生成的 URL 从您的应用程序中调用"QuickSightEmbedding.embedDashboard"。

与 Amazon Quicksight 一样,嵌入式仪表板也支持以下功能 −

  • 向下钻取选项
  • 自定义操作(链接到新选项卡)
  • 屏幕过滤器
  • 下载到 CSV
  • 按视觉效果排序
  • 电子邮件报告选择加入
  • 将仪表板重置为默认选项
  • 在仪表板上撤消/重做操作

AWS Quicksight - AWS SDKs

您可以使用 AWS Quicksight SDK 来管理以下 −

  • 用户和组管理
  • 嵌入仪表板

以下显示了用于显示嵌入仪表板的示例 HTML 代码 −

<!DOCTYPE html>
<html>
   <head>
      <title>Sample Embed</title>
      <script type="text/javascript" src="https://unpkg.com/amazon-quicksight-embedding-sdk@1.0.1/dist/quicksight-embedding-js-sdk.min.js"></script>
      <script type="text/javascript">
         function embedDashboard() {
            var containerDiv = document.getElementById("dashboardContainer");
            var params = {
               url: "https://us-east-1.quicksight.aws.amazon.com/sn/dashboards/xxx-x-x-xx-x-x-x-x-x-x-x-xx-xx-x-xx",
               container: containerDiv,
               parameters: {
                  country: 'United States'
               },
               height: "600px",
               width: "800px"
            };
            var dashboard = QuickSightEmbedding.embedDashboard(params);
            dashboard.on('error', function() {});
            dashboard.on('load', function() {});
            dashboard.setParameters({country: 'Canada'});
         }
      </script>
   </head>
<html>

要使用 AWS SDK,您应该熟悉以下内容 −

  • JSON

  • Web 服务

  • HTTP 请求

  • 一种或多种编程语言,例如 JavaScript、Java、Python 或 C#。

AWS Quicksight - 开发人员职责

AWS Quicksight 开发人员应履行以下职责 −

  • 人员应具有分析、报告和商业智能工具方面的相关工作经验。

  • 了解客户需求并在 AWS 中设计解决方案以设置 ETL 和商业智能环境。

  • 了解不同的 AWS 服务及其使用和配置。

  • 精通在具有大规模、分散数据集的业务环境中使用 SQL、ETL、数据仓库解决方案和数据库。

  • 复杂的定量和数据分析技能。

  • 了解 AWS IAM 策略、AWS 服务的角色和管理员。