Memuat dan meng-kueri data dengan alat bq
Pelajari cara membuat set data, memuat data sampel, dan meng-kueri tabel dengan alat command line bq.
Jika ingin mengikuti panduan langkah demi langkah untuk tugas ini langsung di konsol Google Cloud, klik Pandu saya:
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Make sure that billing is enabled for your Google Cloud project.
Pastikan BigQuery API diaktifkan.
Jika Anda membuat project baru, BigQuery API akan otomatis diaktifkan.
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
Jika Anda tidak mengaktifkan penagihan untuk project Google Cloud yang digunakan dalam tutorial ini, Anda akan bekerja dengan data di sandbox BigQuery. Sandbox BigQuery memungkinkan Anda mempelajari BigQuery dengan sekumpulan fitur BigQuery terbatas tanpa biaya.
Mendownload file data publik sumber
- Download file zip nama bayi.
- Ekstrak file zip. Objek ini berisi file bernama
NationalReadMe.pdf
yang menjelaskan skema set data. Pelajari set data nama bayi lebih lanjut. - Buka file
yob2010.txt
. File ini adalah file nilai yang dipisahkan koma (CSV) yang berisi tiga kolom: nama, jenis kelamin yang ditetapkan saat lahir, dan jumlah anak dengan nama tersebut. File tidak memiliki baris header. - Pindahkan file ke direktori kerja Anda.
- Jika Anda menggunakan Cloud Shell, klik
yob2010.txt
, lalu klikUpload. - Jika Anda bekerja di shell lokal, salin atau pindahkan file
yob2010.txt
ke direktori tempat Anda menjalankan alat bq.
- Jika Anda menggunakan Cloud Shell, klik
Membuat set data
Buat set data bernama
babynames
:bq mk babynames
Outputnya mirip dengan hal berikut ini:
Dataset 'myproject:babynames' successfully created.
Panjang nama set data maksimal 1.024 karakter dan terdiri dari AZ, az, 0-9, serta garis bawah. Nama tidak boleh diawali dengan angka atau garis bawah, dan tidak boleh memiliki spasi.
Pastikan set data
babynames
sekarang muncul di project Anda:bq ls
Outputnya mirip dengan hal berikut ini:
datasetId ------------- babynames
Memuat data ke dalam tabel
Di set data
babynames
, muat file sumberyob2010.txt
ke tabel baru yang bernamanames2010
:bq load babynames.names2010 yob2010.txt name:string,assigned_sex_at_birth:string,count:integer
Outputnya mirip dengan hal berikut ini:
Upload complete. Waiting on bqjob_r3c045d7cbe5ca6d2_0000018292f0815f_1 ... (1s) Current status: DONE
Secara default, ketika Anda memuat data, BigQuery mengharapkan data yang berenkode UTF-8. Jika Anda memiliki data dalam encoding ISO-8859-1 (atau Latin-1) dan mengalami masalah dengannya, minta BigQuery untuk memperlakukan data Anda sebagai Latin-1 menggunakan
bq load -E=ISO-8859-1
. Untuk informasi lebih lanjut, lihat Encoding.Pastikan tabel
names2010
sekarang muncul dalam set datababynames
:bq ls babynames
Outputnya mirip dengan yang berikut ini. Beberapa kolom dihilangkan untuk menyederhanakan output.
tableId Type ----------- --------- names2010 TABLE
Konfirmasi bahwa skema tabel
names2010
baru Anda adalahname: string
,assigned_sex_at_birth: string
, dancount: integer
:bq show babynames.names2010
Outputnya mirip dengan yang berikut ini. Beberapa kolom dihilangkan untuk menyederhanakan output.
Last modified Schema Total Rows Total Bytes ----------------- ------------------------------- ------------ ------------ 14 Mar 17:16:45 |- name: string 34089 654791 |- assigned_sex_at_birth: string |- count: integer
Meng-kueri data tabel
Tentukan nama anak perempuan paling populer dalam data:
bq query --use_legacy_sql=false \ 'SELECT name, count FROM `babynames.names2010` WHERE assigned_sex_at_birth = "F" ORDER BY count DESC LIMIT 5;'
Outputnya mirip dengan hal berikut ini:
+----------+-------+ | name | count | +----------+-------+ | Isabella | 22925 | | Sophia | 20648 | | Emma | 17354 | | Olivia | 17030 | | Ava | 15436 | +----------+-------+
Tentukan nama anak laki-laki yang paling tidak populer dalam data:
bq query --use_legacy_sql=false \ 'SELECT name, count FROM `babynames.names2010` WHERE assigned_sex_at_birth = "M" ORDER BY count ASC LIMIT 5;'
Outputnya mirip dengan hal berikut ini:
+----------+-------+ | name | count | +----------+-------+ | Aamarion | 5 | | Aarian | 5 | | Aaqib | 5 | | Aaidan | 5 | | Aadhavan | 5 | +----------+-------+
Jumlah minimumnya adalah 5 karena data sumber menghilangkan nama yang memiliki kurang dari 5 kemunculan.
Pembersihan
Agar tidak menimbulkan biaya pada akun Google Cloud Anda untuk resource yang digunakan pada halaman ini, hapus project Google Cloud yang berisi resource tersebut.
Menghapus project
Jika Anda menggunakan sandbox BigQuery untuk meng-kueri set data publik, penagihan tidak akan diaktifkan untuk project Anda.Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.
Untuk menghapus project:
- Di konsol Google Cloud, buka halaman Manage resource.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Menghapus resource
Jika Anda menggunakan project yang ada, hapus resource yang dibuat:
Hapus set data
babynames
:bq rm --recursive=true babynames
Flag
--recursive
akan menghapus semua tabel dalam set data, termasuk tabelnames2010
.Output akan mirip dengan yang berikut ini:
rm: remove dataset 'myproject:babynames'? (y/N)
Untuk mengonfirmasi perintah hapus, masukkan
y
.
Langkah selanjutnya
- Pelajari lebih lanjut cara menggunakan alat bq.
- Pelajari sandbox BigQuery.
- Pelajari lebih lanjut cara memuat data ke BigQuery.
- Pelajari lebih lanjut cara meng-kueri data di BigQuery.
- Dapatkan info terbaru tentang BigQuery.
- Pelajari tentang harga BigQuery.
- Pelajari kuota dan batas BigQuery.