在本练习中,您将学习如何使用Redshift和Amazon QuickSight平台构建数据可视化应用程序。您将看到如何使用Amazon的数据仓库从数据湖中装载数据,并用完全托管的数据可视化工具进行展现。
本实验的目标包括:
- 1、 创建Redshift集群
- 2、 将S3的数据文件批量装载到Redshift数据库
- 3、 使用Quicksight对数据表进行可视化
本实验的架构图如下
![image-20210320135740643](https://img-blog.csdnimg.cn/img_convert/b94b23e943aad736cfd69f6382f37da3.png)
构建数据仓库
1.查看数据
查看 S3 桶(此处为 s3://lab-921283538843-wzlinux-com/spark/output
)内的 EMR 实验中生成的parquet 格式文件是否存在。
![image-20210320135932095](https://img-blog.csdnimg.cn/img_convert/80a0aaceb503af368423abdcd41a5b98.png)
2.创建 IAM Role
选择 IAM 服务,点击角色->创建角色,选择 Redshift
![image-20210320140034950](https://img-blog.csdnimg.cn/img_convert/44ed8079d9d2272789151723a583f2a7.png)
选择 Redshift-Customizable,点击下一步权限
![image-20210320140109645](https://img-blog.csdnimg.cn/img_convert/5350cf64dcf9f04939891009fa499302.png)
选择权限 AmazonS3ReadOnlyAccess
![image-20210320140136981](https://img-blog.csdnimg.cn/img_convert/35353605022d89c9caa8099583accda5.png)
添加权限名字 myRedshiftRole,点击确认
![image-20210320140206805](https://img-blog.csdnimg.cn/img_convert/eeac823d6437ad133dbe42f2545b9f26.png)
3.创建子网组
创建 Redshift 集群前,先创建子网组。选择 Redshift 服务,在左边菜单条中选择“CONFIG”->”管理子网组“
![image-20210320140333267](https://img-blog.csdnimg.cn/img_convert/614c94cd8ace013783ad34edc5ad043b.png)
然后选择“创建集群子网组”,子网组名称可接受缺省名字“cluster-subnet-group-1“,在描述框中输入任意说明文字。选择“默认VPC”,选择“为此 VPC 添加所有子网“,然后点击“创建集群子网组”完成创建子网组。
![image-20210320140432628](https://img-blog.csdnimg.cn/img_convert/3c9fef9b29731166ba2ba1fb28cce889.png)
4.创建 Redshift 集群
在左侧菜单中选择“集群”,点击“创建集群“,设置集群的名字(不要用中文,不要用特殊字符,英文开头,可以有数字,可以有减号),节点类型选择 dc2.large
![image-20210320140610586](https://img-blog.csdnimg.cn/img_convert/e5d4a6ac1256ecea2c3964adfba32506.png)
数据库配置接受缺省值,输入主用户密码(请记住您输入的密码)
![image-20210320140856650](https://img-blog.csdnimg.cn/img_convert/d1b99a5af86a277b793980908affff70.png)
集群权限中,选择前面创建的 myRedshiftRole 角色,点击“Associate IAM role”
![image-20210320194526535](https://img-blog.csdnimg.cn/img_convert/bd17484f846d0dd459647b32f258a609.png)
其它配置中,选择默认 VPC,缺省安全组和之前创建的集群子网组,点击确认“创建集群”,大约5分钟后,集群变为“Available”状态。
5.访问 Redshift 数据库
有两种方式访问 Redshift 数据库,一种是通过 Redshift Console 上的查询编辑器,一种是通过 SQL 客户端(例如 SQL Workbench/J 客户端)。
本实验中为了简便操作,使用 Redshift Console 上的查询编辑器来访问数据库。选择左边菜单中“编辑器”,在“连接到数据库”窗口中输入一下参数,然后“连接到数据库”
![image-20210320141404147](https://img-blog.csdnimg.cn/img_convert/3ecff02b45480c06479e88be05bf7182.png)
6.创建表
在查询编辑器中创建表,在左边Select Schema中选择“Public”,然后在SQL查询窗口中输入创建表的SQL语句:
create table table1(
tno varchar(20),
tdate varchar(15),
uno varchar(10),
pno varchar(10),
tnum int,
uname varchar(20),
umobile varchar(20),
ano varchar(20),
acity varchar(50),
aname varchar(50),
pclass varchar(10),
pname varchar(50),
price decimal(10, 2)
);
如下图所示
![image-20210320141517613](https://img-blog.csdnimg.cn/img_convert/2fcc52be1dde6c2b15f56985c38736eb.png)
选择“运行”,结果应该显示”Completed”
7.导入S3数据
新开一个 SQL 查询窗口(此处为 Query 2),输入下面装载 S3 数据的 SQL 命令,注意要将帐号替换为实际的帐号 ID,并确认争取的 S3 桶地址。
copy table1 from 's3://lab-921283538843-wzlinux-com/spark/output/'
credentials 'aws_iam_role=arn:aws:iam::921283538843:role/myRedshiftRole'
format as parquet;
如下图所示
![image-20210320195005679](https://img-blog.csdnimg.cn/img_convert/c25504b851677a71834e16a59daf4c08.png)
点击运行,结果应显示为“Completed”。在 Query3中 输入”select from table1;”应查询中表中的数据。在Query4 中输入“select count() from table1; “,应查询到表中的数据。这说明 S3 中的数据已完成 copy 到 Redshift 数据仓库中。
![image-20210320202703451](https://img-blog.csdnimg.cn/img_convert/a6906c70634e602a48f88f07fb21bce2.png)
8.允许 Internet 访问
下一步,我们将使用 AWS Quicksight 将 Redshift 中的数据进行可视化展现。在此之前,需要给予 Quicksight 从 Internet 访问 Redshift 的权限。为此,我们先在 EC2 菜单中创建一个公网的弹性 IP 地址(过程略)。然后修改 Redshift 属性,赋予公开访问权限。
![image-20210320202959325](https://img-blog.csdnimg.cn/img_convert/67e995758df0076e6e841f43c47aa87e.png)
将可公开访问改成“是”,选择对应的弹性公网 IP 地址即可。
![image-20210320203019533](https://img-blog.csdnimg.cn/img_convert/258ad86f89a40dfecd1bac8a189c819c.png)
此操作需要一点时间,略微等待几分钟即可。
数据可视化
1.启用 Quicksight
关于启用 Quicksight 这里不再介绍,可以观看 Lab3。
2.创建数据集
进入Quicksight控制台界面,点击左侧数据集,选择创建“新数据集”
![image-20210320203332064](https://img-blog.csdnimg.cn/img_convert/9b277b3b77d1324d2bc87c00c55aafa9.png)
选择 Redshift(自动发现)数据集,Redshift 也有手动连接的方式,不过此处我们不演示
![image-20210320203413509](https://img-blog.csdnimg.cn/img_convert/55674a561c33e80c8edd1d8fee27d07a.png)
输入连接参数,选择“创建 data source”,选择对应的 Redshift 数据库,注意配置对应的地址,端口,数据库名称,用户名和密码
![image-20210320203516186](https://img-blog.csdnimg.cn/img_convert/f3d6ccfa61995d8dce8ee5437a63f3aa.png)
选择 Table1,点击“Select”,最后点击“Virtualize”完成创建数据集(此处我们选择把数据从 Redshift 导入到 Quicksigh 里面来,这样分析起来速度会快很多)
![image-20210320203709754](https://img-blog.csdnimg.cn/img_convert/1dc0964040b009d4cc4165c2640ba6d6.png)
3.数据可视化
打开可视化对象窗口,选择展现方式为“竖条状图“
![image-20210320203815481](https://img-blog.csdnimg.cn/img_convert/0e98be4ad1fc36bf66cbb80a5e7eacd7.png)
将 tdate
拖放到 X axis
栏,将 tnum
拖动到 value
栏(系统会自动选择计数)
![image-20210320204047396](https://img-blog.csdnimg.cn/img_convert/4bbeb5ace6cb14f8392c674e5329d5fd.png)
这样就完成了“以日期为X轴,以当天的总销售数量为Y轴从高到低的排名”展现。
欢迎大家扫码关注,获取更多信息
![AWS 大数据实战 Lab6 - 数据仓库和可视化(六)](https://img-blog.csdnimg.cn/img_convert/4ac0287f88b011debb5ccb2e7efc9258.png)