使用quicksight展示数据

本节我们将使用Quicksight来展示电影数据,我们将测试使用SPICE和不使用SPICE的效果

Redshift配置公网连接

由于Quicksight要访问Redshift里的数据,要把Redshift配置成公网访问:

image-20221028075312804

开启之后,要等待十几分钟Redshift更新完成。再把Redshift的安全组加一条规则,放通0.0.0.0/0对5439端口的访问。

Quicksight展示Redshift数据

进入Quicksight服务,点击New dataset

image-20221028073538148

选择使用Redshift做为数据源,输入Redshift的帐号和密码后,确认可以连接成功,然后点击Create data source

image-20221028095500928

在下一步,选择输入SQL的方式来对数据进行查询。我们输入上一节Spectrum实验时的查询语句:

image-20221031090621915

具体内容如下:

select
  title.title,
  title.language,
  title_basics.primarytitle,
  title_basics.startyear,
  title_basics.genres,
  principles.nconst,
  name_basics.primaryname,
  name_basics.primaryprofession
from imdb.title
  join imdb.title_basics on title.titleid = title_basics.tconst
  join spectrum_schema.principles on title.titleid = principles.tconst
  join imdb.name_basics on name_basics.nconst = principles.nconst
where title.language = 'en'
and title_basics.startyear is not null
order by title_basics.startyear desc
limit 500;

选择Direct query your data,这样Quicksight每次会从Redshift里查询数据再进行展示:

image-20221031090636033

点击primaryprofession,这样报表中会展示它的数量统计:

image-20221031090659695

等待40多秒后,报表加载完成:

image-20221031090750073

查看Redshift的监控,发现这条语句执行了41秒:

image-20221031090807953

转成饼状图展示:

image-20221031090940281

此时会发现又要等待40多秒图形才展示出来

使用SPICE

上面的配置,每次展示报表时每次都要在Redshift做计算,每一次展示至少需要十几秒甚至几分钟(对于复杂的查询甚至要十几分钟),这对于前端的使用者体验非常不好;

Super-fase, Parallel, In-memeory, Calculation Engine - SPICEQuickSight的内存计算引擎,使用SPICE可以将数据加载到内存里,这样会大大加快报表展示的速度:

image-20221028073332786

接下来我们将重新创建一个数据集,使用SPICE来加速Quicksight展示的速度:

image-20221031091148612

数据源依然选择Redshift,连接方式以及SQL查询语句和上面一样:

image-20221031091217558

在最后完成创建的部分,选择Import to SPICE for quicker analytics:

image-20221031091255861

创建数据源完成后,会有一个初始化的过程,这时Quicksight会从Redshift中读取全量数据,加载到内存中:

image-20221031091322490

此时查看Redshift的监控,会发现有一条unload语句在执行:

image-20221031091351282

等待一段时间后,数据加载完成:

image-20221031091417973

此时对报表进行展示,发现速度大大提升,基本在一秒左右就能展示出来:

image-20221031091432552