BigQuery 是 Google 的全代管,是免人工管理的低成本分析資料庫。有了 BigQuery,您無須具備資料庫管理員或任何管理基礎架構,即可查詢 TB 規模的資料。BigQuery 使用您熟悉的 SQL,並提供「用多少付多少」的計費模式。BigQuery 可讓您專心分析資料,找出有意義的分析資料。
在本研究室中,我們將示範如何查詢 GitHub 公開資料集,這是 BigQuery 提供的公開資料集之一。
您將會瞭解的內容
- 使用 BigQuery
- 撰寫查詢以深入瞭解大型資料集
軟硬體需求
啟用 BigQuery
如果您還沒有 Google 帳戶 (Gmail 或 Google Apps),請先建立帳戶。
- 登入 Google Cloud Platform 主控台 (console.cloud.google.com),然後前往 BigQuery。你也可以在瀏覽器中輸入下列網址,直接開啟 BigQuery 網頁版 UI。
https://console.cloud.google.com/bigquery
- 接受服務條款。
- 您必須先建立專案,才能使用 BigQuery。按照提示建立新專案。
選擇專案名稱並記下專案 ID。
專案 ID 是所有 Google Cloud 專案中的專屬名稱。此程式碼研究室稍後將稱為PROJECT_ID
。
本程式碼研究室使用的 BigQuery 資源設有 BigQuery 沙箱限制。不一定要有帳單帳戶。如果您日後想要移除沙箱限制,只要申請 Google Cloud Platform 免費試用,就能新增帳單帳戶。
在 BigQuery 網頁版 UI 中開啟 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 封存資料集可用來分析 GitHub 上的公開事件,例如提取要求、存放區星號和開啟的問題。Python 軟體基金會 (PyPI Foundation) 可用來分析 Python 套件的下載要求。
您已使用 BigQuery 和 SQL 查詢 GitHub 公開資料集。您有權查詢 PB 規模的資料集!
適用範圍
- 使用 SQL 語法查詢 GitHub 修訂版本記錄
- 撰寫查詢以深入瞭解大型資料集
瞭解詳情
- 透過 Kaggle 簡介 SQL 課程瞭解 SQL。
- 探索 BigQuery 說明文件。
- 閱讀這篇網誌文章,瞭解其他人如何使用 GitHub 資料集。
- 透過 TIL 使用 BigQuery 探索天氣資料、犯罪資料等內容。
- 瞭解如何使用 BigQuery 指令列工具將資料載入 BigQuery。
- 查看 BigQuery subreddit,瞭解其他人如何使用 BigQuery