课时1:使用Flink实时发现最热Github项目

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
简介: 课时1:使用Flink实时发现最热Github项目

Flink-Learning训练营:课时1:使用Flink实时发现最热Github项目

课程地址:https://developer.aliyun.com/trainingcamp/0bcc1ab57cf841a2af632d6252fecbab

使用flink实时发现最热Github项目

 

内容简介

一、实验准备

二、实验内容

 

一、实验准备

在进行实验前,需要我们开通阿里云实时计算flink版免费试用,在开通之后,我将和大家一起通过flink对get hub的实时事件流进行分析,并通过报表直观展示了解git HUB的最新热门趋势。特定仓库或者组织的活跃度,操作完本实验后,您将能够对flink  SQL基础能力和Flink实施处理特性有直观的初步体验

1.开通步骤

图片1.png

要开通实时计算flink版试用,首先我需要我们借用阿里云试用中心链接http://free.aliyun.com/?crowd=enterpise&pipCode=sc ,点击就会出现试用的卡片,然后我们点击立即试用这个按键即可开通试用,当开通试用之后我们就进入产品控制台开始实验本次实验我将会带领,大家介绍一下什么是git hub公开数据集,然后接着通过三个小实验,然后将结果通过报表展示进行分析,看看会不会有一些有意思的结论

2.git hub公开数据集的介绍

图片2.png

git hub公开数据集的链接为http://www.gharchiye.org/  我们点进去就可以跳转到官方地址看啊,在这里我们可以看到一些详细的介绍git hub公开数据集是git hub提供的一个开放数据集合,它包含了每个公共仓库的事件数据,git hub公开数据集的数据可以用与各种类型的研究和分析,例如开源社区的写作情况,开发者的行为特征,编程语言的发展趋势等等,使开发者能更好的了解git hub上的活动和趋势并从中获取有价值的信息,每一条数据都是git hub仓库进行的各种操作活动事件,其中包含了仓库名称用户名组织名称和操作事件类型,操作事件类型的地址GitHub event types,我们点击跳转过去就可以看到有很多种操作事件,比如说我们fork一个仓库的时候就会请求一个fork invent被记录下来,当我们对一个仓库进行star的时候,一个watch invent就会被记录下来。本次实验数据就是将GH数据集的数据实时同步到SLS日志中,以供我们的实验使用

 

二、实验内容

实验一 、如何实施发现GitHub最热项目

接下来我们开始第一项实验,如何实时发现GitHub最热项目,我将和大家一起在vap平台上进行操作。

首先,我们进入vap平台,在进行作业开发之前,我们需要先创建Session集群,只有flink集群存在了,才能执行具体的任务。在本次实验中,我们需要开启circle previews。开启circle preview之后我们就不需要指定具体的think,而是能直接将select结果进行输出,然后通过简单的报表配置,就能够将结果直白的展现出来。只要我们进行作业开发,首先我们通过ddl创建一个ss原表。

这是一个临时表,里面的字段与ss日志里面的字段是一一对应的,我们通过ss connect进行连接,然后指定它的存放数据的ss项目以及对应的lock store,然后指定网络,指定它的连接key,并且每批最多读取500的数据,开始时间为6月1日,这个start time就是消费SSLOG从哪个时间段开始,如果不指定的话就默认消费最新的数据,再进设置的时候数据尽量设置近一点,比如说你要统计一周的数据,你就将数据尽量放在一周偏前面一点点。因为前期无效计算会耗费的时间比较长,结果一直无法输出。我们通过开启mini batch和作业并发,然后加速它的计算速度,我们看看具体的业务代码。因为star数最能反映项目的热度,所以我们这边tab采用是watch event,并且为了统计某个仓库一天之内的数据量,我们就按照天仓库名进行分组,统计一天之内的总量,然后进行排序,选择前五项我们验证一下SQL是否正确验证通过,我们就开始执行。

执行时结果可以多种格式进行输出,比如说我们可以通过简单的报表输出,因为这边是排行榜,我希望更直观的展示我就采用这个y8。使用y8的时候,我需要设置y轴表示是数量x轴我需要转换的是仓库名,所以这边那个group办我就设置成People name就能够直观的展示,然后数据就源源不断的被计算。我们看一看我得到的数据,

图片3.png

可以看到第一名和第五名都是AI视频换脸。第二名和第四名都是大模型相关的。而第三名的是大麦网抢票,可能最近的演唱会比较多,目前由于热度太高,可能创作者担心涉及到侵权,目前已经停止维护。根据这些结果,可以看到,在过去一周内AI是GitHub技术关注的领域,其中最受关注的子方向就是AI视频换脸和大模型。

 

实验二   全球化协作让Apache更有活力

实验二希望从orgnize即从组织的角度出发,看一个组织在一段时间内的和活跃度变化趋势,为了使结果更加明显,我这边选取了GitHub 比较活跃的组织,比如Apache开源组织,比如说阿里巴巴,看他们在一天之内的活跃度变化,总结出一些有意思的规律。我们再次回到VIP平台,首先将上一次的任务停止。我这边之所以停止,是因为我这边C型集群设置的CPU数比较少,一个任务基本就占据的差不多,无法启动第二个任务,如果你这边绑定的CPU数比较多的话,其实是可以同时执行多个任务的,然后进入作业二。

第二个任务的Ttl和第一个任务基本基本相同,唯一的区别就是start time是不相同的。由6月1日变成6月7日,其从最终的结果来看是没有区别的,因为在vr条件中已经将早于一天前的数据进行过滤。虽然结果不同,中间六天的无效数据还是要流经Flink进行计算的,耗费的资源比较长,耗费的无效时间比较长,如果设成6月1日,你会发现很长一段时间内没有数据写入。

那我们来具体看一下circle,我这边统计Apache这个组织从昨天这个时候开始的,事件总量进行count。因为要统计一个总量,这边没有设置具体的事件类型。为什么要这个node呢?这个node其实是个无效值,但是不加这个node的话,仅仅是这两项,输出的结果只有一个值,我希望以折线图的形式来进行展示。所以需要一个历史的累加值,所以说这边设置now之后它会显示一个累加值,我们进行执行。可以发现,数据也没有立马出来,这是因为当前时间已经昨天的下午六点,但这个时间设置成昨天下午两点,所以中间有四个小时的时间来进行无效的数据需要计算,不过也很快可以看确实是从昨天的六点开始计算。我这边希望以折线图的形式更加直观的显示这个变化,所以我们这边需要设置采用折线图。x轴就是时间y轴应该是采用的是事件总量。

因为这count放在这里,然后它就显示了我们想要的结果,可以看到数据是源源不断的过来的,所以说他这个图表是一直在变化的。如果我们想统计阿里巴巴将这边设置成阿里巴巴即可。我可以看到最终的结果,

图片4.png

最终结果Apache的折线图趋势在上面,阿里巴巴的折线图趋势在下面,这张图对比这两张图可以看到Apache作为一个全球化的开源组织,其实他的代码提交它的活跃度,使用量其实比较均匀的。但在阿里巴巴,其实它更多的侧重在在国内。可以看到它的趋势上九点之后,它的变化就非常平缓夜里基本就没有什么变化,在早上九点之后可以看到它的一个增长显著提升。

 

实验三 Flink&park的评论热力图

实验三希望以热度的形式来反映某个仓库或者某个组织在一段时间内的活跃度的具体的分布情况。我们回到VIP平台。

前面的代码基本没有任何区别,唯一的区别就是select语句,我们来具体看一下。所以我们希望反应每个小时的变化情况,所以就统计小时的总量,我们group by的时候根据天和小时进行group by,然后对每个小时进行统计。我们计算是从七天之前开始,早于七天之前的数据,我没将它过滤,统计的仓库是Apache flink,具体这些事件可以看到,不管是push代码还对push进行PR请求,或是对他进行review,企业ashol这些都是与开发者相关的一些动作,所以我们把它给放入其中。我们可以验证一下,失败报数说明表不存在,选定的这些,还有上面的这些detail,所以说如果全局的话,验证是没有问题的然后我们进行执行。执行和刚才一样,因为毕竟他是从两点开始的,如果对到七天前的,至少应该到下午六点,所以他还是需要一定时间的延迟。可以看到数据就开始出现了然后我们这边热力图可以看到group 代表是横轴,我们把它设置为comment date,他们在对着这其实都你是都可以把它设置为其他字段的。这些都是可以设置的,然后它的纵轴通过这个spring split by,我们按照小时来进行分配,然后每一个都代表一个统计的区域,然后数据颜色我们就通过comment countsum的用处不大,因为我们circle里面进行计算了,所以这么一个区域其实是只有一个值,就是具体的总量。其实这个sum就是对这个这一段时间区内出现的总数进行聚合,可以看到从一周前慢慢开始计算,一直计算最新的数据之后就源源不断的拉取新的数据。如果我们想要统计spark,只需要把它改成spark即可。如果统计总量,把这一段去掉即可。我们来看看最终的结果。

图片5.png

第一张表是flink,它的热在过去一周的热力图,第二张是Spark在过去中的热力图,最后一个是所有的仓库的热力图。从整体来看,可以看到白天的话,颜色比较浅,晚上的颜色比较深,所以按这个推断,国外开发者应该是更活跃国外的开发者肯总量加起来是比国内高的我。而spark flink可以看到,国内开发者是比较活跃。与spark相比,flink的开发者其实更侧重于国内,特别是在网上其实是比较淡的,有的甚至数据量非常少。而高峰期基本在下午,下午的两点到六点也符合国内开发者的工作黄金时间。
图片6.png然后6月3日到四日作为周末,可以看到flink基本没人工作,但是spark周末还是有好多人在卷,所以从这样看看起来flink开发者是比Spark开发者更会享受周末本次实验大致就是以上内容。

相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
|
3月前
|
JSON Kubernetes 安全
找到啦,我们已上车,Github 27000+ star,研发团队必备开源工具项目,真丝滑!!!
Trivy 是一款高效灵活的开源安全扫描工具,支持容器镜像、文件系统、Kubernetes 等多目标扫描,具备快速、易用、集成性强等特点,适用于 DevSecOps 全流程安全检测。
177 0
|
2月前
|
人工智能 JavaScript 前端开发
Github 2024-10-28 开源项目周报 Top15
本周GitHub热门项目涵盖Svelte、Open Interpreter、PowerShell等,涉及Web开发、AI助手、自动化工具等领域,Python、JavaScript为主流语言,展现开源技术活跃生态。(239字)
448 19
|
2月前
|
人工智能 JavaScript 前端开发
Github 2024-11-04 开源项目周报 Top14
本周GitHub热门项目涵盖屏幕截图转代码、网页监控、低代码开发等。Python与TypeScript主导,亮点项目包括AI生成代码工具、开源社交应用Bluesky及机器人框架LeRobot,展现AI与自动化技术的快速发展趋势。
212 15
|
2月前
|
人工智能 JavaScript Docker
Github 2024-11-11 开源项目周报 Top15
本周GitHub热门项目涵盖多领域:Python与TypeScript领跑,包括屏幕截图转代码、本地文件共享、PDF处理、AI开发代理等。亮点项目如screenshot-to-code、LocalSend、OpenHands及Diagrams,兼具创新与实用性,广受开发者关注。
278 13
|
2月前
|
人工智能 算法 JavaScript
Github 2024-10-14 开源项目周报 Top14
本周GitHub热门项目共14个,Python项目占7席。涵盖算法实现、生成式AI、金融分析、目标检测等领域,包括TheAlgorithms系列、OpenBB金融平台、Ultralytics YOLO11、Manim动画框架等,展现开源技术多元发展态势。
139 8
|
2月前
|
人工智能 Rust JavaScript
Github 2024-10-07 开源项目周报 Top15
本周GitHub热门项目共15个,Python项目占比最高达7个。榜首为Python算法实现集合TheAlgorithms/Python,Star数超17万;其他亮点包括Godot游戏引擎、OpenBB金融平台、ToolJet低代码框架及新兴AI相关项目如Crawl4AI、Llama Stack等,涵盖游戏、金融、AI、理财等多个领域。
143 4
|
2月前
|
人工智能 Rust 算法
Github 2024-09-30 开源项目周报 Top15
本周GitHub热门项目揭晓:Python主导,AutoGPT居首,涵盖AI、编程、数学动画等领域,助力开发者探索前沿技术。
147 4
|
2月前
|
人工智能 JavaScript 前端开发
Github 2024-09-16 开源项目周报 Top14
本周GitHub热门项目涵盖Python、TypeScript、Go等语言,React居首。亮点包括微软PowerToys、Node版本管理器、AI证件照工具HivisionIDPhotos及端侧大模型MiniCPM等。
128 2
|
2月前
|
Rust JavaScript 安全
Github 2024-09-02 开源项目周报 Top13
本周GitHub热门项目涵盖AI、开发工具与开源替代品。包括Notion替代AppFlowy、Airtable替代NocoDB、云平台Coolify及可观察性平台OpenObserve等,涉及Python、TypeScript、Rust等语言,聚焦效率、隐私与自动化。
188 1
|
3月前
|
人工智能 编解码 JSON
不看后悔!GitHub 开源 MultiTalk .8k star 强大的人语音+图像绑定项目
MultiTalk 是 GitHub 上的开源项目,具备音频驱动、多人对话视频生成功能。支持多路音频与图像绑定,实现高同步唇动与角色互动,适用于教学、虚拟人及短视频创作,已获 8k 星标。
337 0

相关产品

  • 实时计算 Flink版