Menggunakan alat bq

Dalam tutorial ini, Anda akan mempelajari cara menggunakan bq, alat command-line interface (CLI) berbasis Python untuk BigQuery guna membuat set data, memuat data sampel, dan mengkueri tabel. Setelah menyelesaikan tutorial ini, Anda akan memahami bq dan cara menggunakan BigQuery dengan menggunakan CLI.

Untuk referensi lengkap tentang semua perintah dan flag bq, lihat referensi alat command line bq.


Untuk mengikuti panduan langkah demi langkah untuk tugas ini langsung di Google Cloud konsol, klik Pandu saya:

Pandu saya


Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  6. Aktifkan BigQuery API.

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan peran.

    Mengaktifkan API

    Untuk project baru, BigQuery API diaktifkan secara otomatis.

  7. Opsional: Aktifkan penagihan untuk project. Jika Anda tidak ingin mengaktifkan penagihan atau memberikan kartu kredit, langkah-langkah dalam dokumen ini tetap berfungsi. BigQuery menyediakan sandbox untuk melakukan langkah-langkah tersebut. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan sandbox BigQuery.
  8. Di konsol Google Cloud , aktifkan Cloud Shell.

    Aktifkan Cloud Shell

    Di bagian bawah konsol Google Cloud , sesi Cloud Shell akan dimulai 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 pada sesi.

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk membuat set data, membuat tabel, memuat data, dan membuat kueri data, minta administrator untuk memberi Anda peran IAM berikut pada project:

  • Menjalankan tugas pemuatan dan tugas kueri: BigQuery Job User (roles/bigquery.jobUser)
  • Buat set data, buat tabel, muat data ke dalam tabel, dan kueri tabel: Editor Data BigQuery (roles/bigquery.dataEditor)

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Download file yang berisi data sumber

File yang Anda download berukuran sekitar 7 MB yang berisi data tentang nama bayi populer. Ini disediakan oleh Administrasi Jaminan Sosial AS.

Untuk mengetahui informasi selengkapnya tentang data, lihat Informasi latar belakang untuk nama populer dari Administrasi Jaminan Sosial.

  1. Download data Administrasi Jaminan Sosial AS dengan membuka URL berikut di tab browser baru:

    https://www.ssa.gov/OACT/babynames/names.zip
    
  2. Ekstrak file.

    Untuk informasi selengkapnya tentang skema set data, lihat file NationalReadMe.pdf yang Anda ekstrak.

  3. Untuk melihat tampilan data tersebut, buka file yob2024.txt. File ini berisi nilai yang dipisahkan koma untuk nama, jenis kelamin yang ditetapkan saat lahir, dan jumlah anak dengan nama tersebut. File tidak memiliki baris header.

  4. Pindahkan file ke direktori kerja Anda.

    • Jika Anda menggunakan Cloud Shell, klik Lainnya Upload, klik Pilih File, pilih file yob2024.txt, lalu klik Upload.

    • Jika Anda bekerja di shell lokal, salin atau pindahkan file yob2024.txt ke direktori tempat Anda menjalankan alat bq.

Membuat set data

  1. Jika Anda meluncurkan Cloud Shell dari dokumentasi, masukkan perintah berikut untuk menetapkan project ID Anda. Tindakan ini mencegah Anda harus menentukan project ID di setiap perintah CLI.

    gcloud config set project PROJECT_ID
    

    Ganti PROJECT_ID dengan project ID Anda.

  1. Masukkan perintah berikut untuk membuat set data bernama babynames:

    bq mk --dataset babynames
    

    Outputnya mirip dengan hal berikut ini:

    Dataset 'babynames' successfully created.
    
  2. Pastikan set data babynames sekarang muncul di project Anda:

    bq ls --datasets=true
    

    Output akan mirip dengan yang berikut ini:

      datasetId
    -------------
      babynames
    

Memuat data ke dalam tabel

  1. Di set data babynames, muat file sumber yob2024.txt ke tabel baru bernama names2024:

    bq load babynames.names2024 yob2024.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
    
  2. Pastikan tabel names2024 sekarang muncul dalam set data babynames:

    bq ls --format=pretty babynames
    

    Outputnya mirip dengan yang berikut ini. Beberapa kolom dihilangkan untuk menyederhanakan output.

    +-----------+-------+
    |  tableId  | Type  |
    +-----------+-------+
    | names2024 | TABLE |
    +-----------+-------+
    
  3. Konfirmasi bahwa skema tabel names2024 baru Anda adalah name: string, assigned_sex_at_birth: string, dan count: integer:

    bq show babynames.names2024
    

    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                    31904       607494
                      |- assigned_sex_at_birth: string
                      |- count: integer
    

Meng-kueri data tabel

  1. Tentukan nama anak perempuan paling populer dalam data:

    bq query \
        'SELECT
          name,
          count
        FROM
          babynames.names2024
        WHERE
          assigned_sex_at_birth = "F"
        ORDER BY
          count DESC
        LIMIT 5'
    

    Output akan mirip dengan yang berikut ini:

    +-----------+-------+
    |   name    | count |
    +-----------+-------+
    | Olivia    | 14718 |
    | Emma      | 13485 |
    | Amelia    | 12740 |
    | Charlotte | 12552 |
    | Mia       | 12113 |
    +-----------+-------+
    
  2. Tentukan nama anak laki-laki yang paling tidak populer dalam data:

    bq query \
        'SELECT
          name,
          count
        FROM
          babynames.names2024
        WHERE
          assigned_sex_at_birth = "M"
        ORDER BY
          count ASC
        LIMIT 5'
    

    Output akan mirip dengan yang berikut ini:

    +---------+-------+
    |  name   | count |
    +---------+-------+
    | Aaran   |     5 |
    | Aadiv   |     5 |
    | Aadarsh |     5 |
    | Aarash  |     5 |
    | Aadrik  |     5 |
    +---------+-------+
    

    Jumlah minimumnya adalah 5 karena data sumber menghilangkan nama yang memiliki kurang dari 5 kemunculan.

Pembersihan

Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, hapus project Google Cloud yang berisi resource tersebut.

Menghapus project

Jika Anda menggunakan sandbox BigQuery untuk mengkueri set data publik, penagihan tidak akan diaktifkan untuk project Anda, dan Anda tidak perlu menghapus project.

Cara termudah untuk menghilangkan penagihan adalah dengan menghapus project yang Anda buat untuk tutorial.

Untuk menghapus project:

  1. Di Konsol Google Cloud , buka halaman Manage resources.

    Buka Kelola resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

Menghapus resource

Jika Anda menggunakan project yang ada, hapus resource yang dibuat:

  1. Hapus set data babynames:

    bq rm --recursive=true babynames
    

    Flag --recursive akan menghapus semua tabel dalam set data, termasuk tabel names2024.

    Output akan mirip dengan yang berikut ini:

    rm: remove dataset 'myproject:babynames'? (y/N)
    
  2. Untuk mengonfirmasi perintah hapus, masukkan y.

Langkah berikutnya