使用 BigQuery 查询 GitHub 数据

1. 简介

BigQuery 是 Google 推出的全托管式低成本分析数据库。借助 BigQuery,您可以查询数 TB 的数据,而无需数据库管理员或任何基础架构进行管理。BigQuery 采用熟悉的 SQL 和“用多少,付多少”的收费模式。BigQuery 让您可以专心分析数据,发掘有意义的数据洞见。

在此 Codelab 中,您将了解如何查询 GitHub 公共数据集,这是 BigQuery 中提供的众多公共数据集之一。

学习内容

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

所需条件

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

2. 进行设置

启用 BigQuery

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

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

选择项目名称并记下项目 ID。5dHf3myqCTd3rm-fowZ_aU3An-T_NTgNnIZtQILio27us0xB3StjnSNnQraAnllEQCH4N2nMwLU1mnELwbNN85tbwNC_DbIdbxU8ufzJYW1MWpYu0hnbSrAajpAaRNs8UBeWFu68Aw

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

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

3. 预览 GitHub 数据

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

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

快速预览数据的显示方式。

ed0b9fce5eab1c6b.png

4. 查询 GitHub 数据

打开查询编辑器。

759423d320075d96

输入以下查询,以在 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 数据集很大,在通过实验节省费用的同时,使用较小的示例数据集会很有帮助。使用编辑器下方处理的字节数来估算查询费用。

fb66b7e9c6e838c.png

点击运行按钮。

几秒钟后,结果就会列在底部,其中会说明处理的数据量以及处理时间。

3ce1a59763d0dab5

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

5. 更多公开数据

现在尝试查询另一个数据集,例如其他公共数据集之一。

例如,以下查询会在 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 的 GH Archive 数据集可用于分析 GitHub 上的公开事件,例如拉取请求、代码库星数和待解决的问题。Python Software Foundation 的 PyPI 数据集可用于分析 Python 软件包的下载请求。

6. 恭喜!

您已使用 BigQuery 和 SQL 查询了 GitHub 公共数据集。您有权查询 PB 级数据集!

所学内容

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

了解详情