Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在BigQuery中获取给定回购协议的GitHub星星总数?_Github_Google Bigquery - Fatal编程技术网

如何在BigQuery中获取给定回购协议的GitHub星星总数?

如何在BigQuery中获取给定回购协议的GitHub星星总数?,github,google-bigquery,Github,Google Bigquery,我的目标是随着时间的推移跟踪我的BigQuery回购协议的受欢迎程度 我想使用公开可用的BigQuery数据集,如或 GitHub数据集sample_repos不包含星号计数的快照: SELECT watch_count FROM [bigquery-public-data:github_repos.sample_repos] WHERE repo_name == 'angular/angular' 返回5318 GitHub归档是事件的时间线。我可以尝试将它们全部相加,但这些数字

我的目标是随着时间的推移跟踪我的BigQuery回购协议的受欢迎程度

我想使用公开可用的BigQuery数据集,如或

GitHub数据集
sample_repos
不包含星号计数的快照:

SELECT
  watch_count
FROM
  [bigquery-public-data:github_repos.sample_repos]
WHERE
  repo_name == 'angular/angular'
返回5318

GitHub归档是事件的时间线。我可以尝试将它们全部相加,但这些数字与GitHub UI中的数字不匹配。我猜是因为它不包括非STAR行动。以下是我使用的查询:

SELECT
  COUNT(*)
FROM
  [githubarchive:year.2011],
  [githubarchive:year.2012],
  [githubarchive:year.2013],
  [githubarchive:year.2014],
  [githubarchive:year.2015],
  [githubarchive:year.2016],
  TABLE_DATE_RANGE([githubarchive:day.], TIMESTAMP('2017-01-01'), TIMESTAMP('2017-03-30') )
WHERE
  repo.name == 'angular/angular'
  AND type = "WatchEvent"
返回24144

实际值为21921

#standardSQL
SELECT 
  COUNT(*) naive_count,
  COUNT(DISTINCT actor.id) unique_by_actor_id, 
  COUNT(DISTINCT actor.login) unique_by_actor_login 
FROM `githubarchive.month.*` 
WHERE repo.name = 'angular/angular'
AND type = "WatchEvent"

天真的计数:有些人明星和联合国明星,和明星再次。这会创建重复的监视事件

按演员id计数唯一:每个人只能主演一次。我们可以数一数(但我们不知道它们是否未上映,所以总数将低于此)

按参与者登录唯一:某些历史月份缺少“actor.id”字段。我们可以改为查看“actor.login”字段(但有些人会更改登录名)

或者,感谢GHTorrent项目:

#standardSQL
SELECT COUNT(*) stars
FROM `ghtorrent-bq.ght_2017_01_19.watchers` a
JOIN `ghtorrent-bq.ght_2017_01_19.projects` b
ON a.repo_id=b.id
WHERE url = 'https://api.github.com/repos/angular/angular'
LIMIT 10
20567,截至2017年1月19日


相关的:

  • 当一个项目的名称发生变化时会发生什么

  • 在他们更新之前,如何获取更新的正确数据

githubarchive方法似乎是角度/角度的一个很好的近似方法,但是当我尝试使用
bazelbuild/bazel
时,我实际上得到了3320(实际上是6033)。而
ghtorrent bq
方法更接近。但是我需要最新的数据,数据集是否每天更新?每周?有趣的评论,我添加了2个额外的答案(考虑将新问题提交给stack overflow,作为使此对话框太长的一个选项)随后在此处提出的问题:这里: