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:

Pandu saya


Sebelum memulai

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

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

    Go to project selector

  4. Make sure that billing is enabled for your Google Cloud project.

  5. 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.

  6. Pastikan BigQuery API diaktifkan.

    Mengaktifkan API

    Jika Anda membuat project baru, BigQuery API akan otomatis diaktifkan.

  7. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

Mendownload file data publik sumber

  1. Download file zip nama bayi.
  2. Ekstrak file zip. Objek ini berisi file bernama NationalReadMe.pdf yang menjelaskan skema set data. Pelajari set data nama bayi lebih lanjut.
  3. 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.
  4. Pindahkan file ke direktori kerja Anda.
    • Jika Anda menggunakan Cloud Shell, klik Selengkapnya > Upload, klik Pilih File, pilih file yob2010.txt, lalu klikUpload.
    • Jika Anda bekerja di shell lokal, salin atau pindahkan file yob2010.txt ke direktori tempat Anda menjalankan alat bq.

Membuat set data

  1. Buat set data bernama babynames:

    bq mk babynames
    

    Output akan mirip dengan yang 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.

  2. Pastikan set data babynames sekarang muncul di project Anda:

    bq ls
    

    Output akan mirip dengan yang berikut ini:

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

Memuat data ke dalam tabel

  1. Di set data babynames, muat file sumber yob2010.txt ke tabel baru yang bernama names2010:

    bq load babynames.names2010 yob2010.txt name:string,assigned_sex_at_birth:string,count:integer
    

    Output akan mirip dengan yang 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.

  2. Pastikan tabel names2010 sekarang muncul dalam set data babynames:

    bq ls babynames
    

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

      tableId     Type
    ----------- ---------
     names2010    TABLE
    
  3. Konfirmasi bahwa skema tabel names2010 baru Anda adalah name: string, assigned_sex_at_birth: string, dan count: 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

  1. 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;'
    

    Output akan mirip dengan yang berikut ini:

    +----------+-------+
    |   name   | count |
    +----------+-------+
    | Isabella | 22925 |
    | Sophia   | 20648 |
    | Emma     | 17354 |
    | Olivia   | 17030 |
    | Ava      | 15436 |
    +----------+-------+
    
  2. 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;'
    

    Output akan mirip dengan yang 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:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the 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 names2010.

    Output akan mirip dengan yang berikut ini:

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

Langkah berikutnya