GSP009
Ringkasan
Dalam lab ini, Anda akan menganalisis data observasi cuaca historis dari NOAA menggunakan BigQuery, lalu memadukannya dengan data keluhan warga ke layanan 311 di New York City. Langkah ini sangat mirip dengan postingan blog Reto Meier yang menunjukkan bagaimana berbagai variabel data dapat saling berkorelasi.
Anda akan mencoba beberapa aspek Google Cloud yang sangat bermanfaat bagi para ilmuwan:
-
Serverless. Tidak perlu mendownload data ke komputer Anda untuk mengolahnya. Set data akan tetap tersimpan di cloud.
-
Kemudahan penggunaan. Jalankan kueri SQL ad-hoc pada set data Anda tanpa perlu menyiapkan data terlebih dahulu, seperti membuat indeks.
-
Skalabilitas. Lakukan eksplorasi data pada set data yang sangat besar secara interaktif. Anda tidak perlu melakukan pengambilan sampel data untuk mengolahnya secara cepat.
-
Kemampuan berbagi. Jalankan kueri pada data dari berbagai set data tanpa kendala apa pun. BigQuery adalah cara praktis untuk berbagi set data. Tentu saja, Anda juga dapat menjaga agar data tetap pribadi, atau membagikannya hanya kepada orang-orang tertentu. Tidak semua data harus bersifat publik.
Hasil akhirnya adalah Anda akan mengetahui jenis keluhan warga yang berkorelasi dengan cuaca. Misalnya, Anda akan mengetahui (dan temuan ini tidak mengherankan) bahwa keluhan mengenai tungku pemanas rumah paling sering muncul saat cuaca di luar sedang dingin.

Yang akan Anda pelajari
Dalam lab ini, Anda akan:
- Menjalankan kueri interaktif di konsol BigQuery.
- Menggabungkan dan menjalankan analisis pada beberapa set data.
- Menggunakan fungsi
CORR untuk menentukan korelasi positif, negatif, atau tidak ada korelasi antara set data.
Prasyarat
Ini adalah lab tingkat pemula dan ditujukan bagi Anda yang sudah memiliki pengalaman dengan BigQuery dan SQL. Jika Anda belum pernah menggunakan BigQuery atau MySQL, lab BigQuery: Qwik Start - Konsol dapat membantu Anda memahami layanan Google Cloud ini.
Penyiapan dan persyaratan
Sebelum mengklik tombol Start Lab
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
- Akses ke browser internet standar (disarankan browser Chrome).
Catatan: Gunakan jendela Samaran (direkomendasikan) atau browser pribadi untuk menjalankan lab ini. Hal ini akan mencegah konflik antara akun pribadi Anda dan akun siswa yang dapat menyebabkan tagihan ekstra pada akun pribadi Anda.
- Waktu untuk menyelesaikan lab. Ingat, setelah dimulai, lab tidak dapat dijeda.
Catatan: Hanya gunakan akun siswa untuk lab ini. Jika Anda menggunakan akun Google Cloud yang berbeda, Anda mungkin akan dikenai tagihan ke akun tersebut.
Cara memulai lab dan login ke Konsol Google Cloud
-
Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran.
Di sebelah kanan terdapat panel Lab setup and access yang berisi hal-hal berikut:
- Tombol Open Google Cloud console
- Kredensial sementara (nama pengguna dan sandi) yang harus Anda gunakan untuk lab ini
- Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
Perhatikan bahwa timer lab terletak di dekat bagian atas halaman, yang menampilkan waktu yang tersisa.
-
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.
Tips: Atur tab di jendela terpisah secara berdampingan.
Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
-
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
{{{user_0.username | "Username"}}}
Anda juga dapat menemukan Username di panel Lab setup and access.
-
Klik Next.
-
Salin Password di bawah dan tempel ke dialog Welcome.
{{{user_0.password | "Password"}}}
Anda juga dapat menemukan Password di panel Lab setup and access.
-
Klik Next.
Penting: Anda harus menggunakan kredensial yang diberikan lab. Jangan menggunakan kredensial akun Google Cloud Anda.
Catatan: Penggunaan akun Google Cloud sendiri untuk lab ini mungkin dikenai biaya tambahan.
-
Klik untuk melanjutkan ke halaman berikutnya:
- Setujui persyaratan dan ketentuan.
- Jangan tambahkan opsi pemulihan atau autentikasi 2 langkah (karena ini akun sementara).
- Jangan daftar uji coba gratis.
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Catatan: Untuk mengakses produk dan layanan Google Cloud, klik Navigation menu atau ketik nama layanan atau produk di kolom Search.
Tugas 1. Menjelajahi data cuaca
Membuka konsol BigQuery
- Di Konsol Google Cloud, pilih Navigation menu > BigQuery.
Kotak pesan Welcome to BigQuery in the Cloud Console akan terbuka. Kotak pesan ini menyediakan link ke panduan memulai dan catatan rilis.
- Klik Done.
Konsol BigQuery terbuka.
- Di tab Explorer, klik + Add data.
Jendela Add data terbuka.
-
Klik Star a project by name di bagian Additional sources.
-
Masukkan bigquery-public-data, lalu klik Star.
Di konsol BigQuery, Anda akan melihat dua project di panel Explorer, satu bernama project ID lab Anda, dan satu bernama bigquery-public-data.
-
Di panel Explorer konsol BigQuery, luaskan set data bigquery-public-data dan klik Dataset. Di kolom Enter property name or value, cari noaa_gsod dan pilih tabel gsod2014.
-
Di jendela Table (gsod2014), klik tab Preview.

-
Amati kolom dan beberapa nilai datanya.
-
Klik Query, lalu ganti dengan kueri berikut:
SELECT
-- Create a timestamp from the date components.
stn,
TIMESTAMP(CONCAT(year,"-",mo,"-",da)) AS timestamp,
-- Replace numerical null values with actual null
AVG(IF (temp=9999.9,
null,
temp)) AS temperature,
AVG(IF (wdsp="999.9",
null,
CAST(wdsp AS Float64))) AS wind_speed,
AVG(IF (prcp=99.99,
0,
prcp)) AS precipitation
FROM
`bigquery-public-data.noaa_gsod.gsod20*`
WHERE
CAST(YEAR AS INT64) > 2010
AND CAST(MO AS INT64) = 6
AND CAST(DA AS INT64) = 12
AND (stn="725030" OR -- La Guardia
stn="744860") -- JFK
GROUP BY
stn,
timestamp
ORDER BY
timestamp DESC,
stn ASC
- Klik Run. Lihat hasilnya dan coba cari tahu apa yang dilakukan kueri ini.
Klik Periksa progres saya untuk memverifikasi bahwa progres Anda berjalan sesuai harapan dalam lab ini.
Menjelajahi data cuaca
Tugas 2. Menjelajahi data keluhan warga New York
-
Di panel Explorer pada Konsol BigQuery, pilih set data bigquery-public-data yang baru ditambahkan, lalu klik Dataset. Di kolom Enter property name or value, cari set data new_york_311, lalu pilih tabel 311_service_requests.
-
Kemudian, klik tab Preview. Konsol Anda akan terlihat seperti berikut:

-
Amati kolom dan beberapa nilai datanya.
-
Jika editor telah ditutup, klik ikon "+" (kueri SQL).
-
Tempel teks berikut ke dalam kolom Editor kueri.
SELECT
EXTRACT(YEAR
FROM
created_date) AS year,
complaint_type,
COUNT(1) AS num_complaints
FROM
`bigquery-public-data.new_york.311_service_requests`
GROUP BY
year,
complaint_type
ORDER BY
num_complaints DESC
-
Klik Run.
-
Lihat hasilnya untuk menentukan keluhan yang paling umum. Di bagian selanjutnya dari lab ini, Anda akan mencoba menentukan apakah keluhan-keluhan ini berkorelasi dengan cuaca.
Klik Periksa progres saya untuk memverifikasi bahwa progres Anda berjalan sesuai harapan dalam lab ini.
Menjelajahi data keluhan warga New York
Tugas 3. Menyimpan tabel baru data cuaca
-
Di panel Explorer pada Konsol BigQuery, klik tiga titik di samping Project ID Anda, lalu pilih Create dataset.
-
Di dialog Create dataset, setel Dataset ID ke demos dan biarkan opsi lain tetap pada nilai defaultnya.
-
Klik Create dataset. Project Anda sekarang memiliki set data bernama demos.
-
Klik ikon "+" (kueri SQL), lalu jalankan kueri berikut:
SELECT
-- Create a timestamp from the date components.
timestamp(concat(year,"-",mo,"-",da)) as timestamp,
-- Replace numerical null values with actual nulls
AVG(IF (temp=9999.9, null, temp)) AS temperature,
AVG(IF (visib=999.9, null, visib)) AS visibility,
AVG(IF (wdsp="999.9", null, CAST(wdsp AS Float64))) AS wind_speed,
AVG(IF (gust=999.9, null, gust)) AS wind_gust,
AVG(IF (prcp=99.99, null, prcp)) AS precipitation,
AVG(IF (sndp=999.9, null, sndp)) AS snow_depth
FROM
`bigquery-public-data.noaa_gsod.gsod20*`
WHERE
CAST(YEAR AS INT64) > 2008
AND (stn="725030" OR -- La Guardia
stn="744860") -- JFK
GROUP BY timestamp
-
Di bagian EDITOR kueri, klik Edit > Query settings.
-
Dalam dialog Query settings, setel kolom berikut. Biarkan semua kolom lain tetap pada nilai defaultnya.
Destination: Pilih Set a destination table for query results
Dataset: Ketik .demos dan pilih set data Anda.
Table Id: Ketik nyc_weather
Results size: Centang Allow large results (no size limit)
-
Klik Save
-
Klik Run.
Hasilnya kini disimpan dalam set data yang Anda buat (demos).
-
Kembali ke Edit > Query settings dan, di opsi Destination, pilih Save query results in a temporary table. Tindakan ini menghapus set data demos sebagai tujuan untuk kueri mendatang.
-
Klik Save untuk menutup setelan kueri.
Klik Periksa progres saya untuk memverifikasi bahwa progres Anda berjalan sesuai harapan dalam lab ini.
Menyimpan tabel baru data cuaca
Tugas 4. Menemukan korelasi antara set data
Korelasi kuat, sebagaimana diukur dengan fungsi CORR, menunjukkan adanya hubungan yang erat dan konsisten antara dua variabel. Seiring dengan meningkatnya nilai satu variabel, nilai variabel lainnya juga cenderung meningkat (korelasi positif) atau menurun (korelasi negatif) secara terprediksi. Korelasi kuat umumnya dianggap sebagai nilai yang lebih besar dari atau sama dengan 0,7 secara absolut. Artinya, perubahan pada satu variabel dapat menjelaskan setidaknya 49% perubahan pada variabel lainnya.
Selanjutnya, Anda akan membandingkan jumlah keluhan yang diterima dengan suhu harian menggunakan fungsi CORR.
- Buat kueri SQL, "+", dan jalankan kueri berikut:
SELECT
descriptor,
sum(complaint_count) as total_complaint_count,
count(temperature) as data_count,
ROUND(corr(temperature, avg_count),3) AS corr_count,
ROUND(corr(temperature, avg_pct_count),3) AS corr_pct
From (
SELECT
avg(pct_count) as avg_pct_count,
avg(day_count) as avg_count,
sum(day_count) as complaint_count,
descriptor,
temperature
FROM (
SELECT
DATE(timestamp) AS date,
temperature
FROM
demos.nyc_weather) a
JOIN (
SELECT x.date, descriptor, day_count, day_count / all_calls_count as pct_count
FROM
(SELECT
DATE(created_date) AS date,
concat(complaint_type, ": ", descriptor) as descriptor,
COUNT(*) AS day_count
FROM
`bigquery-public-data.new_york.311_service_requests`
GROUP BY
date,
descriptor)x
JOIN (
SELECT
DATE(timestamp) AS date,
COUNT(*) AS all_calls_count
FROM `demos.nyc_weather`
GROUP BY date
)y
ON x.date=y.date
)b
ON
a.date = b.date
GROUP BY
descriptor,
temperature
)
GROUP BY descriptor
HAVING
total_complaint_count > 5000 AND
ABS(corr_pct) > 0.5 AND
data_count > 5
ORDER BY
ABS(corr_pct) DESC
Hasil menunjukkan bahwa keluhan Pemanas berkorelasi negatif dengan suhu (misalnya lebih banyak panggilan tentang pemanas pada hari yang dingin) dan panggilan tentang pohon mati berkorelasi positif dengan suhu (misalnya lebih banyak panggilan pada hari yang panas).
Berikutnya, bandingkan jumlah keluhan dan kecepatan angin menggunakan fungsi CORR.
- Klik ikon "+" (kueri SQL) dan jalankan kueri berikut:
SELECT
descriptor,
sum(complaint_count) as total_complaint_count,
count(wind_speed) as data_count,
ROUND(corr(wind_speed, avg_count),3) AS corr_count,
ROUND(corr(wind_speed, avg_pct_count),3) AS corr_pct
From (
SELECT
avg(pct_count) as avg_pct_count,
avg(day_count) as avg_count,
sum(day_count) as complaint_count,
descriptor,
wind_speed
FROM (
SELECT
DATE(timestamp) AS date,
wind_speed
FROM
demos.nyc_weather) a
JOIN (
SELECT x.date, descriptor, day_count, day_count / all_calls_count as pct_count
FROM
(SELECT
DATE(created_date) AS date,
concat(complaint_type, ": ", descriptor) as descriptor,
COUNT(*) AS day_count
FROM
`bigquery-public-data.new_york.311_service_requests`
GROUP BY
date,
descriptor)x
JOIN (
SELECT
DATE(timestamp) AS date,
COUNT(*) AS all_calls_count
FROM `demos.nyc_weather`
GROUP BY date
)y
ON x.date=y.date
)b
ON
a.date = b.date
GROUP BY
descriptor,
wind_speed
)
GROUP BY descriptor
HAVING
total_complaint_count > 5000 AND
ABS(corr_pct) > 0.5 AND
data_count > 5
ORDER BY
ABS(corr_pct) DESC
- Perhatikan bahwa nilai pada kolom Corr sama-sama negatif untuk keluhan terkait kebisingan. Apakah Anda memiliki hipotesis mengapa keluhan kebisingan berkurang pada hari yang berangin? Apakah koefisiennya signifikan secara statistik?
Klik Periksa progres saya untuk memverifikasi bahwa progres Anda berjalan sesuai harapan dalam lab ini.
Menemukan korelasi antara cuaca dan keluhan
Selamat!
Dalam lab ini, Anda telah berhasil menjalankan kueri data tanpa perlu menyiapkan cluster, membuat indeks, dan sebagainya. Anda juga telah menggabungkan kedua set data serta mengorelasikan hasilnya, yang memberi Anda beberapa insight menarik.
Langkah berikutnya/Pelajari lebih lanjut
Sertifikasi dan pelatihan Google Cloud
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual Terakhir Diperbarui: 12 Juni 2026
Lab Terakhir Diuji: 12 Juni 2026
Hak cipta 2026 Google LLC. Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.