详情页标题前

阿里云云原生大数据计算服务 MaxComputeGithub公开事件数据-云淘科技

详情页1

本文为您介绍MaxCompute公开数据集中Github公开事件数据的基本信息、如何通过MaxCompute执行Github公开事件数据查询以及Query样例和分析结果。

简介

大量开发人员在GitHub上进行开源项目的开发工作,并在项目的开发过程中产生海量事件。GitHub会记录每次事件的类型及详情、开发者、代码仓库等信息,并开放其中的公开事件,包括加星标、提交代码等,具体事件类型请参见GitHub Events Type。GH Archive项目将GitHub公开事件按小时进行汇总,并允许开发人员访问,项目具体信息请参见GH Archive。

MaxCompute将GH Archive提供的海量公开事件数据进行离线处理并开发,生成以下表:

表名称

表说明

更新周期

dwd_github_events_odps

Github公开事件数据事实表

T+1小时更新

dws_overview_by_repo_month

Github公开事件月度指标数据聚合表

T+1天更新

dwd_github_events_odpsdws_overview_by_repo_month表存储在MaxCompute产品的公开项目BIGDATA_PUBLIC_DATASET中的github_eventsSchema中(更多Schema信息见Schema操作)。只要您已开通MaxCompute服务,就可以通过跨项目访问查询这些表。

表详情

dwd_github_events_odps

事实表:存储了每一条GitHub公开事件的主干信息,T+1小时更新。表中包含如下字段:

字段名

字段类型

字段说明

id

bigint

事件ID。

actor_id

bigint

事件发起人ID。

actor_login

string

事件发起人登录名。

repo_id

bigint

repo ID。

repo_name

string

repo名称:owner/Repository_name。

org_id

bigint

repo所属组织ID。

org_login

string

repo所属组织名称。

type

string

事件类型。

具体类型及描述请参见GitHub Events Type。

created_at

datetime

事件发生时间。

action

string

事件行为。

iss_or_pr_id

bigint

issue/pull_request ID。

number

bigint

issue/pull_request 序号。

comment_id

bigint

comment(评论)ID。

commit_id

string

commit(提交记录)ID。

member_id

bigint

成员ID。

rev_or_push_or_rel_id

bigint

review/push/release ID。

ref

string

创建/删除的资源名称。

ref_type

string

创建/删除的资源类型。

state

string

issue/pull_request/pull_request_review的状态。

author_association

string

actor与repo之间的关系。

language

string

请求合并代码的语言。

merged

boolean

是否接受合并。

merged_at

datetime

代码合并时间。

additions

bigint

代码增加行数。

deletions

bigint

代码减少行数。

changed_files

bigint

pull request 改变文件数量。

push_size

bigint

提交数量。

push_distinct_size

bigint

不同的提交数量。

hr

string

事件发生所在小时。

00点23分,则hr=00

month

string

事件发生所在月份。

如2015年10月,则month=2015-10

year

string

事件发生所在年份。

如2015年,year=2015

ds

string

事件发生所在的日期。

格式为yyyy-mm-dd

dws_overview_by_repo_month

聚合表:存储了项目维度每月事件指标汇总,T+1天更新。表中包含如下字段:

字段名

字段类型

字段说明

repo_id

bigint

repo ID。

repo_name

string

repo名称:owner/Repository_name。

stars

bigint

repo star数量。

commits

bigint

repo commits数量。

pushes

bigint

repo commits数量。

total_prs

bigint

repo所有的pull_request数量。

pr_creators

bigint

repo所有的pull_request提交者数量。

pr_reviews

bigint

repo所有的pr_reviews数量。

pr_reviewers

bigint

repo所有的pr_reviewers数量。

total_issues

bigint

repo所有的问题数量。

forks

bigint

repo收藏数量。

month

string

事件发生所在月份。

如2015年10月,则month=2015-10

如果您对如何生成这些数据感兴趣,推荐阅读基于GitHub公开事件数据集的离线实时一体化实践。

为了进行特定对象的分析,MaxCompute还存储了开源数据库项目ID与名称信息表db_repos、开源编程语言项目ID与名称信息表programming_language_repos。(项目名单来源于ossinsight)

可用地域

地域

地域ID

华东1(杭州)

cn-hangzhou

华东2(上海)

cn-shanghai

华北2(北京)

cn-beijing

华北3(张家口)

cn-zhangjiakou

华南1(深圳)

cn-shenzhen

自南1(成都)

cn-chengdu

声明

MaxCompute提供的GitHub公开事件数据只能用于产品测试,不保障数据准确性,因此请您勿用于正式生产。

注意事项

公开数据集对所有的MaxCompute用户开放。在使用过程中,您需要注意:

  • 公开数据集的数据均存储在BIGDATA_PUBLIC_DATASET项目中,但所有用户并未被加入到该项目中,即非项目空间成员。因此需要跨项目访问数据,在编写SQL脚本时,必须在表名前指定项目名称及Schema名称。同时未开启租户级Schema语法开关的用户需要开启Session级Schema语法,才能保证命令正常运行,命令示例如下:

    --开启Session级Schema语法
    set odps.namespace.schema=true; 
    --查询表dwd_github_events_odps中的100条数据
    select * from bigdata_public_dataset.github_events.dwd_github_events_odps limit 100;

    重要

    您无需为公开数据集的数据支付存储费用,但是您需要支付执行查询语句产生的相应计算费用,费用计算规则请参见计算费用(包年包月)或计算费用(按量付费)。

  • 由于公开数据集需要跨项目访问,您在DataWorks的数据地图中无法查找到公开数据集中的表。

  • 由于公开数据集项目支持按Schema存储,未开启租户级别Schema语法的用户无法在DataWorks数据分析提供的公开数据集中直接查看,但您依旧可以通过我们提供的SQL语句进行查询。

使用MaxCompute探索GitHub公开事件数据

前提条件

已开通MaxCompute并已创建项目,详情请参见创建MaxCompute项目。

支持的工具或平台

  • MaxComputeSQL分析

  • MaxCompute客户端(odpscmd)

  • MaxCompute Studio

  • DataWorks数据开发SQL节点

操作步骤(以SQL分析为例)

  1. 登录MaxCompute控制台,在左上角选择公开数据集可用的地域。

  2. 在左侧导航栏单击工作区 > SQL分析(Beta),进入SQL分析页面。

  3. 单击阿里云云原生大数据计算服务 MaxComputeGithub公开事件数据-云淘科技图标,选择公共数据集DEMO中的样例文件或者自行在SQL代码编辑框输入SQL。

  4. 单击运行参数配置,配置如下参数:

    • 项目:必选项,指定该SQL在哪个项目内执行,因此需要选择当前账号有create instance权限的项目。

    • 计算配额:非必选,即实现作业级别指定Quota。如果要选择,则需要选择当前账号有对应usage权限的Quota;如果不选择,则SQL会在项目配置的默认计算Quota里执行。

  5. 单击运行,在结果页签查看运行结果并进行可视化分析。

    MaxCompute为您提供的Query样例及分析结果请参见附录:Query样例及分析结果。

附录:Query样例及分析结果

探索开源数据库

查看过去5年(2018~2022)最受欢迎的前十开源数据库项目

  • Query样例:

    SET odps.namespace.schema = TRUE;
    SELECT dws.repo_id AS repo_id,
     repos.name AS repo_name,
     SUM(dws.stars) AS stars
    FROM bigdata_public_dataset.github_events.dws_overview_by_repo_month dws
    JOIN bigdata_public_dataset.github_events.db_repos repos ON dws.repo_id = repos.id
    WHERE MONTH >= '2015-01' AND MONTH <='2022-12'
    GROUP BY dws.repo_id,
     repos.name
    ORDER BY stars DESC LIMIT 10;
  • 分析结果:过去5年开源数据库项目中elasticsearch最受欢迎,其次是redisprometheus阿里云云原生大数据计算服务 MaxComputeGithub公开事件数据-云淘科技

查看过去5年(2018~2022)受欢迎Top10开源数据库项目排行榜变化

  • Query样例:

    SET odps.namespace.schema = TRUE;
    SET odps.sql.validate.orderby.limit=FALSE;
     WITH tmp as
     (SELECT dws.repo_id AS repo_id, repos.name AS repo_name, SUM(dws.stars) AS stars, SUBSTR(MONTH,1,4) AS YEAR, row_number() over (partition BY SUBSTR(MONTH,1,4)
     ORDER BY SUM(dws.stars) DESC) AS ranknum
     FROM bigdata_public_dataset.github_events.dws_overview_by_repo_month dws
     JOIN bigdata_public_dataset.github_events.db_repos repos ON dws.repo_id = repos.id
     WHERE MONTH>='2018-01'
     GROUP BY dws.repo_id, repos.name,SUBSTR(MONTH,1,4))
    SELECT repo_id,
     repo_name,
     stars,
     ranknum,
     YEAR
    FROM tmp
    WHERE YEAR<=2022
     AND ranknum<=10
    ORDER BY YEAR ASC,ranknum ASC;
  • 分析结果:在过去5年,各开源数据库在开发者心中Top10的地位此起彼伏,其中clickhouse是排名上升最快的项目,从2018年第十名迅速升至2021年的第一名,于2022年被稳步上升的redis超越。反观taosdata/TDengine在2019年排名第一,短短一年时间下降至第九名。阿里云云原生大数据计算服务 MaxComputeGithub公开事件数据-云淘科技

查看过去5年(2018~2022)最受欢迎的前十开源数据库项目获星按月成长趋势

  • Query样例:

    set odps.namespace.schema = true;
    set odps.sql.validate.orderby.limit=false;
    WITH top_10_repos AS (
     SELECT
     dws.repo_id as repo_id, 
     repos.name as repo_name, 
     SUM(dws.stars) as stars
     FROM bigdata_public_dataset.github_events.dws_overview_by_repo_month dws
     join bigdata_public_dataset.github_events.db_repos repos on dws.repo_id = repos.id
     where month >= '2018-01' AND MONTH = '2015-01' and stars is not null
     and repo_id in (select repo_id from top_10_repos)
     group by repo_id,month,stars
     ORDER BY month ASC,repo_id)
     
    SELECT
     tmp.month as month,
     top_10_repos.repo_name as repo_name,
     tmp.total_stars as total_stars
    
     from tmp
     join top_10_repos ON top_10_repos.repo_id = tmp.repo_id
     group by month,repo_name,total_stars
     ORDER BY month ASC,repo_name
    ;
  • 分析结果:Top10开源数据库项目中elasticsearch一直是最受欢迎的开源数据库,clickhouse自2021年增速较快。

    阿里云云原生大数据计算服务 MaxComputeGithub公开事件数据-云淘科技

哪些数据库在2023年上半年最受欢迎

  • Query样例:

    set odps.namespace.schema = true;
    SELECT
     repos.name AS repo_name,
     sum(dws.stars) AS stars
    FROM bigdata_public_dataset.github_events.dws_overview_by_repo_month dws
    JOIN bigdata_public_dataset.github_events.db_repos repos ON repos.id = dws.repo_id
    WHERE month >= '2023-01' AND month <= '2023-06'
    GROUP BY repo_name
    ORDER BY stars DESC
    LIMIT 10;
  • 分析结果:clickhouse数据库在2023年上半年最受欢迎,其次是prometheusredis阿里云云原生大数据计算服务 MaxComputeGithub公开事件数据-云淘科技

哪些数据库在2023年上半年保持活跃的维护与更新

  • Query样例:

    set odps.namespace.schema = true;
    SELECT
     repos.name AS repo_name,
     COUNT(dwd.id) AS num
    FROM bigdata_public_dataset.github_events.dwd_github_events_odps dwd
     JOIN bigdata_public_dataset.github_events.db_repos repos ON repos.id = dwd.repo_id
    WHERE type = 'PullRequestEvent'
     AND ds>='2023-01-01' and ds<='2023-06-30'
     AND action = 'opened'
    GROUP BY repos.name
    ORDER BY num DESC
    LIMIT 10;
  • 分析结果:在2023上半年,StarRocks保持最活跃的维护与更新(定义开启PullRequest为项目活跃的表现)。

    阿里云云原生大数据计算服务 MaxComputeGithub公开事件数据-云淘科技

2023年上半年最活跃的开源数据库项目中主要的个人贡献者是谁

  • Query样例:

    SET odps.namespace.schema=true; 
    WITH a AS 
    (
     SELECT repo_id
     ,repo_name
     ,actor_id
     ,actor_login
     ,COUNT(*) AS contribution
     ,ds
     FROM bigdata_public_dataset.github_events.dwd_github_events_odps
     WHERE ds >='2021-01-01' and ds<='2021-12-31'
     AND (
     (
     type = 'PullRequestEvent'
     AND action = 'opened'
     )
     OR (
     type = 'IssuesEvent'
     AND action = 'opened'
     )
     OR (
     type = 'IssueCommentEvent'
     AND action = 'created'
     )
     OR (
     type = 'PullRequestReviewEvent'
     AND action = 'created'
     )
     OR (
     type = 'PullRequestReviewCommentEvent'
     AND action = 'created'
     )
     OR (
     type = 'PushEvent'
     AND action IS NULL
     )
     )
     GROUP BY repo_id
     ,repo_name
     ,actor_id
     ,actor_login
     ,ds
    )
    SELECT repo_name
     ,actor_login
     ,SUM(contribution) AS contribution
    FROM a
    WHERE repo_name = 'StarRocks/starrocks'
    AND actor_login NOT LIKE '%[bot]'
    AND actor_login NOT LIKE 'cockroach%'
    
    GROUP BY repo_name
     ,actor_login
    ORDER BY contribution DESC
    LIMIT 10
    ;
  • 分析结果:在2023年上半年,最活跃的开源数据库项目中主要的个人贡献者是kangkaisen阿里云云原生大数据计算服务 MaxComputeGithub公开事件数据-云淘科技

探索编程语言

统计过去一年使用最多的十个编程语言

  • Query样例:

    SET odps.namespace.schema=true; 
    SELECT
     language,
     count(*) total
    FROM
     bigdata_public_dataset.github_events.dwd_github_events_odps
    WHERE
     ds>=date_add(getdate(), -365)
     AND language IS NOT NULL
    GROUP BY
     language
    ORDER BY
     total DESC
    LIMIT 10;
  • 分析结果:使用最多的编程语言是JavaScript,其次是TypeScriptPython等语言。阿里云云原生大数据计算服务 MaxComputeGithub公开事件数据-云淘科技

查看过去5年(2018~2022)最受欢迎的十个编程语言项目

  • Query样例:

    SET odps.namespace.schema = TRUE;
    
    SELECT dws.repo_id AS repo_id,
     repos.name AS repo_name,
     SUM(dws.stars) AS stars
    FROM bigdata_public_dataset.github_events.dws_overview_by_repo_month dws
    JOIN bigdata_public_dataset.github_events.programming_language_repos repos ON dws.repo_id = repos.id
    WHERE MONTH >= '2015-01'
    GROUP BY dws.repo_id,
     repos.name
    ORDER BY stars DESC LIMIT 10;
  • 分析结果:过去五年最受欢迎的编程语言是Go,收获了81,642颗星,其次是TypeScriptNode等语言。

    阿里云云原生大数据计算服务 MaxComputeGithub公开事件数据-云淘科技

查看过去5年(2018~2022)最受欢迎的十个编程语言项目获星按月成长趋势

  • Query样例:

    set odps.namespace.schema = true;
    set odps.sql.validate.orderby.limit=false;
    WITH top_10_repos AS (
     SELECT
     dws.repo_id as repo_id, 
     repos.name as repo_name, 
     SUM(dws.stars) as stars
     FROM bigdata_public_dataset.github_events.dws_overview_by_repo_by_month dws
     join bigdata_public_dataset.github_events.programming_language_repos repos on dws.repo_id = repos.id
     where month >= '2018-01' and month = '2015-01' and stars is not null
     and repo_id in (select repo_id from top_10_repos)
     group by repo_id,month,stars
     ORDER BY month ASC,repo_id)
     
    SELECT
     tmp.month as month,
     top_10_repos.repo_name as repo_name,
     tmp.total_stars as total_stars
    
     from tmp
     join top_10_repos ON top_10_repos.repo_id = tmp.repo_id
     group by month,repo_name,total_stars
     ORDER BY month ASC,repo_name
    ;
  • 分析结果:在过去5年,Go是受欢迎程度增长最快的编程语言。阿里云云原生大数据计算服务 MaxComputeGithub公开事件数据-云淘科技

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/160003.html

(0)
上一篇 2023年12月10日 上午2:04
下一篇 2023年12月10日
详情页2

相关推荐

  • 大数据计算MaxCompute能不能全局设置一次,后续的都生效?-云小二-阿里云

    大数据计算MaxCompute能不能全局设置一次,后续的都生效?set odps.sql.executionengine.enable.rand.time.seed=true 类型这些set的语句 以下为热心网友提供的参考意见 在MaxCompute中,可以使用以下语句来全局设置一些参数: 设置随机数种子:set odps.sql.executionengi…

    阿里云 2024年1月3日
  • 阿里云日志服务SLS源Logstore读取错误-云淘科技

    本文介绍数据加工服务读取源Logstore错误的原因以及排查处理方法。 加工引擎启动成功后,开始读取源Logstore的数据。数据加工引擎对源Logstore采用流式读取,在加工过程中会持续不断的读取源Logstore中的数据。 本环节产生错误主要是由于对源Logstore的访问异常。可能原因如下: 源Logstore信息配置错误。 源Logstore信息发…

    2023年12月10日
  • 阿里云人工智能平台PAILasso回归预测-云淘科技

    Lasso回归预测组件支持稀疏、稠密两种数据格式。您可以使用该组件做一些数值型变量的预测,比如贷款额度预测、温度预测等。本文为您介绍Lasso回归预测组件的配置方法。 使用限制 支持的计算引擎为MaxCompute和Flink。 算法原理 Lasso回归算法通过构造一个惩罚函数,得到一个较为精炼的模型。使得它压缩一些回归系数,即强制系数绝对值之和小于某个固定…

    阿里云人工智能平台PAI 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云日志服务SLS投递日志到MaxCompute(旧版)-云淘科技

    您可以在日志服务控制台实时查询所采集到的日志,并将日志投递到MaxCompute,进行进一步的BI分析及数据挖掘。本文介绍通过日志服务投递日志到MaxCompute的操作步骤。 前提条件 已开通MaxCompute,并创建表。更多信息,请参见创建表。 使用限制 只有阿里云账号能够创建投递任务,不支持RAM用户操作。 不同Logstore中的数据请勿投递到同一…

    阿里云日志服务SLS 2023年12月10日
  • 阿里云日志服务SLS单值图-云淘科技

    本文介绍单值图操作步骤及案例。 简介 单值图可以用于突出显示单个数值。单值图的类型包括: 矩形框:用于展示一般数值。 刻度盘:用于查看数值与设定阈值的接近程度。 同比环比图:用于查看同比和环比函数的SQL查询结果,分析语法请参考同比和环比函数。 默认选择矩形框图显示。矩形框图作为最简单直接的数据表现形式,直观清晰地将某一个点上的数据展示出来,一般用于表示某一…

    2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。