Github实时数据分析与可视化训练营:课时1:Github实时数据分析与可视化
课程地址:https://developer.aliyun.com/trainingcamp/12458c0a699747a6a1c239ef6818954b
Github实时数据分析与可视化
内容介绍
一、教程简介
二、准备环境和资源
三、导入实时数据
四、实时同步数据至Hologress
五、实时数据分析和可视化
六、(可选)历史离线数据分析
七、附录
八、完成
九、清理及后续
十、示例演示
一、教程简介
今天来给大家讲解一下如何基于阿里云的产品,实时分析github的公开数据,然后给这些数据做可视化。整个实验基本上是基个github的公开数据集。我们会通过dataworks,把这些公开数据同步到hello gress里面,进行实时的分析。会把这些分析通过hello gress直接对接到dataV的大屏,可以完成最终的可视化数据大屏的效果。
这个大屏上面所有的数据都是在实时更新的。比如今天的一些github公开事件,过去一小时top的编程语言,过去24小时的活跃项目的统计。这些都是会做实时的滚动更新。
接下来给大家讲解一些教程里不比较容易忽略的重要注意事项,还会在核心演示一些操作步骤,接下来进入教程。
二、准备环境和资源
首先一些准备环境和资源,这里需要开通一些产品。最开始肯定需要有一个阿里云账号,需要创建一下AK,需要创建一下连接的网络和交换机。这需要注意一下,因为整个实验基本上各个产品都开通在上海,所以大家开的地域一定要选择上海。然后在创建专有网络的时候,因为Hologress的可用区是在上海的可用区E,所以在创建VBC和专用网络的时候,也注意需要选择在上海可用区E来创建。
然后是申请Hologress的免费试用。我们默认提供的是八核32。因为Hologress提供的是5000的CU时,也意味着如果开的是八核32G的那每小时就会消耗八个cu小时。大概免费额度能够用六百多个小时,还有稍微性能更快一点的32靠的选项,如果你只领用32靠的话,5000CU时大概能用一百多个小时左右,这个看具体的需求。
参数 |
示例值 |
地域
|
华东2(上海)
|
实例类型 |
通用型
|
计算资源 |
B核32GB (计算节点数量: 1)
|
专有网络
|
选择已创建的VPC
|
专有网络交换机
|
选择已创建的交换机。
|
实例名称
|
hologres_test
|
资源组
|
默认资源组 |
我们可以申请一下maxcomputer,maxcomputer后续可以用来做离线的查询和分析。hello grass偏实时,偏o lap分析一点。接下来开通data words。data words首先会开通按量付费,也是选上海的region。然后会有免费的试用,就是data words有八核16G的独享数据集成资源组。通过数据集成资源组,我们可以把mysql的数据实时同步到Hologress来进行分析。最后需要开通一下data v帮助后面搭可视化大屏来做使用。这些就是需要开通的产品。
三、导入实时数据
接下来第一步骤就是要导入一些实时的数据。刚才购买完Hologress之后,在Hologress的管控台能看到Hologress的实例。我们登录这个实例,需要第一步是新建一个数据库。这个数据库的名称你可以自己命名,然后权限就选默认的SPM就可以了。
参数 |
说明 |
实例名
数据库名称
简单权限策略
立即登录
|
选择在哪个Hologres实例上创建数据库。默认展示当前已登录实例的名称,您也可以在下拉框中选择其他Hologres实例.
本示例数据库名称设置为 holo tutorial
选择默认的SPM。更多关于权限策略的说明,请参见: ·SPM: 简单权限模型,该权限模型授权是以DB为粒度,划分admin(管理员)、develper开发者)wrter(读写者)以及vewer(分师)四种角色,您可以通过少量的权限管理函数,即可对DB中的对象进行方便且安全的权限管理。 ·SLPM:基于Schema级别的简单权限模型,该权限模型以Schema为拉度,划分 <db>,admin (DB管理员) 、db>,schema>,developer(开发者)、db2.cschema>.writer (读写者)以及 <db>cschema>.viewer (分析师),相比于简单权限模型更为细粒度 专家: Hologres兼容PostgreSQL,使用与Postgres完全一致的权限系统。 选择是。
|
接下来会新建一张Hologress 的内部表,用标准的建表语句。holagres_dataset_github_event.hologres_github_event是我们建的表,接下来会把get up 的数据同步到这张表里面。这张表需要注意的是,前面是西格玛的名字,后面是表明。需要注意一下,后面做同步的时候会用到。然后把这个建表语句在hello web 中运行一下就可以了,那这张表就建好了。
四、实时同步数据至 Hologress
接下来进入实时同步的步骤。首先同步是通过data words 来进行的。我们刚才购买了data words 的独享数据集成资源组。需要把刚才创建的专有网络和独享数据集成资源组做一个绑定。这里面可以看一下,把刚才创建的VBC,还有交换机安全组都绑定一下。
学数 |
说明 |
资源组名称 |
默认为目标独享数据集成资源组的名称 |
专有网络 |
选择上述已创建的VPC专有网络 |
可用区 |
选择VPC专有网络所在的可用区 |
交换机 |
选择上述已创建的交换机 |
安全组 |
选择上述已创建的安全组 |
绑定完成后就可以进入数据集成的首页,然后直接新建一个同步任务。这个同步任务是从mysql 到Hologress,这个mysql 是提供的公共的mysql 大家不需要去购买和创建。Hologress就是刚才大家自己开通的。
曾数 |
说明 |
新任务名称 |
自定义。本文以data_test为例 |
选择数据源 |
来源端: 选择MySQL。 目的端: 选择Hologres. |
然后可以看到新建数据源的时候,直接把公共的数据源的信息填进去就好。已经把get hub 的数据实时同步到mysql。所以创建任务完成之后,就可以把数据实时从mysql 捞过去。这个是已经给大家准备好的公共的数据源。这个公共数据源需要提醒一下,因为这些都是实时同步。大家试用的时候都会连接到这个mysql。和mysql 的这个连接差不多在七天左右会进行释放,才能保证大家都能够稳定连接公共数据源。但是如果你自己创建了自己的mysql,去连接其实是不影响的。我们只会释放公共mysql 数据源的连接。去向的话是按照Hologress的相关信息填进去就好了。
曾数 |
说明 |
数据源类型 |
选择连接串模式 |
数据源名称 |
自定义。本文以mysqlData为例。 |
JDBC URL |
jdbc:mysql://rm-bp1z69dodhh85z9qa.mysqlrds.aliyuncs.com:3306/github_events_share |
用户名 |
workshop |
密码 |
workshop#2017 此密码仅为本教程示例,请勿在实际业务中使用, |
认证选项 |
无认证。 |
这个填进完之后,测试网络联通,接下来就会选择刚才公共mysql 中的github表。在这里最核心的步骤是要批量刷新一下映射。把原先mysql 中的表结构信息映射到刚才创建的Hologress表中。
可以看到在这一步把目标的schema名改成了刚才在Hologress 当中创建表的schema名称。然后我们把目标表名改成了刚才创建的Hologress表的名称。你可以看到原先mysql 和我们mysql 的叫法叫hologres_dataset_github_event和在Hologress中创建的表名称是不一样的,所以我们要修改一下。修改完成之后,就可以启动任务了。
任务大概要启动5到10分钟。因为我们在公共的mysql是保留了近七天的数据的,如果要把七天全量数据都同步过来,同时进行实时写入的话,会需要一点时间。大概整个数据有有一亿多条,所以大概需要等5到10分钟能够把任务同步完成。同步完成之后,就开始实时写入了,前往Hologress做实时的分析。
五、实时数据分析和可视化
下一步在Hologress里面,通过SQL编编程器,直接运行SQL就能够查到过去24小时github最活跃的项目。
SELECT
repo_namer
COUNT(*) AS events
FROM
hologres_dataset_github_event.hologres_github_event
WHERE
created_at >= now() - interval '1 day!
GROUP BY
repo_name
ORDER BY
events DESC
LIMIT 5;
当然数据集可以基于你自己的想分析的东西自己玩。在原数据管理中,可以看到一些原数据相关的信息,你想分析什么结果你可以按照自己的想法去写、直接去跑、去查询就可以。后面因为对接data v的时候,会有好多样例的SQL也会放在后续的SQL口的附录中,大家可以去看一下,实时分析基本上就是在Hologress中完成。接下来会通过data v来做实时的数据可视化。然后把hello boss添加为DDP的数据源,在data的控制台已经有大屏的模板,不需要自己去搭大屏或者去设计。
只需要利用这个模板,然后把Hologress数据源给连接上就可以,但是需要选择的地方会比较多。每一个数字都需要更新一下,这个数据源大概有15处,到时候演示一下大家按照这个去更新就可以。直接更新完成之后,预览就能够直接看到实时的更新大屏。
这样基本上就可以把github的数据集,不管它的实时查询分析,可视化的搭建基本上就已经完成了。