Mengkueri {i>dataset

1. Ringkasan

BigQuery adalah database analisis berbiaya rendah, tanpa pengoperasian, dan terkelola sepenuhnya dari Google. Dengan BigQuery, Anda dapat membuat kueri data berukuran terabyte dan terabyte tanpa memiliki infrastruktur untuk dikelola, dan tidak memerlukan administrator database. BigQuery menggunakan SQL yang sudah dikenal dan dapat memanfaatkan model bayar sesuai penggunaan. Dengan BigQuery, Anda dapat berfokus pada analisis data untuk menemukan insight yang bermakna.

Dalam codelab ini, Anda akan menjelajahi set data Wikipedia menggunakan BigQuery.

Yang akan Anda pelajari

  • Cara menggunakan BigQuery
  • Cara memuat {i>dataset<i} dunia nyata ke dalam BigQuery
  • Cara menulis kueri untuk mendapatkan insight tentang {i>dataset<i} yang besar

Yang Anda butuhkan

Survei

Bagaimana Anda akan menggunakan tutorial ini?

Hanya baca Membacanya dan menyelesaikan latihan

Bagaimana penilaian Anda terhadap pengalaman Anda menggunakan Google Cloud?

Pemula Menengah Mahir

2. Penyiapan dan persyaratan

Mengaktifkan BigQuery

Jika belum memiliki Akun Google, Anda harus membuatnya.

  1. Login ke Konsol Google Cloud, lalu buka BigQuery. Anda juga dapat membuka UI web BigQuery secara langsung dengan memasukkan URL berikut di browser Anda.
https://console.cloud.google.com/bigquery
  1. Setujui persyaratan layanan.
  2. Sebelum dapat menggunakan BigQuery, Anda harus membuat proyek. Ikuti petunjuk untuk membuat project baru.

Pilih nama project dan catat ID project-nya. 1884405a64ce5765.pngS

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 nanti Anda ingin menghapus batas sandbox, Anda dapat menambahkan akun penagihan dengan mendaftar ke uji coba gratis Google Cloud.

Anda memuat {i>dataset <i}Wikipedia di bagian selanjutnya.

3. Membuat set data

Pertama, buat set data baru dalam project. Set data terdiri dari beberapa tabel.

  1. Untuk membuat set data, klik nama project di bawah panel resource, lalu klik Create dataset:

4a5983b4dc299705.pngS

  1. Masukkan lab sebagai ID Set Data:

a592b5b9be20fdec.png

  1. Klik Create dataset untuk membuat set data kosong.

4. Memuat data dengan program command line bq

Mengaktifkan Cloud Shell

  1. Dari Cloud Console, klik Aktifkan Cloud Shell 4292cbf4971c9786.pngS.

bce75f34b2c53987.png

Jika belum pernah memulai Cloud Shell, Anda akan melihat layar perantara (di paruh bawah) yang menjelaskan apa itu Cloud Shell. Jika demikian, klik Lanjutkan (dan Anda tidak akan pernah melihatnya lagi). Berikut tampilan layar sekali-tampil tersebut:

70f315d7b402b476.pngS

Perlu waktu beberapa saat untuk penyediaan dan terhubung ke Cloud Shell.

fbe3a0674c982259.png

Mesin virtual ini dimuat dengan semua alat pengembangan yang Anda butuhkan. Layanan ini menawarkan direktori beranda tetap sebesar 5 GB dan beroperasi di Google Cloud, sehingga sangat meningkatkan performa dan autentikasi jaringan. Sebagian besar pekerjaan Anda dalam codelab ini dapat dilakukan hanya dengan browser atau Chromebook.

Setelah terhubung ke Cloud Shell, Anda akan melihat bahwa Anda sudah diautentikasi dan project sudah ditetapkan ke project ID Anda.

  1. Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa Anda telah diautentikasi:
gcloud auth list

Output perintah

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
  1. Jalankan perintah berikut di Cloud Shell untuk mengonfirmasi bahwa perintah gcloud mengetahui project Anda:
gcloud config list project

Output perintah

[core]
project = <PROJECT_ID>

Jika tidak, Anda dapat menyetelnya dengan perintah ini:

gcloud config set project <PROJECT_ID>

Output perintah

Updated property [core/project].

Memuat data ke BigQuery

Untuk memudahkan Anda, sebagian data untuk 10 April 2019, dari set data kunjungan halaman Wikimedia tersedia di Google Cloud Storage di gs://cloud-samples-data/third-party/wikimedia/pageviews/pageviews-20190410-140000.gz. File data berupa file CSV GZip. Anda dapat memuat file ini secara langsung menggunakan utilitas command line bq. Sebagai bagian dari perintah load, Anda juga menjelaskan skema filenya.

bq load \
  --source_format CSV \
  --field_delimiter " " \
  --allow_jagged_rows \
  --quote "" \
  --max_bad_records 3 \
  $GOOGLE_CLOUD_PROJECT:lab.pageviews_20190410_140000 \
  gs://cloud-samples-data/third-party/wikimedia/pageviews/pageviews-20190410-140000.gz \
  wiki,title,requests:integer,zero:integer

Anda menggunakan beberapa opsi lanjutan untuk memuat file kunjungan halaman:

  • Tetapkan --source_format CSV untuk menunjukkan bahwa file harus diurai sebagai file CSV. Langkah ini opsional karena CSV adalah format default.
  • Setel --field_delimiter " " untuk menunjukkan bahwa satu spasi digunakan untuk membatasi kolom.
  • Tetapkan --allow_jagged_rows untuk menyertakan baris dengan jumlah kolom yang lebih sedikit dan mengabaikan error saat memuat file CSV.
  • Setel --quote "" untuk menunjukkan bahwa string tidak diberi tanda kutip.
  • Setel --max_bad_records 3 untuk mengabaikan maksimal 3 error saat mengurai file CSV.

Anda dapat mempelajari lebih lanjut command line bq dalam dokumentasi.

5. Melihat pratinjau Set data

Di konsol BigQuery, buka salah satu tabel yang baru saja Anda muat.

  1. Memperluas project.
  2. Luaskan set data.
  3. Pilih tabel. 99f875c838ed9a58.pngS

Anda dapat melihat skema tabel di tab Schema. 4. Cari tahu jumlah data yang ada di tabel dengan membuka tab Detail:

742cd54fbf17085.pngS

  1. Buka tab Preview untuk melihat pilihan baris dari tabel.

397a9c25480735cc.pngS

6. Menulis kueri

  1. Klik Compose new query:

cc28282a25c9746e.png

Tindakan ini akan menampilkan Query editor:

e881286d275ab4ec.png

  1. Temukan jumlah total tampilan Wikimedia antara pukul 14.00 dan 15.00 pada 10 April 2019, dengan menulis kueri ini:
SELECT SUM(requests)
FROM `lab.pageviews_20190410_140000`
  1. Klik Run:

9abb7c4039961f5b.pngS

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

a119b65f2ca49e41.png

Kueri ini memproses 123,9 MB, padahal tabelnya 691,4 MB. BigQuery hanya memproses byte dari kolom yang digunakan dalam kueri, sehingga jumlah total data yang diproses bisa jauh lebih kecil daripada ukuran tabel. Dengan pengelompokan dan partisi, jumlah data yang diproses dapat dikurangi lebih lanjut.

7. Kueri lanjutan lainnya

Menemukan kunjungan halaman Wikipedia

Set data Wikimedia berisi kunjungan halaman untuk semua project Wikimedia (termasuk Wikipedia, Wiktionary, Wikibooks, dan Wikiquotes). Persempit kueri ke hanya halaman Wikipedia bahasa Inggris dengan menambahkan pernyataan WHERE:

SELECT SUM(requests), wiki
FROM `lab.pageviews_20190410_140000`
WHERE wiki = "en"
GROUP BY wiki

d6c6c7901c314da7.png

Perhatikan bahwa, dengan membuat kueri kolom tambahan, wiki, jumlah data yang diproses meningkat dari 124 MB menjadi 204 MB.

BigQuery mendukung banyak klausa SQL yang sudah dikenal, seperti CONTAINS, GROUP BY, ORDER BY, dan sejumlah fungsi agregasi. Selain itu, Anda juga dapat menggunakan ekspresi reguler untuk mengajukan kueri bidang teks. Coba salah satu:

SELECT title, SUM(requests) requests
FROM `lab.pageviews_20190410_140000`
WHERE
  wiki = "en"
  AND REGEXP_CONTAINS(title, 'Red.*t')
GROUP BY title
ORDER BY requests DESC

Membuat kueri di beberapa tabel

Anda dapat memilih rentang tabel untuk membentuk gabungan menggunakan tabel karakter pengganti.

  1. Pertama, buat tabel kedua untuk dikueri dengan memuat tayangan halaman dari jam berikutnya ke tabel baru:
bq load \
  --source_format CSV \
  --field_delimiter " " \
  --quote "" \
  $GOOGLE_CLOUD_PROJECT:lab.pageviews_20190410_150000 \
  gs://cloud-samples-data/third-party/wikimedia/pageviews/pageviews-20190410-150000.gz \
  wiki,title,requests:integer,zero:integer
  1. Di Editor kueri, buat kueri pada kedua tabel yang Anda muat dengan membuat kueri tabel dengan "pageviews_2019" sebagai awalan:
SELECT title, SUM(requests) requests
FROM `lab.pageviews_2019*`
WHERE
  wiki = "en"
  AND REGEXP_CONTAINS(title, 'Red.*t')
GROUP BY title
ORDER BY requests DESC

Anda dapat memfilter tabel secara lebih selektif dengan kolom pseudo _TABLE_SUFFIX. Kueri ini membatasi tabel yang terkait dengan 10 April.

SELECT title, SUM(requests) requests
FROM `lab.pageviews_2019*`
WHERE
  _TABLE_SUFFIX BETWEEN '0410' AND '0410_9999999'
  AND wiki = "en"
  AND REGEXP_CONTAINS(title, 'Red.*t')
GROUP BY title
ORDER BY requests DESC

8. Pembersihan

Secara opsional, hapus set data yang Anda buat dengan perintah bq rm. Gunakan tanda -r untuk menghapus tabel yang ada di dalamnya.

bq rm -r lab

9. Selamat!

Anda telah menggunakan BigQuery dan SQL untuk membuat kueri {i>dataset<i} tayangan halaman Wikipedia di dunia nyata. Anda memiliki kemampuan untuk membuat kueri set data berskala petabyte!

Pelajari lebih lanjut