全部产品
Search
文档中心

MaxCompute:Data event publik GitHub

更新时间:Nov 10, 2025

Topik ini menjelaskan data event publik GitHub yang tersedia dalam dataset publik MaxCompute. Topik ini juga menjelaskan cara melakukan kueri terhadap data tersebut serta menyediakan contoh kueri beserta hasil analisis.

Ikhtisar

Banyak pengembang mengerjakan proyek open source di GitHub. Aktivitas tersebut menghasilkan volume besar event. GitHub mencatat informasi tentang setiap event, seperti jenis event, detailnya, pengembang, dan repositori kode. GitHub juga menyediakan event publik, seperti memberikan bintang pada repositori atau mengirimkan kode. Untuk informasi lebih lanjut mengenai jenis-jenis event, lihat Jenis Event GitHub. Proyek GH Archive merangkum event publik GitHub per jam dan membuatnya dapat diakses oleh para pengembang. Untuk informasi lebih lanjut mengenai proyek ini, lihat GH Archive.

MaxCompute memproses volume besar data event publik dari GH Archive untuk menghasilkan tabel-tabel berikut:

Nama tabel

Deskripsi

Siklus pembaruan

dwd_github_events_odps

Tabel fakta data event publik GitHub

T+1 jam

dws_overview_by_repo_month

Tabel agregat metrik bulanan untuk event publik GitHub

T+1 hari

Tabel dwd_github_events_odps dan dws_overview_by_repo_month disimpan dalam skema github_events dari proyek publik BIGDATA_PUBLIC_DATASET. Untuk informasi lebih lanjut, lihat Operasi skema. Jika Anda telah mengaktifkan MaxCompute, Anda dapat melakukan kueri terhadap tabel-tabel ini menggunakan akses lintas proyek.

Detail tabel

dwd_github_events_odps

Tabel fakta ini menyimpan informasi utama tentang setiap event publik GitHub. Tabel ini diperbarui setiap T+1 jam. Tabel ini berisi bidang-bidang berikut:

Nama bidang

Jenis data

Deskripsi

id

BIGINT

ID event.

actor_id

BIGINT

ID inisiator event.

actor_login

string

Nama login inisiator event.

repo_id

BIGINT

ID repositori.

repo_name

String

Nama repositori dalam format pemilik/Nama_Repositori.

org_id

BIGINT

ID organisasi tempat repositori tersebut berada.

org_login

string

Nama organisasi tempat repositori tersebut berada.

type

string

Jenis event.

Untuk informasi lebih lanjut mengenai jenis dan deskripsinya, lihat Jenis Event GitHub.

created_at

DATETIME

Waktu kejadian event.

action

string

Perilaku event.

iss_or_pr_id

BIGINT

ID issue atau pull_request.

number

BIGINT

Nomor urut issue atau pull_request.

comment_id

BIGINT

ID komentar.

commit_id

string

ID commit.

member_id

BIGINT

ID anggota.

rev_or_push_or_rel_id

BIGINT

ID review, push, atau rilis.

ref

string

Nama sumber daya yang dibuat atau dihapus.

ref_type

String

Jenis sumber daya yang dibuat atau dihapus.

state

string

Status issue, pull_request, atau pull_request_review.

author_association

string

Hubungan antara aktor dan repositori.

language

string

Bahasa kode dalam permintaan merge.

merged

boolean

Menunjukkan apakah merge diterima.

merged_at

DATETIME

Waktu kode digabungkan.

additions

BIGINT

Jumlah baris yang ditambahkan ke kode.

deletions

BIGINT

Jumlah baris yang dihapus dari kode.

changed_files

BIGINT

Jumlah file yang diubah oleh pull request.

push_size

BIGINT

Jumlah commit.

push_distinct_size

BIGINT

Jumlah commit unik.

hr

string

Jam kejadian event.

Sebagai contoh, jika event terjadi pada pukul 00:23, nilai parameter ini adalah 00.

month

String

Bulan kejadian event.

Sebagai contoh, jika event terjadi pada Oktober 2015, nilai parameter ini adalah 2015-10.

year

string

Tahun kejadian event.

Sebagai contoh, jika event terjadi pada tahun 2015, nilai parameter ini adalah 2015.

ds

string

Tanggal kejadian event.

Nilainya dalam format yyyy-mm-dd.

dws_overview_by_repo_month

Tabel agregat ini menyimpan ringkasan bulanan metrik event untuk setiap repositori. Tabel ini diperbarui setiap T+1 hari. Tabel ini berisi bidang-bidang berikut:

Nama bidang

Jenis data

Deskripsi

repo_id

BIGINT

ID repositori.

repo_name

string

Nama repositori dalam format pemilik/Nama_Repositori.

stars

BIGINT

Jumlah bintang untuk repositori.

commits

BIGINT

Jumlah commit ke repositori.

pushes

BIGINT

Jumlah push ke repositori.

total_prs

BIGINT

Total jumlah pull request untuk repositori.

pr_creators

BIGINT

Total jumlah pembuat pull request untuk repositori.

pr_reviews

BIGINT

Total jumlah tinjauan pull request untuk repositori.

pr_reviewers

BIGINT

Total jumlah peninjau pull request untuk repositori.

total_issues

BIGINT

Total jumlah issue untuk repositori.

forks

BIGINT

Jumlah bintang untuk repositori.

month

string

Bulan kejadian event.

Sebagai contoh, jika event terjadi pada Oktober 2015, nilai parameter ini adalah 2015-10.

Untuk memahami cara data ini dihasilkan, lihat Pemrosesan data offline dan real-time terintegrasi berdasarkan dataset event publik GitHub.

Untuk menganalisis objek tertentu, MaxCompute juga menyimpan tabel db_repos, yang berisi ID dan nama proyek database open source, serta tabel programming_language_repos, yang berisi ID dan nama proyek bahasa pemrograman open source. Daftar proyek tersebut bersumber dari ossinsight.

Wilayah yang tersedia

Wilayah

ID Wilayah

Tiongkok (Hangzhou)

cn-hangzhou

Tiongkok (Shanghai)

cn-shanghai

Tiongkok (Beijing)

cn-beijing

Tiongkok (Zhangjiakou)

cn-zhangjiakou

Tiongkok (Ulanqab)

cn-wulanchabu

Tiongkok (Shenzhen)

cn-shenzhen

Tiongkok (Chengdu)

cn-chengdu

Penafian

Data event publik GitHub yang disediakan oleh MaxCompute hanya untuk pengujian produk. Akurasi data tidak dijamin. Jangan gunakan data ini dalam lingkungan produksi.

Perhatian

Dataset publik tersedia untuk semua pengguna MaxCompute. Perhatikan hal-hal berikut:

  • Data untuk dataset publik disimpan dalam proyek BIGDATA_PUBLIC_DATASET. Pengguna tidak ditambahkan sebagai anggota ke proyek ini. Oleh karena itu, Anda harus mengakses data secara lintas proyek. Saat menulis skrip SQL, Anda harus menentukan nama proyek dan skema sebelum nama tabel. Jika sintaks skema tingkat penyewa tidak diaktifkan, Anda harus mengaktifkan sintaks skema tingkat sesi untuk menjalankan perintah. Contohnya:

    -- Mengaktifkan sintaks skema tingkat sesi.
    SET odps.namespace.schema=true; 
    -- Melakukan kueri 100 catatan dari tabel dwd_github_events_odps.
    SELECT * FROM bigdata_public_dataset.github_events.dwd_github_events_odps WHERE ds='2024-05-10' limit 100;
    Penting

    Anda tidak dikenai biaya untuk penyimpanan data dalam dataset publik. Namun, Anda dikenai biaya untuk sumber daya komputasi yang dikonsumsi oleh kueri Anda. Untuk informasi lebih lanjut, lihat Biaya komputasi (Bayar Sesuai Pemakaian).

  • Karena diperlukan akses lintas proyek, Anda tidak dapat melihat tabel dari dataset publik di Peta Data DataWorks.

  • Proyek dataset publik menyimpan data berdasarkan skema. Jika sintaks skema tingkat penyewa tidak diaktifkan untuk akun Anda, Anda tidak dapat melihat dataset publik secara langsung di Analisis Data DataWorks. Anda tetap dapat melakukan kueri terhadap data dengan menjalankan pernyataan SQL.

Gunakan MaxCompute untuk menjelajahi data event publik GitHub

Prasyarat

MaxCompute telah diaktifkan dan proyek MaxCompute telah dibuat. Untuk informasi lebih lanjut mengenai cara membuat proyek MaxCompute, lihat Membuat proyek MaxCompute.

Alat dan platform yang didukung

Lampiran: Contoh kueri dan hasil analisis

Jelajahi database open source

Lihat 10 proyek database open source paling populer selama lima tahun terakhir (2018 hingga 2022)

  • Contoh kueri:

    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;
  • Hasil analisis: Dalam lima tahun terakhir, elasticsearch merupakan proyek database open source paling populer, diikuti oleh redis dan prometheus.image.png

Lihat perubahan peringkat 10 proyek database open source paling populer selama lima tahun terakhir (2018 hingga 2022)

  • Contoh kueri:

    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;
  • Hasil analisis: Selama lima tahun terakhir, peringkat 10 proyek database open source teratas telah bergeser. clickhouse menunjukkan pertumbuhan tercepat, naik dari peringkat kesepuluh pada tahun 2018 menjadi peringkat pertama pada tahun 2021. Pada tahun 2022, proyek ini dilampaui oleh redis yang terus meningkat secara stabil. Sebaliknya, taosdata/TDengine berada di peringkat pertama pada tahun 2019 tetapi turun ke peringkat kesembilan dalam waktu satu tahun.image.png

Lihat tren pertumbuhan bintang bulanan untuk 10 proyek database open source paling populer selama lima tahun terakhir (2018 hingga 2022)

  • Contoh kueri:

    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
    ;
  • Hasil analisis: Di antara 10 proyek database open source teratas, elasticsearch secara konsisten menjadi yang paling populer. Proyek clickhouse mengalami pertumbuhan pesat sejak tahun 2021.

    image.png

Database mana yang paling populer pada paruh pertama tahun 2023

  • Contoh kueri:

    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;
  • Hasil analisis: Pada paruh pertama tahun 2023, clickhouse merupakan database paling populer, diikuti oleh prometheus dan redis.image.png

Database mana yang paling aktif dipelihara dan diperbarui pada paruh pertama tahun 2023

  • Contoh kueri:

    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;
  • Hasil analisis: Pada paruh pertama tahun 2023, StarRocks merupakan database yang paling aktif dipelihara dan diperbarui. Aktivitas proyek didefinisikan berdasarkan jumlah event PullRequest yang dibuat.

    image.png

Siapa kontributor individu utama untuk proyek database open source paling aktif pada paruh pertama tahun 2023

  • Contoh kueri:

    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
    ;
  • Hasil analisis: Pada paruh pertama tahun 2023, kangkaisen merupakan kontributor individu utama untuk proyek database open source paling aktif.image.png

Jelajahi bahasa pemrograman

Hitung sepuluh bahasa pemrograman paling banyak digunakan dalam setahun terakhir

  • Contoh kueri:

    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;
  • Hasil analisis: Bahasa pemrograman yang paling banyak digunakan adalah JavaScript, diikuti oleh TypeScript dan Python.image.png

Lihat sepuluh proyek bahasa pemrograman paling populer selama lima tahun terakhir (2018 hingga 2022)

  • Contoh kueri:

    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;
  • Hasil analisis: Selama lima tahun terakhir, proyek bahasa pemrograman paling populer adalah Go, yang menerima 81.642 bintang. Proyek ini diikuti oleh TypeScript dan Node.

    image.png

Lihat tren pertumbuhan bintang bulanan untuk 10 proyek bahasa pemrograman paling populer selama lima tahun terakhir (2018 hingga 2022)

  • Contoh kueri:

    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
    ;
  • Hasil analisis: Selama lima tahun terakhir, Go merupakan proyek bahasa pemrograman dengan pertumbuhan popularitas tercepat.image.png