Membuat kueri data GitHub menggunakan BigQuery

BigQuery adalah database analisis Google yang terkelola sepenuhnya, tanpa pengoperasian (NoOps), dan hemat biaya. Dengan BigQuery, Anda dapat mengkueri data berskala terabyte tanpa perlu memiliki administrator database atau mengelola infrastruktur apa pun. BigQuery menggunakan SQL yang sudah dikenal dan model penagihan bayar sesuai penggunaan. Dengan BigQuery, Anda dapat berfokus pada analisis data untuk menemukan insight yang bermakna.

Di lab ini, kita akan melihat cara membuat kueri set data publik GitHub, salah satu dari banyak set data publik yang tersedia di BigQuery.

Yang akan Anda pelajari

  • Menggunakan BigQuery
  • Menulis kueri untuk mendapatkan insight tentang set data besar

Yang Anda butuhkan

  • Project Google Cloud Platform
  • Browser, seperti Chrome atau Firefox

Aktifkan BigQuery

Jika belum memiliki Akun Google (Gmail atau Google Apps), Anda harus membuatnya.

  • Login ke Konsol Google Cloud Platform (console.cloud.google.com) dan buka BigQuery. Anda juga dapat membuka UI web BigQuery secara langsung dengan memasukkan URL berikut di browser.
https://console.cloud.google.com/bigquery
  • Setujui persyaratan layanan.
  • Sebelum dapat menggunakan BigQuery, Anda harus membuat project. Ikuti perintah untuk membuat project baru Anda.

    Pilih nama project dan catat ID project.


    ID project adalah nama unik di semua project Google Cloud. Project ID tersebut selanjutnya akan dirujuk di codelab ini sebagai PROJECT_ID.

Codelab ini menggunakan resource BigQuery dalam batas sandbox BigQuery. Akun penagihan tidak diperlukan. Jika ingin menghapus batas sandbox nanti, Anda dapat menambahkan akun penagihan dengan mendaftar ke uji coba gratis Google Cloud Platform.

Buka set data GitHub di UI web BigQuery.

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

Dapatkan pratinjau cepat tentang tampilan data.

Buka Editor kueri,

masukkan kueri ini untuk menemukan pesan commit yang paling umum dalam set data publik 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

Karena set data GitHub berukuran besar, sebaiknya gunakan set data sampel yang lebih kecil saat Anda bereksperimen untuk menghemat biaya. Gunakan byte yang diproses di bawah editor untuk memperkirakan biaya kueri.

Klik tombol Run query.

Dalam beberapa detik, hasilnya akan tercantum di bagian bawah, dan juga akan memberi tahu Anda berapa banyak data yang diproses dan berapa lama waktu yang dibutuhkan:

Meskipun tabel sample_commits berukuran 2,49 GB, kueri hanya memproses 35,8 MB. BigQuery hanya memproses byte dari kolom yang digunakan dalam kueri, sehingga total jumlah data yang diproses dapat jauh lebih kecil daripada ukuran tabel. Dengan pengelompokan dan partisi, jumlah data yang diproses dapat dikurangi lebih lanjut.

Sekarang coba kueri set data lain, seperti salah satu set data publik lainnya.

Misalnya, kueri ini menemukan project populer yang tidak digunakan lagi atau tidak dikelola di set data publik Libraries.io yang masih digunakan sebagai dependensi di project lain.

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

Organisasi lain juga telah menyediakan data mereka secara publik di BigQuery. Misalnya, set data Arsip GitHub dapat digunakan untuk menganalisis peristiwa publik di GitHub seperti permintaan pull, bintang repositori, dan masalah yang dibuka. Set data PyPI Python Software Foundation dapat digunakan untuk menganalisis permintaan download paket Python.

Anda telah menggunakan BigQuery dan SQL untuk mengkueri set data publik GitHub. Anda memiliki kemampuan untuk membuat kueri set data skala petabyte.

Yang telah kita bahas

  • Menggunakan sintaksis SQL untuk membuat kueri catatan commit GitHub
  • Menulis kueri untuk mendapatkan insight tentang set data besar

Pelajari Lebih Lanjut