基于MaxCompute的热门话题分析
1. 创建资源
开始实验之前,您需要先创建实验相关资源。
在实验室页面,单击创建资源。
(可选)在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如IP地址、子用户信息等)。
说明:资源创建过程需要3~5分钟(视资源不同开通时间有所差异,ACK等资源开通时间较长)。完成实验资源的创建后,您可以在云产品资源列表查看已创建的资源信息,例如:子用户名称、子用户密码、AK ID、AK Secret、资源中的项目名称等。
实验环境一旦开始创建则进入计时阶段,建议学员先基本了解实验具体的步骤、目的,真正开始做实验时再进行创建。
资源创建成功,可在左侧的资源卡片中查看相关资源信息以及RAM子账号信息
2. 登录阿里云控制台
双击打开虚拟桌面的Chromium浏览器。
在RAM用户登录框中单击下一步,并复制粘贴页面左上角的子用户密码到用户密码输入框,单击登录。
返回如下页面,表示您已成功登录阿里云控制台。
3. 上传数据
上传数据之前需要先进入DataWorks控制台,创建表,再往表中导入数据。
首先我们进入DataWorks工作空间
单击左上角的 图标,弹出菜单。
在菜单栏的中间部位,单击大数据开发治理平台DataWorks。
在左侧导航栏中,单击工作空间列表。
在工作空间列表页面顶部,选择资源所在地域。例如下图中,地域切换为华东2(上海)。
说明:您可在云资源产品列表中查看实验室分配的DataWorks资源所在地域。
在工作空间列表页面,单击数据开发,进入开发界面。
在数据开发页面,需要创建一个ODPS SQL查询,ODPS即MaxCompute的别名。
6.1 在左侧导航栏中,单击临时查询。
6.2 在临时查询面板,单击上方加号按钮。
6.3 在下拉菜单栏中,单击新建。
6.4 在次级菜单栏中,单击ODPS SQL。
新建节点。
7.1 在新建节点对话框中,路劲选择临时查询。
7.2 给节点自定义任意名称,比如临时SQL 。
7.3 单击确认。
创建好临时查询后,下面创建数据表。
CREATE TABLE `ttext` ( `ttext_id` string, `user_id` string, `user_name` string, `user_age` int, `gender` string, `city_name` string, `created_at` datetime , `ttitle` string, `reposts_count` int, `comments_count` int, `attitudes_count` int )
通过以上SQL代码可以创建一个承载数据的表格。
8.1 将上述SQL代码复制粘贴到临时SQL的窗口中
8.2 单击上方运行按钮运行代码,如有弹框直接允许。
8.3 观察下面的日志,如下图中所示则创建完毕(此步骤无需操作)
创建好表格后,下面我们导入数据。
9.1 复制下方地址,在Chromium网页浏览器中,打开新页签,粘贴并访问,下载数据。
https://files.alicdn.com/tpsservice/b9f833b45bc3aec88506e97f36e1f6c9.csv
9.2 在左侧导航栏中,单击表管理。
9.3 在表管理面板,单击上方导入按钮。
9.4 在将本地数据导入开发表对话框中,至少输入待查询的表前三个字母tte,会弹出ttext表。
9.5 单击下一步。
导入开发表设置。
10.1 浏览本地数据CSV,在下载目录中双击刚刚下载好的数据文件。
10.2 选择UTF-8字符集。
10.3 首行为标题选择是。
10.4 单击下一步。
导入开发表设置字段匹配。
11.1 选择按位置匹配,由于建表和CSV文件是提前准备好的,故按位置匹配即可。
11.2 单击导入数据。
导入数据大约需要1~2分钟时间,请耐心等待。
4. 进行热点话题分析
需求1:2017年10月发送推文最多的10个城市是哪几个?这几个城市的用户共计发送了多少条推文?
执行SQL。
1.1 将如下SQL代码,复制粘贴到临时SQL的窗口中,单击上方运行按钮运行代码,如有弹框直接允许。
CREATE TABLE city_top as SELECT city_name, COUNT(ttext_id) as tempnum FROM `ttext` GROUP BY city_name ORDER BY tempnum desc limit 10
1.2 SQL解释:该SQL会查询各个城市各有多少条推文数量,并降序显示前十名的城市和推文数量,最后
把查询的前十名数据存储到一个叫做city_top的表中,便于下一步做可视化。
创建的city_top表可以在公共表处查询,如果您的界面没有公共表可根据如下操作进行开启。
2.1 在左侧导航栏中,单击左下角设置按钮。
2.2 在设置页面的模块管理区域,单击公共表。
在左侧导航栏中,此时您可以看到公共表按钮,查询city_top表。
3.1 在左侧导航栏中,单击公共表。
3.2 在公共表面板的查询输入框中,至少输入3个字母可查询表,例如输入cit,即可查询city_top表。
3.3 看到查询到的city_top表,并双击。
3.4 单击数据预览,查看数据。
需求2:2017年10月所有用户中性别男女比例是多少?
执行SQL。
1.1 将如下SQL代码,复制粘贴到临时SQL的窗口中,单击上方运行按钮运行代码,如有弹框直接允许。
CREATE TABLE gender_num as SELECT `gender` , COUNT(gender) as tempnum FROM `ttext` GROUP BY `gender`
1.2 SQL解释:按照性别分别查询男女的推文数量,并存储到gender_num的表中,便于下一步做可视化。
在公共表面板中,查询gender_num表。
2.1 在公共表面板的查询输入框中,至少输入3个字母可查询表,例如输入gen,即可查询gender_num表。
2.2 看到查询到的gender_num表,并双击。
2.3 单击数据预览,查看数据。
需求3:2017年10月所有用户年龄分布图集中趋势如何?
执行SQL。
1.1 将如下SQL代码,复制粘贴到临时SQL的窗口中,单击上方运行按钮运行代码,如有弹框直接允许。
CREATE TABLE age_num as SELECT `user_age` , COUNT(user_age) FROM `ttext` GROUP BY `user_age` ORDER BY `user_age` LIMIT 100
1.2 SQL解释:按照年龄分组查询各个年龄的用户总数,并按照年龄排序,最后存储到age_num的表中,便于下一步做可视化。
在公共表面板中,查询age_num表。
2.1 在公共表面板的查询输入框中,至少输入3个字母可查询表,例如输入age,即可查询age_num表。
2.2 看到查询到的age_num表,并双击。
2.3 单击数据预览,查看数据。
需求4:2017年10月哪些事件在互联网上热议,最热门的三个事件是什么
1、诺贝尔奖
2、麦当劳改名金拱门
3、十九大召开
4、拉斯维加斯持枪杀人事件
5、美国退出联合国教科文组织
6、鹿晗新女友
7、羞羞的铁拳上映
热门话题关键字:诺贝尔,金拱门,十九大,拉斯维加斯,教科文,鹿晗,羞羞铁拳。
执行创建hot_topic表的SQL代码。
1.1 将如下SQL代码,复制粘贴到临时SQL的窗口中,单击上方运行按钮运行代码,如有弹框直接允许。
CREATE TABLE hot_topic ( ttitle STRING, ttitle_num bigint );
1.2 SQL解释:创建一个用来存储热门话题的数据表
执行向hot_topic表插入数据的SQL代码。
2.1 将如下SQL代码,复制粘贴到临时SQL的窗口中,单击上方运行按钮运行代码,如有弹框直接允许。
INSERT INTO hot_topic SELECT"诺贝尔", COUNT(ttitle) FROM `ttext` WHERE ttitle like '%诺贝尔%'
2.2 SQL解释:针对不同的热门话题关键字分别执行查询并将结果存储到刚才创建的表中,以上代码需要编写7次执行7次,每次针对不同的关键字,最终将在hot_topic形成7条数据
在公共表面板中,查询hot_topic表。
2.1 在公共表面板的查询输入框中,至少输入3个字母可查询表,例如输入hot,即可查询hot_topic表。
2.2 看到查询到的hot_topic表,并双击。
2.3 单击数据预览,查看数据。
需求5:最热门的话题是哪个年龄段的用户讨论的
执行SQL。
1.1 将如下SQL代码,复制粘贴到临时SQL的窗口中,单击上方运行按钮运行代码,如有弹框直接允许。
CREATE TABLE hot_topic_age_num as SELECT `user_age` , COUNT(user_age) FROM `ttext` WHERE ttitle LIKE '%十九大%' GROUP BY `user_age` ORDER BY `user_age` LIMIT 100
1.2 SQL解释:在需求3的基础上,增加一个条件查询,限制话题是“十九大”的话题,然后再统计年龄分布。
在公共表面板中,查询hot_topic_age_num表。
2.1 在公共表面板的查询输入框中,至少输入3个字母可查询表,例如输入hot,即可查询hot_topic_age_num表。
2.2 看到查询到的hot_topic_age_num表,并双击。
2.3 单击数据预览,查看数据。
5. 数据可视化
本实验中使用的可视化功能基于DataWorks自带的电子表格的可视化功能。
首先需要打开电子表格。在左上角,单击 菜单图标,选择电子表格来制作可视化。
在电子表格页面,单击新建电子表格。
导入数据,导入的数据实际上就是我们前面从MaxCompute上分析得出的结论数据。
3.1 复制下方地址,在Chromium网页浏览器中,打开新页签,粘贴并访问,下载数据。
https://files.alicdn.com/tpsservice/3af99496968aa19075252ce864061773.xlsx
3.在右上角选择导入>本地文件,在下载目录中双击刚刚下载的数据文件。
3.3 导入数据后可以从下面的标签页来切换5个需求的数据。
需求1:2017年10月发送推文最多的10个城市是哪几个?这几个城市的用户共计发送了多少条推文?
在城市top10页签,选中所有数据。
在上方菜单栏中,单击柱状图。
需求2:2017年10月所有用户中性别男女比例是多少?
在性别分布页签,选中所有数据。
在上方菜单栏中,单击饼状图。
需求3:2017年10月所有用户年龄分布图集中趋势如何?
在年龄分布页签,选中所有数据。
在上方菜单栏中,单击折线图。
我们观察到推文主要是13~45岁之间的用户发送。
需求4:2017年10月哪些事件在互联网上热议,最热门的三个事件是什么
在热门话题页签,选中所有数据。
在上方菜单栏中,单击条形图。
我们观察到最热门的话题是“十九大”。
需求5:2017年10月最热门的话题是哪个年龄段的用户讨论的
在热门话题年龄分布页签,选中所有数据。
在上方菜单栏中,单击折线图。
我们观察到讨论热门话题“十九大”的年龄分布是26~45岁,比所有话题的年龄分布偏大。
至此实验完毕,谢谢大家 !
实验链接:https://developer.aliyun.com/adc/scenario/9d85b0720e0f40c9bcf1fe3c91824a13