Todos os produtos
Search
Central de documentação

MaxCompute:GitHub public event data

Última atualização: Jun 27, 2026

O MaxCompute oferece acesso a dados de eventos públicos do GitHub provenientes do GH Archive, projeto que arquiva a atividade pública do GitHub por hora. Use este conjunto de dados para analisar ecossistemas de código aberto, acompanhar tendências de linguagens de programação e medir a atividade de projetos em milhões de repositórios.

Este conjunto de dados destina-se apenas a testes do produto. A precisão dos dados não é garantida. Não o utilize em ambiente de produção.

Tabelas disponíveis

O conjunto de dados está armazenado no schema github_events do projeto BIGDATA_PUBLIC_DATASET. Todas as tabelas são acessíveis por meio de consultas SQL entre projetos.

Nome da tabela

Descrição

Ciclo de atualização

dwd_github_events_odps

Tabela de fatos — uma linha por evento público do GitHub

T+1 hora

dws_overview_by_repo_month

Tabela agregada — métricas mensais por repositório

T+1 dia

db_repos

IDs e nomes de projetos de bancos de dados open source

programming_language_repos

IDs e nomes de projetos de linguagens de programação open source

As listas de projetos db_repos e programming_language_repos têm como source o ossinsight.

Para entender como esses dados são gerados, consulte Processamento de dados offline e em tempo real integrado com base no conjunto de dados de eventos públicos do GitHub.

Schemas das tabelas

dwd_github_events_odps

Esta tabela de fatos armazena um registro por evento público do GitHub, com atualização a cada T+1 hora.

Nome do campo

Tipo de dado

Descrição

id

BIGINT

ID do evento.

actor_id

BIGINT

ID do iniciador do evento.

actor_login

STRING

Nome de login do iniciador do evento.

repo_id

BIGINT

ID do repositório.

repo_name

STRING

Nome do repositório, no formato owner/repository_name.

org_id

BIGINT

ID da organização proprietária do repositório.

org_login

STRING

Nome da organização proprietária do repositório.

type

STRING

Tipo do evento. Para a lista completa, consulte Tipos de eventos do GitHub.

created_at

DATETIME

Horário em que o evento ocorreu.

action

STRING

Ação do evento (por exemplo, opened ou created).

iss_or_pr_id

BIGINT

ID da issue ou do pull request.

number

BIGINT

Número sequencial da issue ou do pull request.

comment_id

BIGINT

ID do comentário.

commit_id

STRING

ID do commit.

member_id

BIGINT

ID do membro.

rev_or_push_or_rel_id

BIGINT

ID da revisão, push ou release.

ref

STRING

Nome do recurso criado ou excluído.

ref_type

STRING

Tipo do recurso criado ou excluído.

state

STRING

Status da issue, do pull request ou da revisão do pull request.

author_association

STRING

Relação entre o iniciador do evento e o repositório.

language

STRING

Linguagem de programação do código no merge request.

merged

BOOLEAN

Indica se o pull request foi mesclado.

merged_at

DATETIME

Horário em que o código foi mesclado.

additions

BIGINT

Quantidade de linhas adicionadas.

deletions

BIGINT

Quantidade de linhas excluídas.

changed_files

BIGINT

Quantidade de arquivos alterados pelo pull request.

push_size

BIGINT

Total de commits no push.

push_distinct_size

BIGINT

Quantidade de commits distintos no push.

hr

STRING

Hora em que o evento ocorreu. Por exemplo, um evento às 00:23 tem o valor 00.

month

STRING

Mês em que o evento ocorreu, no formato yyyy-MM. Por exemplo, outubro de 2015 é 2015-10.

year

STRING

Ano em que o evento ocorreu. Por exemplo, 2015.

ds

STRING

Data em que o evento ocorreu, no formato yyyy-MM-dd.

dws_overview_by_repo_month

Esta tabela agregada armazena métricas mensais por repositório, com atualização a cada T+1 dia.

Nome do campo

Tipo de dado

Descrição

repo_id

BIGINT

ID do repositório.

repo_name

STRING

Nome do repositório, no formato owner/repository_name.

stars

BIGINT

Quantidade de estrelas recebidas pelo repositório naquele mês.

commits

BIGINT

Quantidade de commits no repositório naquele mês.

pushes

BIGINT

Quantidade de pushes no repositório naquele mês.

total_prs

BIGINT

Total de pull requests naquele mês.

pr_creators

BIGINT

Quantidade de criadores de pull requests naquele mês.

pr_reviews

BIGINT

Quantidade de revisões de pull requests naquele mês.

pr_reviewers

BIGINT

Quantidade de revisores de pull requests naquele mês.

total_issues

BIGINT

Total de issues naquele mês.

forks

BIGINT

Quantidade de forks naquele mês.

month

STRING

Mês, no formato yyyy-MM. Por exemplo, outubro de 2015 é 2015-10.

Regiões disponíveis

Região

ID da região

China (Hangzhou)

cn-hangzhou

China (Shanghai)

cn-shanghai

China (Beijing)

cn-beijing

China (Zhangjiakou)

cn-zhangjiakou

China (Ulanqab)

cn-wulanchabu

China (Shenzhen)

cn-shenzhen

China (Chengdu)

cn-chengdu

Observações de uso

Os conjuntos de dados públicos estão armazenados no projeto BIGDATA_PUBLIC_DATASET. Como você não é membro desse projeto, todas as consultas utilizam acesso entre projetos. Considere os pontos a seguir:

  • Especifique o caminho completo da tabela no SQL. Adicione o prefixo do projeto e do schema a todo nome de tabela: bigdata_public_dataset.github_events.<table_name>.

  • Ative a sintaxe de schema. Caso a sintaxe de schema no nível de tenant não esteja ativada para sua conta, adicione a seguinte linha no início de cada script SQL:

    SET odps.namespace.schema = true;
  • O armazenamento é gratuito; as consultas são cobradas. Não há cobrança pelo armazenamento de dados de conjuntos públicos, mas os recursos computacionais consumidos pelas suas consultas são faturados. Para mais detalhes, consulte Taxas de computação (pagamento conforme o uso).

  • O Data Map não está disponível para conjuntos de dados públicos. O acesso entre projetos impede a navegação nessas tabelas pelo DataWorks Data Map.

  • O DataWorks DataAnalysis exige SQL. Se a sintaxe de schema no nível de tenant não estiver ativada, consulte os dados executando instruções SQL diretamente, em vez de usar a interface visual do DataAnalysis.

Para mais informações sobre operações de schema, consulte Operações de schema.

Consultar o conjunto de dados

Pré-requisitos

Antes de começar, verifique se você possui:

Ferramentas compatíveis

Execute consultas com qualquer uma das ferramentas abaixo:

Execute sua primeira consulta

O exemplo a seguir recupera 100 linhas da tabela de fatos para uma data específica:

-- Enable session-level schema syntax if tenant-level syntax is not enabled.
SET odps.namespace.schema = true;

-- Query 100 records from May 10, 2024.
SELECT *
FROM bigdata_public_dataset.github_events.dwd_github_events_odps
WHERE ds = '2024-05-10'
LIMIT 100;

Exemplos de consultas e análises

Os exemplos a seguir utilizam as tabelas dwd_github_events_odps e dws_overview_by_repo_month para responder a perguntas comuns sobre bancos de dados e linguagens de programação open source. Todos os exemplos exigem que a sintaxe de schema esteja ativada.

Bancos de dados open source

Este grupo de consultas usa a tabela de referência db_repos para limitar os resultados a projetos conhecidos de bancos de dados open source, abrangendo rankings de popularidade, tendências de estrelas e atividade de contribuidores.

Quais bancos de dados open source foram mais populares de 2018 a 2022?

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;

Resultado da análise: elasticsearch foi o projeto de banco de dados open source mais popular, seguido por redis e prometheus.

image.png

Como os rankings dos principais projetos de bancos de dados mudaram anualmente de 2018 a 2022?

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;

Resultado da análise: clickhouse apresentou o crescimento mais rápido entre todos os projetos, subindo da décima posição em 2018 para a primeira em 2021. Em 2022, foi superado pelo redis, que vinha em ascensão constante. Já o taosdata/TDengine alcançou a primeira posição em 2019, mas caiu para a nona em apenas um ano.

image.png

Qual foi a tendência mensal de estrelas dos 10 principais projetos de bancos de dados entre 2018 e 2022?

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;

Resultado da análise: elasticsearch manteve-se consistentemente como o projeto de banco de dados com mais estrelas. O clickhouse teve um rápido crescimento acumulado a partir de 2021.

image.png

Quais bancos de dados foram mais populares no primeiro semestre de 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;

Resultado da análise: clickhouse foi o banco de dados mais popular no primeiro semestre de 2023, seguido por prometheus e redis.

image.png

Quais bancos de dados tiveram manutenção mais ativa no primeiro semestre de 2023?

Esta consulta mede a atividade contando eventos de pull requests abertos, o que reflete o trabalho contínuo de desenvolvimento.

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;

Resultado da análise: StarRocks foi o projeto de banco de dados open source com manutenção mais ativa no primeiro semestre de 2023.

image.png

Quem foram os principais contribuidores individuais do projeto de banco de dados mais ativo?

Esta consulta conta eventos de contribuição — pull requests, issues, comentários, revisões e pushes — por contribuidor para um determinado repositório e intervalo de tempo.

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;

Resultado da análise: kangkaisen foi o principal contribuidor individual do repositório StarRocks/starrocks em 2021.

image.png

Linguagens de programação

Este grupo de consultas utiliza a tabela de referência programming_language_repos para focar os resultados em projetos de runtime e compiladores de linguagens, respondendo a perguntas sobre tendências de uso e popularidade.

Quais foram as 10 linguagens de programação mais usadas no último ano?

SET odps.namespace.schema = true;

SELECT
  language,
  COUNT(*) AS 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;

Resultado da análise: JavaScript foi a linguagem mais utilizada, seguida por TypeScript e Python.

image.png

Quais projetos de linguagens de programação receberam mais estrelas de 2018 a 2022?

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;

Resultado da análise: Go foi o projeto de linguagem de programação mais popular, com 81.642 estrelas, seguido por TypeScript e Node.

image.png

Como as contagens acumuladas de estrelas dos 10 principais projetos de linguagens cresceram mês a mês?

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.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_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;

Resultado da análise: Go teve o crescimento acumulado de estrelas mais rápido entre todos os projetos de linguagens de programação no período de cinco anos.

image.png