使用 BigQuery 查询 GitHub 数据

BigQuery 是 Google 推出的全代管式、无需运维、费用低廉的分析数据库。借助 BigQuery,您可以查询数 TB 的数据,而无需管理数据库管理员或任何基础架构。BigQuery 使用大家熟悉的 SQL 和按用量付费的收费模式。有了 BigQuery,您就可以专心分析数据,从中发掘有意义的数据洞见。

在本实验中,我们将学习如何查询 GitHub 公开数据集,这是 BigQuery 中提供的许多公开数据集之一。

学习内容

  • 使用 BigQuery
  • 编写查询以深入了解大型数据集

所需条件

  • 一个 Google Cloud Platform 项目
  • 一个浏览器,例如 ChromeFirefox

启用 BigQuery

如果您还没有 Google 帐号(Gmail 或 Google Apps),则必须创建一个

  • 登录 Google Cloud Platform Console (console.cloud.google.com) 并导航到 BigQuery。您还可以在浏览器中输入以下网址,直接打开 BigQuery 网页界面。
https://console.cloud.google.com/bigquery
  • 接受服务条款。
  • 您必须先创建一个项目,然后才能使用 BigQuery。按照提示创建新项目。

    选择一个项目名称并记下项目 ID。


    项目 ID 在所有 Google Cloud 项目中都是唯一名称。它稍后将在此 Codelab 中被称为 PROJECT_ID

此 Codelab 使用的是具有 BigQuery 沙盒限制的 BigQuery 资源。不需要结算帐号。如果您以后要移除沙盒限制,可以通过注册免费试用 Google Cloud Platform 来添加结算帐号。

在 BigQuery 网页界面中打开 GitHub 数据集。

https://console.cloud.google.com/bigquery?p=bigquery-public-data&d=github_repos&t=commits&page=table

快速预览数据。

打开查询编辑器,

输入此查询可在 GitHub 公开数据集中查找最常见的提交消息。

SELECT subject AS subject,
  COUNT(*) AS num_duplicates
FROM `bigquery-public-data.github_repos.sample_commits`
GROUP BY subject
ORDER BY num_duplicates DESC
LIMIT 100

由于 GitHub 数据集很大,因此在进行实验以节省费用时,使用较小的示例数据集会很有帮助。使用编辑器下方处理的字节数估算查询费用。

点击 Run query 按钮。

几秒钟后,结果将列在底部,并且还会显示处理的数据量以及用时:

尽管 sample_commits 表为 2.49 GB,但该查询仅处理了 35.8 MB。BigQuery 仅处理查询中所用列的字节,因此处理的数据总量可能明显小于表的大小。通过聚类分区,可以进一步减少处理的数据量。

现在尝试查询其他数据集,如其他某个公共数据集

例如,以下查询会在 Libraries.io 公共数据集中查找仍用作其他项目的依赖项的已弃用或未经维护的项目。

SELECT
  name,
  dependent_projects_count,
  language,
  status
FROM
  `bigquery-public-data.libraries_io.projects_with_repository_fields`
WHERE status IN ('Deprecated', 'Unmaintained')
ORDER BY dependent_projects_count DESC
LIMIT 100

其他组织还在 BigQuery 上公开提供了他们的数据。例如,GitHub Archive 数据集可用于分析 GitHub 上的公开事件,例如拉取请求、代码库星标和已打开的问题。Python Software Foundation&s_39;s PyPI 数据集可用于分析 Python 软件包的下载请求。

您已使用 BigQuery 和 SQL 查询 GitHub 公共数据集。您可以查询 PB 级数据集!

所学内容

  • 使用 SQL 语法查询 GitHub 提交记录
  • 编写查询以深入了解大型数据集

了解详情