本实验演示通过 Athena 和 Glue 构建数据表的过程。
构建数据表
准备数据库和表
登录并打开 Glue 控制台,点击左侧菜单栏“数据库”
点击“添加数据库”按钮,名称为:athenadb
创建完毕后,点击 athenadb 数据库,并选择“athenadb中的表”
点击“使用爬网程序添加表”,名称为athenadbcrawler
在“包含路径”里面,选择 Lab2 的 EMR 输出目录
选择对应 IAM Role
选择数据库“athenadb”,添加表前缀:athena_
,点击下一步
点击完成后运行爬网程序,点击“表”查看 确认,athena_output
已经在里面(如果上一个实验的设置不一样,那么也许这个名字略微有点区别)
构建表
登录并进入 Athena 控制台,在左侧菜单,选择 AwsDataCatalog,在 Database 选择athenadb,可以看到athena_output 表
在右上角的“设置”里面配置好查询结果路径到 S3 的目录,建议在 bucket 里面建目录 athena-result
执行SQL语句
SELECT * FROM athena_output limit 10
如果“运行查询”的按钮是灰色的,可以直接使用 Ctrl + Enter 运行查询,然后很快就可以看到实时查询结果
使用如下 sql 构建按日期的销售额(为了防止数据不均衡导致图比例尺严重失调,我们去掉了流数据的日期的交易额,此处为2021-03-19
)
SELECT sum(price*tnum) AS total_revenue,
tdate
FROM athena_output
WHERE tdate<>'2021-03-19'
GROUP BY tdate;
把他保存成表
名称是:revenue_day_view
用如下 sql 查询并保存成表:revenue_pclass_view
,过程略
SELECT sum(price*tnum) AS total_revenue,
pclass
FROM athena_output
GROUP BY pclass;
用如下sql查询并保存成表:revenue_city_view
,过程略
SELECT sum(price*tnum) AS total_revenue,
acity
FROM athena_output
GROUP BY acity;
表构建完毕后如下图所示
恭喜你,表构建完毕,可以开始可视化了。
数据可视化
因为我没有购买 QuickSight,所以把别人的过程截图下来
第一次使用Quicksight的配置
如果是第一次使用,需要先启用 Quicksight 服务
选择企业版并继续
选择对应区域,以及对应的账号名字,接受提醒的邮箱地址等
必须勾选 Athena 和 S3 支持,当选择 S3 支持的时候,在弹出的窗口中把对应的桶选上(此处的 S3 桶仅供参考,请以实际的数据为准)
构建图表展示
登录控制台后,点击左侧菜单数据集
点击 新数据集,选择 Athena
输入athena_ds,点击创建数据源
选择 athenadb,选择revenue_day_view
,点击选择
选择 “直接查询您的数据”
在可视化界面,视觉对象类型选择垂直条形图,在字段列表选择 tdate,值选择 total_revenuw。可以查看到按日期统计的销售额
熟悉图形化界面操作的学员可以做各种类型的图表试试看,此处不再一一演示。