1、使用Flink实时发现最热GitHub项目王洪顺(弘舜)阿里云开发工程师Streaming lakehouse meetup实验简介实验准备开通阿里云实时计算 Flink 版免费试用(5000CU*小时,相当于完成100次实验)操作完本实验后,您将能够:对Flink SQL基础能力和Flink实时处理特性有直观的初步体验重点内容通过Flink对GitHub的实时事件流进行分析,并通过报表直观展示,了解GitHub的最新热门趋势、特定仓库或者组织的活跃度。如何开通实时计算 Flink 版试用开通步骤1、进入阿里云试用中心:https:/ Flink 版 点击 立即试用3、进入产品控制台,开始实验
2、4、详细操作也可见:云起实验室扫码开通GitHub公开数据集介绍0101CONTENT目录 0202如何实时发现GitHub今日最热项目0303全球化协作让Apache社区充满活力0404Flink开发者比Spark更会“享受周末”01GitHub公开数据集介绍GH Archive在全球范围内,开源开发人员正在进行数百万个项目的编写、文档编写、错误修复和提交等工作。GH Archive 是一个记录公共 GitHub 时间线的项目,可以将其存档并使其易于访问,以便进行进一步的分析。https:/www.gharchive.org/数据格式该数据集记录了对 GitHub 仓库进行的各种操作活动事件
3、,包括仓库名称、用户名、组织名称、操作事件类型等信息。操作事件类型包括 ForkEvent、PushEvent(提交代码)、WatchEvent(star 仓库)等多种操作类型GitHub event types实验数据本次实验将 GH 数据集的数据实时同步到 SLS 日志中,以供实验使用。02如何实时发现GitHub最热项代码代码CREATE TEMPORARY TABLE gh_event(id STRING,-每个事件的唯ID。created_at BIGINT,-事件时间,单位秒。created_at_ts as TO_TIMESTAMP(created_at*1000),-事件时间戳
4、(当前会话时区下的时间戳,如:Asia/Shanghai)。type STRING,-Github事件类型,如:。ForkEvent,WatchEvent,IssuesEvent,CommitCommentEvent等。actor_id STRING,-Github户ID。actor_login STRING,-Github户名。repo_id STRING,-Github仓库ID。repo_name STRING,-Github仓库名,如:apache/flink,apache/spark,alibaba/fastjson等。org STRING,-Github组织ID。org_login
5、STRING-Github组织名,如:apache,google,alibaba等。)WITH(connector=sls,-实时采集的Github事件存放在阿云SLS中。project=github-events-shanghai,-存放公开数据的SLS项。例如github-events-hangzhou。endPoint=https:/cn-shanghai-,-公开数据仅限VVP通过私地址访问。例如https:/cn-hangzhou-。logStore=realtime-github-events,-存放公开数据的SLS logStore。accessId=LTAI5tNF1rP8PK
6、VyYjr9TKgh,-只读账号的AK。accessKey=FDgsh6fjSmkbFsx083tN6HOiqNVWTP,-只读账号的SK。batchGetSize=500,-批量读取数据,每批最多拉取500条。startTime=2023-05-30 00:00:00-开始时间,尽量设置到需要计算的时间附近,否则效计算的时间较);-配置开启mini-batch,每2s处理次。SET table.exec.mini-batch.enabled=true;SET table.exec.mini-batch.allow-latency=2s;SET table.exec.mini-batch.si