Sử dụng BigQuery để truy vấn dữ liệu trên GitHub

1. Giới thiệu

BigQuery là cơ sở dữ liệu phân tích chi phí thấp và được Google quản lý hoàn toàn. Với BigQuery, bạn có thể truy vấn nhiều terabyte dữ liệu mà không cần quản trị viên cơ sở dữ liệu hay bất kỳ cơ sở hạ tầng nào để quản lý. BigQuery sử dụng SQL quen thuộc và mô hình tính phí chỉ trả tiền theo giá bạn sử dụng. BigQuery giúp bạn tập trung vào việc phân tích dữ liệu để tìm ra những thông tin chi tiết có ý nghĩa.

Trong lớp học lập trình này, bạn sẽ tìm hiểu cách truy vấn tập dữ liệu công khai GitHub, một trong nhiều tập dữ liệu công khai hiện có trong BigQuery.

Kiến thức bạn sẽ học được

  • Cách sử dụng BigQuery
  • Cách viết truy vấn để thu thập thông tin chi tiết về một tập dữ liệu lớn

Bạn cần có

  • Một dự án trên Google Cloud
  • Một trình duyệt, chẳng hạn như Chrome hoặc Firefox

2. Bắt đầu thiết lập

Bật BigQuery

Nếu chưa có Tài khoản Google (Gmail hoặc Google Apps), bạn phải tạo một tài khoản.

  • Đăng nhập vào bảng điều khiển Google Cloud Platform ( console.cloud.google.com) và chuyển đến BigQuery. Bạn cũng có thể mở trực tiếp giao diện người dùng web BigQuery bằng cách nhập URL sau đây vào trình duyệt.
https://console.cloud.google.com/bigquery
  • Chấp nhận điều khoản dịch vụ.
  • Trước khi có thể sử dụng BigQuery, bạn phải tạo một dự án. Làm theo lời nhắc để tạo dự án mới.

Chọn tên dự án và ghi lại mã dự án. 5dHf3myqCTd3rm-fowZ_aU3An-T_NTgNnIZtQILio27us0xB3StjnSNnQraAnllEQCH4N2nMwLU1mnELwbNN85tbwNC_DbIdbxU8ufzJYW1MWpYu0hnbSrAajpAaRNs8UBeWFu68Aw

Mã dự án là tên riêng biệt của tất cả dự án trên Google Cloud. Lớp này sẽ được đề cập sau trong lớp học lập trình này là PROJECT_ID.

Lớp học lập trình này sử dụng tài nguyên BigQuery cùng với hạn mức hộp cát BigQuery. Không bắt buộc phải có tài khoản thanh toán. Nếu sau này bạn muốn xóa giới hạn hộp cát, bạn có thể thêm tài khoản thanh toán bằng cách đăng ký dùng thử miễn phí Google Cloud Platform.

3. Xem trước dữ liệu GitHub

Mở tập dữ liệu GitHub trong giao diện người dùng web BigQuery.

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

Xem trước nhanh về giao diện của dữ liệu.

ed0b9fce5eab1c6b.png

4. Truy vấn dữ liệu trên GitHub

Mở trình chỉnh sửa truy vấn.

759423d320075d96.pngS

Nhập truy vấn sau để tìm các thông báo cam kết phổ biến nhất trong tập dữ liệu công khai 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

Vì tập dữ liệu GitHub lớn nên sẽ giúp bạn sử dụng một tập dữ liệu mẫu nhỏ hơn trong khi thử nghiệm để tiết kiệm chi phí. Sử dụng các byte được xử lý bên dưới trình chỉnh sửa để ước tính chi phí truy vấn.

fb66b7e9c6e838c.png

Nhấp vào nút Run (Chạy).

Sau vài giây, kết quả sẽ xuất hiện ở dưới cùng và cho bạn biết lượng dữ liệu được xử lý cũng như khoảng thời gian xử lý.

3ce1a59763d0dab5.pngS

Mặc dù bảng sample_commits là 2,49 GB, truy vấn chỉ xử lý 35,8 MB. BigQuery chỉ xử lý các byte từ các cột được dùng trong truy vấn, vì vậy, tổng lượng dữ liệu được xử lý có thể nhỏ hơn đáng kể so với kích thước bảng. Nhờ tính năng nhómphân vùng, lượng dữ liệu được xử lý có thể giảm hơn nữa.

5. Dữ liệu công khai khác

Bây giờ, hãy thử truy vấn một tập dữ liệu khác, chẳng hạn như một trong các tập dữ liệu công khai khác.

Ví dụ: truy vấn sau đây tìm các dự án phổ biến không được dùng nữa hoặc không được duy trì trong tập dữ liệu công khai củaLibraries.io mà vẫn được dùng làm phần phụ thuộc trong các dự án khác:

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

Các tổ chức khác cũng đã cung cấp dữ liệu của họ công khai trong BigQuery. Ví dụ: Bạn có thể sử dụng tập dữ liệu GH Archive của GitHub để phân tích các sự kiện công khai trên GitHub, chẳng hạn như yêu cầu lấy dữ liệu, số sao lưu trữ và các vấn đề đã mở. Bạn có thể sử dụng tập dữ liệu PyPI của Python Software Foundation để phân tích yêu cầu tải xuống cho các gói Python.

6. Xin chúc mừng!

Bạn đã sử dụng BigQuery và SQL để truy vấn tập dữ liệu công khai trên GitHub. Bạn có quyền truy vấn các tập dữ liệu cỡ petabyte!

Nội dung bạn đã đề cập

  • Sử dụng cú pháp SQL để truy vấn bản ghi xác nhận trong GitHub
  • Viết truy vấn để thu thập thông tin chi tiết về một tập dữ liệu lớn

Tìm hiểu thêm