如何使用 BigQuery 计算 GitHub 上的推送事件?

Posted

技术标签:

【中文标题】如何使用 BigQuery 计算 GitHub 上的推送事件?【英文标题】:How to count push events on GitHub using BigQuery? 【发布时间】:2015-05-04 21:19:04 【问题描述】:

我正在尝试使用 BigQuery 上的公共 GitHub 数据集来计算事件 - 在本例中为 PushEvents - 在每个存储库的基础上随着时间的推移。

SELECT COUNT(*)
FROM [githubarchive:github.timeline]
WHERE type = 'PushEvent' 
    AND repository_name = "account/repo"
GROUP BY pushed_at
ORDER BY pushed_at DESC

基本上只检索指定 repo 和事件类型的计数,按日期分组计数并返回列表。 BigQuery 验证以下内容,但随后查询失败并显示:

Field 'pushed_at' not found.

据我从 GitHub 的 PushEvent documentation 得知,push_at 是一个可用字段。有人有正确执行的相关查询的示例吗?关于这里做错了什么有什么建议吗?

【问题讨论】:

【参考方案1】:

该字段名为 repository_pushed_at,您可能还打算将其包含在 SELECT 列表中,即

SELECT repository_pushed_at, COUNT(*)
FROM [githubarchive:github.timeline]
WHERE type = 'PushEvent' 
    AND repository_name = "account/repo"
GROUP BY repository_pushed_at
ORDER BY repository_pushed_at DESC

【讨论】:

我确实做到了,谢谢!这给了我结果,但帐户/回购格式开始了。您知道如何指定帐户吗?是 repository_owner 还是类似的?更新:看起来确实是这样。感谢您的原始答案! 如果您对存在哪些字段感到好奇,可以在 bigquery.cloud.google.com/table/githubarchive:github.timeline 查看表架构。 太棒了,谢谢丹尼。一直在寻找,但没有成功。

以上是关于如何使用 BigQuery 计算 GitHub 上的推送事件?的主要内容,如果未能解决你的问题,请参考以下文章

github 示例上的 SQL/BigQuery

如何获取 BigQuery 中给定存储库的 GitHub 星总数?

如何计算 BigQuery 的滚动平均值

使用 GitHub 的源代码控制 BigQuery 数据集

如何使用 SQL (BigQuery) 计算 TF/IDF

如何计算查询bigquery的大小?