すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:GitHub パブリックイベントデータ

最終更新日:Nov 09, 2025

このトピックでは、MaxCompute パブリックデータセットで利用可能な GitHub パブリックイベントデータについて説明します。また、このデータのクエリ方法を説明し、分析結果を含むクエリの例を提供します

概要

多くの開発者が GitHub 上のオープンソースプロジェクトに取り組んでいます。この作業により、大量のイベントが生成されます。GitHub は、イベントタイプ、詳細、開発者、コードリポジトリなど、各イベントに関する情報を記録します。GitHub は、リポジトリにスターを付ける、コードを送信するなど、パブリックイベントも利用可能にします。イベントタイプの詳細については、「GitHub イベントタイプ」をご参照ください。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_odps および dws_overview_by_repo_month テーブルは、github_events パブリックプロジェクトの BIGDATA_PUBLIC_DATASET スキーマに格納されます。詳細については、「スキーマ操作」をご参照ください。MaxCompute を有効化している場合、クロスプロジェクトアクセスを使用してこれらのテーブルをクエリできます。

テーブルの詳細

dwd_github_events_odps

このファクトテーブルには、各 GitHub パブリックイベントの主な情報が格納されます。これは T+1 時間ごとに更新されます。テーブルには次のフィールドが含まれます:

フィールド名

データ型

説明

id

BIGINT

イベント ID。

actor_id

BIGINT

イベントイニシエーターの ID。

actor_login

string

イベントイニシエーターのログイン名。

repo_id

BIGINT

リポジトリ ID。

repo_name

String

owner/Repository_name フォーマットのリポジトリ名。

org_id

BIGINT

リポジトリが属する組織の ID。

org_login

string

リポジトリが属する組織の名前。

type

string

イベントタイプ。

タイプと説明の詳細については、「GitHub イベントタイプ」をご参照ください。

created_at

DATETIME

イベントが発生した時間。

action

string

イベントの動作。

iss_or_pr_id

BIGINT

issue または pull_request ID。

number

BIGINT

issue または pull_request の序数。

comment_id

BIGINT

コメント ID。

commit_id

string

コミット ID。

member_id

BIGINT

メンバー ID。

rev_or_push_or_rel_id

BIGINT

レビュー、プッシュ、またはリリース ID。

ref

string

作成または削除されたリソースの名前。

ref_type

String

作成または削除されたリソースのタイプ。

state

string

issue、pull_request、または pull_request_review のステータス。

author_association

string

アクターとリポジトリの関係。

language

string

マージリクエスト内のコードの言語。

merged

boolean

マージが受け入れられたかどうかを示します。

merged_at

DATETIME

コードがマージされた時間。

additions

BIGINT

コードに追加された行数。

deletions

BIGINT

コードから削除された行数。

changed_files

BIGINT

プルリクエストによって変更されたファイルの数。

push_size

BIGINT

コミット数。

push_distinct_size

BIGINT

個別コミット数。

hr

string

イベントが発生した時間。

たとえば、イベントが 00:23 に発生した場合、このパラメーターの値は 00 です。

month

String

イベントが発生した月。

たとえば、イベントが 2015 年 10 月に発生した場合、このパラメーターの値は 2015-10 です。

year

string

イベントが発生した年。

たとえば、イベントが 2015 年に発生した場合、このパラメーターの値は 2015 です。

ds

string

イベントが発生した日付。

値は yyyy-mm-dd フォーマットです。

dws_overview_by_repo_month

この集計テーブルには、各リポジトリのイベントメトリックの月次サマリーが格納されます。これは T+1 日ごとに更新されます。テーブルには次のフィールドが含まれます:

フィールド名

データ型

説明

repo_id

BIGINT

リポジトリ ID。

repo_name

string

owner/Repository_name フォーマットのリポジトリ名。

stars

BIGINT

リポジトリのスター数。

commits

BIGINT

リポジトリへのコミット数。

pushes

BIGINT

リポジトリへのプッシュ数。

total_prs

BIGINT

リポジトリのプルリクエストの総数。

pr_creators

BIGINT

リポジトリのプルリクエスト作成者の総数。

pr_reviews

BIGINT

リポジトリのプルリクエストレビューの総数。

pr_reviewers

BIGINT

リポジトリのプルリクエストレビュー担当者の総数。

total_issues

BIGINT

リポジトリの issue の総数。

forks

BIGINT

リポジトリのスター数。

month

string

イベントが発生した月。

たとえば、イベントが 2015 年 10 月に発生した場合、このパラメーターの値は 2015-10 です。

このデータがどのように生成されるかについては、「GitHub パブリックイベントデータセットに基づく統合オフラインおよびリアルタイムデータ処理」をご参照ください。

特定のオブジェクトを分析するために、MaxCompute は、オープンソースデータベースプロジェクトの ID と名前を含む db_repos テーブルと、オープンソースプログラミング言語プロジェクトの ID と名前を含む programming_language_repos テーブルも格納します。プロジェクトリストは ossinsight から取得されます。

利用可能なリージョン

リージョン

リージョン ID

中国 (杭州)

cn-hangzhou

中国 (上海)

cn-shanghai

中国 (北京)

cn-beijing

中国 (張家口)

cn-zhangjiakou

中国 (ウランチャブ)

cn-wulanchabu

中国 (深圳)

cn-shenzhen

中国 (成都)

cn-chengdu

免責事項

MaxCompute が提供する GitHub パブリックイベントデータは、プロダクトテスト専用です。データの正確性は保証されません。このデータを本番環境で使用しないでください。

注意事項

パブリックデータセットは、すべての MaxCompute ユーザーが利用できます。次の点にご注意ください:

  • パブリックデータセットのデータは BIGDATA_PUBLIC_DATASET プロジェクトに格納されます。ユーザーはこのプロジェクトのメンバーとして追加されません。したがって、プロジェクトをまたいでデータにアクセスする必要があります。SQL スクリプトを作成するときは、テーブル名の前にプロジェクトとスキーマ名を指定する必要があります。テナントレベルのスキーマ構文が有効になっていない場合は、セッションレベルのスキーマ構文を有効にしてコマンドを実行する必要があります。例:

    -- セッションレベルのスキーマ構文を有効にします。
    SET odps.namespace.schema=true; 
    -- dwd_github_events_odps テーブルから 100 レコードをクエリします。
    SELECT * FROM bigdata_public_dataset.github_events.dwd_github_events_odps WHERE ds='2024-05-10' limit 100;
    重要

    パブリックデータセットのデータストレージに対しては課金されません。ただし、クエリによって消費される計算リソースに対しては課金されます。詳細については、コンピューティング料金 (従量課金)をご参照ください。

  • クロスプロジェクトアクセスが必要なため、DataWorks のデータマップでパブリックデータセットのテーブルを表示することはできません。

  • パブリックデータセットプロジェクトは、スキーマごとにデータを格納します。アカウントでテナントレベルのスキーマ構文が有効になっていない場合、DataWorks データ分析でパブリックデータセットを直接表示することはできません。SQL 文を実行してデータをクエリすることは引き続き可能です。

MaxCompute を使用して GitHub パブリックイベントデータを探索する

前提条件

MaxCompute が有効化されています。MaxCompute プロジェクトが作成されています。MaxCompute プロジェクトの作成方法の詳細については、「MaxCompute プロジェクトの作成」をご参照ください。

サポートされているツールとプラットフォーム

付録: クエリの例と分析結果

オープンソースデータベースの探索

過去 5 年間 (2018 年から 2022 年) で最も人気のあるオープンソースデータベースプロジェクトのトップ 10 を表示する

  • クエリの例:

    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 がそれに続きました。image.png

過去 5 年間 (2018 年から 2022 年) で最も人気のあるオープンソースデータベースプロジェクトのトップ 10 のランキングの変更を表示する

  • クエリの例:

    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 年間で、トップ 10 のオープンソースデータベースプロジェクトのランキングは変動しました。clickhouse は最も速い成長を示し、2018 年の 10 位から 2021 年には 1 位に上昇しました。2022 年には、着実に上昇していた redis に追い抜かれました。対照的に、taosdata/TDengine は 2019 年に 1 位でしたが、1 年以内に 9 位に落ちました。image.png

過去 5 年間 (2018 年から 2022 年) で最も人気のあるオープンソースデータベースプロジェクトのトップ 10 の月間スター増加傾向を表示する

  • クエリの例:

    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 <='2022-12'
     GROUP BY dws.repo_id, repos.name
     ORDER BY stars DESC
     LIMIT 10
    ),
    tmp AS (
     SELECT
     MONTH,
     repo_id,
     stars,
     SUM(stars) OVER (PARTITION BY repo_id ORDER BY MONTH ASC ) AS total_stars
     FROM bigdata_public_dataset.github_events.dws_overview_by_repo_month
     WHERE 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
    ;
  • 分析結果: トップ 10 のオープンソースデータベースプロジェクトの中で、elasticsearch は一貫して最も人気があります。clickhouse プロジェクトは 2021 年以降、急速な成長を遂げています。

    image.png

2023 年前半に最も人気があったデータベースはどれか

  • クエリの例:

    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;
  • 分析結果: 2023 年前半、clickhouse が最も人気のあるデータベースであり、prometheusredis がそれに続きました。image.png

2023 年前半に活発にメンテナンスおよび更新されたデータベースはどれか

  • クエリの例:

    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 イベントの数によって定義されます。

    image.png

2023 年前半に最もアクティブなオープンソースデータベースプロジェクトの主な個人貢献者は誰か

  • クエリの例:

    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 は最もアクティブなオープンソースデータベースプロジェクトの主な個人貢献者でした。image.png

プログラミング言語の探索

過去 1 年間で最も使用されたプログラミング言語のトップ 10 を数える

  • クエリの例:

    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 がそれに続きました。image.png

過去 5 年間 (2018 年から 2022 年) で最も人気のあるプログラミング言語プロジェクトのトップ 10 を表示する

  • クエリの例:

    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;
  • 分析結果: 過去 5 年間で、最も人気のあるプログラミング言語プロジェクトは Go で、81,642 個のスターを獲得しました。それに続いて TypeScriptNode がありました。

    image.png

過去 5 年間 (2018 年から 2022 年) で最も人気のあるプログラミング言語プロジェクトのトップ 10 の月間スター増加傾向を表示する

  • クエリの例:

    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 <='2022-12'
     GROUP BY dws.repo_id, repos.name
     ORDER BY stars DESC
     LIMIT 10
    ),
    tmp AS (
     SELECT
     month,
     repo_id,
     stars,
     SUM(stars) OVER (PARTITION by repo_id ORDER BY month ASC ) AS total_stars
     FROM bigdata_public_dataset.github_events.dws_overview_by_repo_by_month
     WHERE 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 は人気が最も急速に成長したプログラミング言語プロジェクトでした。image.png