arrow_back

Memecahkan Masalah Error SQL Umum dengan BigQuery

Login Gabung
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Memecahkan Masalah Error SQL Umum dengan BigQuery

Lab 50 menit universal_currency_alt No cost show_chart Pengantar
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP408

Lab Mandiri Google Cloud

Ringkasan

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

Set data e-commerce yang baru tersedia dan memiliki jutaan kumpulan data Google Analytics untuk Google Merchandise Store telah dimuat ke dalam BigQuery. Anda memiliki salinan set data tersebut untuk lab ini dan akan menjelajahi kolom dan baris yang tersedia untuk mendapatkan insight.

Lab ini akan memandu Anda memahami logika kueri pemecahan masalah dan menyediakan beragam aktivitas dalam konteks skenario dunia nyata. Di sepanjang lab ini, bayangkan Anda bekerja dengan seorang analis data baru di tim Anda yang memberikan kueri di bawah untuk menjawab beberapa pertanyaan terkait set data e-commerce Anda. Gunakan jawaban atas pertanyaan tersebut untuk memperbaiki kuerinya guna mendapatkan hasil yang bermakna.

Yang akan Anda pelajari

Di lab ini, Anda akan mempelajari cara melakukan tugas berikut:

  • Menyematkan project ke hierarki resource BigQuery
  • Menggunakan editor kueri dan validator kueri BigQuery untuk mengidentifikasi dan memecahkan masalah error logika dan sintaksis SQL

Penyiapan dan persyaratan

Sebelum mengklik tombol Mulai 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 praktik ini dapat Anda gunakan untuk melakukan sendiri 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 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: Jika Anda sudah memiliki project atau akun pribadi Google Cloud, jangan menggunakannya untuk lab ini agar terhindar dari tagihan ekstra pada akun Anda.

Cara memulai lab dan login ke Google Cloud Console

  1. Klik tombol Start Lab. Jika Anda perlu membayar lab, jendela pop-up akan terbuka untuk memilih metode pembayaran. Di sebelah kiri adalah panel Lab Details dengan berikut ini:

    • Tombol Open Google Console
    • Waktu tersisa
    • Kredensial sementara yang harus Anda gunakan untuk lab ini
    • Informasi lain, jika diperlukan, untuk menyelesaikan lab ini
  2. Klik Open Google Console. Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Login.

    Tips: Atur tab di jendela terpisah secara berdampingan.

    Catatan: Jika Anda melihat dialog Choose an account, klik Use Another Account.
  3. Jika perlu, salin Username dari panel Lab Details dan tempel ke dialog Sign in. Klik Next.

  4. Salin Password dari panel Lab Details dan tempel ke dialog Welcome. Klik Next.

    Penting: Anda harus menggunakan kredensial dari panel sebelah kiri. Jangan menggunakan kredensial Google Cloud Skills Boost. Catatan: Menggunakan akun Google Cloud sendiri untuk lab ini dapat dikenai biaya tambahan.
  5. Klik 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, Cloud Console akan terbuka di tab ini.

Catatan: Anda dapat melihat menu dengan daftar Produk dan Layanan Google Cloud dengan mengklik Menu navigasi di kiri atas. Ikon menu navigasi

Tugas 1. Menyematkan project ke hierarki resource BigQuery

  1. Klik Navigation menu Ikon Navigation menu > BigQuery.

Kotak pesan Welcome to BigQuery pada Konsol Cloud akan terbuka.

Catatan: Kotak pesan Welcome to BigQuery pada Konsol Cloud menampilkan link ke panduan memulai dan update UI.
  1. Klik Done.

  2. Set data publik BigQuery tidak ditampilkan secara default. Untuk membuka project set data publik, salin data-to-insights.

  3. Klik + Add > Star a project by name lalu tempel nama data-to-insights.

  4. Klik Star.

Project data-to-insights dicantumkan pada bagian Explorer.

Editor kueri dan validator kueri BigQuery

Untuk setiap aktivitas di bagian-bagian selanjutnya, lab ini menyediakan kueri dengan error umum yang harus Anda pecahkan. Lab akan mengarahkan Anda pada hal yang perlu diperhatikan serta menyarankan cara memperbaiki sintaksis dan menampilkan hasil yang bermakna.

Untuk mengikuti pemecahan masalah dan saran yang diberikan, salin dan tempel kueri ke editor kueri BigQuery. Jika terjadi error, Anda akan melihat tanda seru merah pada baris yang berisi error dan di validator kueri (pojok bawah).

Editor Kueri BigQuery

Jika Anda menjalankan kueri yang berisi error, kueri tersebut akan gagal dan error-nya akan diuraikan di Job information.

Kotak info kueri yang gagal

Jika kueri bebas dari error, Anda akan melihat tanda centang hijau di validator kueri. Jika tanda centang hijau ditampilkan, klik Run untuk menjalankan kueri dan melihat hasil yang akan Anda dapatkan.

Tanda centang hijau di validator kueri

Catatan: Untuk informasi tentang sintaksis, lihat Sintaksis Kueri SQL Standar.

Tugas 2. Menemukan jumlah total pelanggan yang menyelesaikan proses checkout

Sasaran Anda di bagian ini adalah membuat kueri yang memberikan jumlah pengunjung unik yang berhasil menyelesaikan proses checkout untuk situs Anda. Data ini terdapat dalam tabel rev_transactions yang disediakan tim analis data Anda. Mereka juga memberikan contoh kueri untuk membantu Anda memulai analisis, tetapi Anda tidak yakin apakah mereka menuliskannya dengan benar.

Memecahkan masalah kueri yang berisi error validator kueri, alias, dan koma

  • Lihat kueri di bawah dan jawab pertanyaan berikut:
#standardSQL SELECT FROM `data-to-inghts.ecommerce.rev_transactions` LIMIT 1000

  • Bagaimana dengan kueri yang telah diperbarui ini?
#standardSQL SELECT * FROM [data-to-insights:ecommerce.rev_transactions] LIMIT 1000

  • Bagaimana dengan kueri yang menggunakan SQL Standar ini?
#standardSQL SELECT FROM `data-to-insights.ecommerce.rev_transactions`

  • Bagaimana dengan yang ini? Kueri ini memiliki kolom:
#standardSQL SELECT fullVisitorId FROM `data-to-insights.ecommerce.rev_transactions`

  • Bagaimana dengan yang ini? Kueri ini memiliki judul halaman:
#standardSQL SELECT fullVisitorId hits_page_pageTitle FROM `data-to-insights.ecommerce.rev_transactions` LIMIT 1000

  • Bagaimana dengan yang ini? Koma yang hilang telah dikoreksi.
#standardSQL SELECT fullVisitorId , hits_page_pageTitle FROM `data-to-insights.ecommerce.rev_transactions` LIMIT 1000

Jawaban: Kueri ini menampilkan hasil, tetapi apakah Anda yakin pengunjung tidak dihitung dua kali? Selain itu, dengan hanya menampilkan satu baris, kueri ini menjawab pertanyaan berapa banyak pengunjung unik yang menyelesaikan proses checkout. Di bagian berikutnya, Anda akan mempelajari cara menggabung hasil.

Memecahkan masalah kueri yang berisi error logika, pernyataan GROUP BY, dan filter karakter pengganti

  • Gabung kueri berikut untuk menjawab pertanyaan: Berapa banyak pengunjung unik yang menyelesaikan proses checkout?
#standardSQL SELECT fullVisitorId , hits_page_pageTitle FROM `data-to-insights.ecommerce.rev_transactions` LIMIT 1000
  • Bagaimana dengan yang ini? Fungsi agregasi COUNT() telah ditambahkan:
#standardSQL SELECT COUNT(fullVisitorId) AS visitor_count , hits_page_pageTitle FROM `data-to-insights.ecommerce.rev_transactions`

  • Dalam kueri berikut, pernyataan GROUP BY dan DISTINCT ditambahkan:
#standardSQL SELECT COUNT(DISTINCT fullVisitorId) AS visitor_count , hits_page_pageTitle FROM `data-to-insights.ecommerce.rev_transactions` GROUP BY hits_page_pageTitle

Hasil Tabel hasil

Bagus. Hasilnya baik, tetapi terlihat aneh.

  • Filter untuk hanya menampilkan "Checkout Confirmation" dalam hasil:
#standardSQL SELECT COUNT(DISTINCT fullVisitorId) AS visitor_count , hits_page_pageTitle FROM `data-to-insights.ecommerce.rev_transactions` WHERE hits_page_pageTitle = "Checkout Confirmation" GROUP BY hits_page_pageTitle

Klik Check my progress untuk memverifikasi tujuan. Menemukan jumlah total pelanggan yang menyelesaikan proses checkout

Tugas 3. Menampilkan daftar kota dengan jumlah transaksi terbanyak di situs e-commerce Anda

Memecahkan masalah pengurutan, kolom kalkulasi, dan pemfilteran setelah menggabung error

  1. Lengkapi kueri yang baru ditulis sebagian berikut:
SELECT geoNetwork_city, totals_transactions, COUNT( DISTINCT fullVisitorId) AS distinct_visitors FROM `data-to-insights.ecommerce.rev_transactions` GROUP BY

Solusi yang mungkin:

#standardSQL SELECT geoNetwork_city, SUM(totals_transactions) AS totals_transactions, COUNT( DISTINCT fullVisitorId) AS distinct_visitors FROM `data-to-insights.ecommerce.rev_transactions` GROUP BY geoNetwork_city
  1. Perbarui kueri sebelumnya untuk mengurutkan kota teratas terlebih dahulu.

Solusi yang mungkin:

#standardSQL SELECT geoNetwork_city, SUM(totals_transactions) AS totals_transactions, COUNT( DISTINCT fullVisitorId) AS distinct_visitors FROM `data-to-insights.ecommerce.rev_transactions` GROUP BY geoNetwork_city ORDER BY distinct_visitors DESC
  1. Perbarui kueri Anda dan buat kolom kalkulasi baru untuk menampilkan jumlah rata-rata produk per pesanan menurut kota.

Solusi yang mungkin:

#standardSQL SELECT geoNetwork_city, SUM(totals_transactions) AS total_products_ordered, COUNT( DISTINCT fullVisitorId) AS distinct_visitors, SUM(totals_transactions) / COUNT( DISTINCT fullVisitorId) AS avg_products_ordered FROM `data-to-insights.ecommerce.rev_transactions` GROUP BY geoNetwork_city ORDER BY avg_products_ordered DESC

Hasil

Tabel hasil

Filter hasil gabungan Anda agar hanya menampilkan kota yang memiliki lebih dari 20 avg_products_ordered.

  • Apa yang salah dengan kueri berikut?
#standardSQL SELECT geoNetwork_city, SUM(totals_transactions) AS total_products_ordered, COUNT( DISTINCT fullVisitorId) AS distinct_visitors, SUM(totals_transactions) / COUNT( DISTINCT fullVisitorId) AS avg_products_ordered FROM `data-to-insights.ecommerce.rev_transactions` WHERE avg_products_ordered > 20 GROUP BY geoNetwork_city ORDER BY avg_products_ordered DESC

Solusi yang mungkin:

#standardSQL SELECT geoNetwork_city, SUM(totals_transactions) AS total_products_ordered, COUNT( DISTINCT fullVisitorId) AS distinct_visitors, SUM(totals_transactions) / COUNT( DISTINCT fullVisitorId) AS avg_products_ordered FROM `data-to-insights.ecommerce.rev_transactions` GROUP BY geoNetwork_city HAVING avg_products_ordered > 20 ORDER BY avg_products_ordered DESC

Klik Check my progress untuk memverifikasi tujuan. Menampilkan daftar kota dengan jumlah transaksi terbanyak di situs e-commerce Anda

Tugas 4. Menemukan jumlah total produk di setiap kategori produk

Menemukan produk terlaris menggunakan pemfilteran dengan nilai NULL

  1. Apa yang salah dengan kueri berikut? Bagaimana cara memperbaikinya?
#standardSQL SELECT hits_product_v2ProductName, hits_product_v2ProductCategory FROM `data-to-insights.ecommerce.rev_transactions` GROUP BY 1,2

  1. Apa yang salah dengan kueri berikut?
#standardSQL SELECT COUNT(hits_product_v2ProductName) as number_of_products, hits_product_v2ProductCategory FROM `data-to-insights.ecommerce.rev_transactions` WHERE hits_product_v2ProductName IS NOT NULL GROUP BY hits_product_v2ProductCategory ORDER BY number_of_products DESC

  1. Perbarui kueri sebelumnya agar hanya menghitung produk berbeda di setiap kategori produk.

Solusi yang mungkin:

#standardSQL SELECT COUNT(DISTINCT hits_product_v2ProductName) as number_of_products, hits_product_v2ProductCategory FROM `data-to-insights.ecommerce.rev_transactions` WHERE hits_product_v2ProductName IS NOT NULL GROUP BY hits_product_v2ProductCategory ORDER BY number_of_products DESC LIMIT 5

Catatan:
  • (not set) dapat mengindikasikan bahwa produk tidak memiliki kategori
  • ${productitem.product.origCatName} adalah kode front-end untuk merender kategori yang dapat mengindikasikan bahwa skrip pelacakan Google Analytics dijalankan sebelum halaman dirender sepenuhnya
  • Klik Check my progress untuk memverifikasi tujuan. Menemukan jumlah total produk di setiap kategori produk

    Selamat!

    Anda telah memecahkan masalah dan memperbaiki kueri yang rusak di SQL standar BigQuery. Ingatlah untuk menggunakan Validator Kueri guna menemukan sintaksis kueri yang salah, dan tetap cermati hasil kueri Anda meskipun kueri tersebut berhasil dijalankan.

    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: 19 Januari 2024

    Lab Terakhir Diuji: 28 Agustus 2023

    Hak cipta 2024 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.