1. 簡介
BigQuery 是 Google 的全代管低成本數據分析資料庫。您可以使用 BigQuery 查詢 TB 規模的資料,不必管理基礎架構,也不需要資料庫管理員。BigQuery 使用熟悉的 SQL,並採用「即付即用」的計費模式。您可專心分析資料,找出有意義的深入分析結果。
在本程式碼研究室中,您將瞭解如何查詢 GitHub 公開資料集,這是 BigQuery 中提供的眾多公開資料集之一。
課程內容
- 如何使用 BigQuery
- 如何編寫查詢,深入瞭解大型資料集
軟硬體需求
2. 做好準備
啟用 BigQuery
如果您沒有 Google 帳戶 (Gmail 或 Google 應用程式),請先建立帳戶。
- 登入 Google Cloud Platform 控制台 ( console.cloud.google.com),然後前往 BigQuery。您也可以在瀏覽器中輸入下列網址,直接開啟 BigQuery 網頁版 UI。
https://console.cloud.google.com/bigquery
- 接受服務條款。
- 您必須先建立專案,才能使用 BigQuery。請依照提示建立新專案。
選擇專案名稱,並記下專案 ID。
所有 Google Cloud 專案的專案 ID 都是不重複的名稱。本程式碼研究室稍後會將其稱為 PROJECT_ID。
本程式碼研究室使用的 BigQuery 資源,不會超出 BigQuery 沙箱限制。不需要帳單帳戶。如要移除沙箱限制,請註冊 Google Cloud Platform 免費試用方案,並新增帳單帳戶。
3. 預覽 GitHub 資料
在 BigQuery 網頁版 UI 中開啟 GitHub 資料集。
https://console.cloud.google.com/bigquery?p=bigquery-public-data&d=github_repos&t=commits&page=table
快速預覽資料的樣貌。

4. 查詢 GitHub 資料
開啟查詢編輯器。

輸入下列查詢,找出 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 資料集很大,因此在實驗時使用較小的樣本資料集,有助於節省成本。使用編輯器下方的處理位元組數,預估查詢費用。

按一下「執行」按鈕。
結果會在幾秒後顯示在底部,並說明處理的資料量和所需時間。

即使 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 軟體基金會的 PyPI 資料集,分析 Python 套件的下載要求。
6. 恭喜!
您已使用 BigQuery 和 SQL 查詢 GitHub 公開資料集。您有權查詢 PB 規模的資料集!
涵蓋內容
- 使用 SQL 語法查詢 GitHub 提交記錄
- 撰寫查詢,深入瞭解大型資料集
瞭解詳情
- 透過 Kaggle 的 SQL 簡介學習 SQL。
- 請參閱 BigQuery 說明文件。
- 如要瞭解其他使用者如何運用 GitHub 資料集,請參閱這篇網誌文章。
- 在 TIL with BigQuery 中探索天氣資料、犯罪資料等。
- 瞭解如何使用 BigQuery 指令列工具將資料載入 BigQuery。
- 歡迎前往 BigQuery 子論壇,瞭解其他人目前如何使用 BigQuery。