Mernjelajahi alat command line bq

Alat command line bq adalah alat command line berbasis Python untuk BigQuery. Halaman ini berisi informasi umum tentang penggunaan alat command line bq.

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

Sebelum memulai

Sebelum dapat menggunakan alat command line bq, Anda harus menggunakan Konsol Google Cloud untuk membuat atau memilih project.

  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. BigQuery secara otomatis diaktifkan dalam project baru. Untuk mengaktifkan BigQuery dalam project yang sudah ada, buka

    Enable the BigQuery API.

    Enable the API

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

Memasukkan perintah bq di Cloud Shell

Anda dapat memasukkan perintah alat command line bq di Cloud Shell baik dari Konsol Google Cloud maupun dari Google Cloud CLI.

Memosisikan flag dan argumen

Alat command line bq mendukung dua jenis flag:

  • Flag global dapat digunakan di semua perintah.
  • Flag khusus perintah diterapkan untuk perintah tertentu.

Untuk daftar flag global dan flag khusus perintah yang tersedia, lihat referensi alat command line bq.

Tempatkan flag global sebelum perintah bq, lalu sertakan flag khusus perintah. Anda dapat menyertakan beberapa flag global atau flag khusus perintah. Contoh:

bq --location=us mk --reservation --project_id=project reservation_name

Anda dapat menentukan argumen perintah dengan cara berikut:

  • --FLAG ARGUMENT (seperti yang ditunjukkan pada contoh sebelumnya)
  • --FLAG=ARGUMENT
  • --FLAG='ARGUMENT'
  • --FLAG="ARGUMENT"
  • --FLAG 'ARGUMENT'
  • --FLAG "ARGUMENT"

Ganti kode berikut:

  • FLAG: flag global atau flag khusus perintah
  • ARGUMENT: argumen flag

Beberapa perintah memerlukan penggunaan tanda kutip tunggal atau ganda pada argumen. Hal ini sering kali berlaku jika argumen berisi spasi, koma, atau karakter khusus lainnya. Contoh:

bq query --nouse_legacy_sql \
'SELECT
   COUNT(*)
 FROM
   `bigquery-public-data`.samples.shakespeare'

Flag dengan nilai boolean dapat ditentukan tanpa argumen. Jika menentukan true atau false, Anda harus menggunakan format FLAG=ARGUMENT.

Misalnya, perintah ini menetapkan salah untuk flag boolean --use_legacy_sql dengan menempatkan no di depan flag:

bq query --nouse_legacy_sql \
'SELECT
   COUNT(*)
 FROM
   `bigquery-public-data`.samples.shakespeare'

Sebagai alternatif, untuk menentukan false sebagai argumen flag, Anda dapat memasukkan string berikut:

bq query --use_legacy_sql=false \
'SELECT
   COUNT(*)
 FROM
   `bigquery-public-data`.samples.shakespeare'

Menjalankan kueri dari alat command line bq

Untuk mengambil kueri yang telah Anda kembangkan di Konsol Google Cloud dan menjalankannya dari alat command line bq, lakukan hal berikut:

  1. Sertakan kueri dalam perintah bq query sebagai berikut: bq query --use_legacy_sql=false 'QUERY'. Ganti QUERY dengan kueri.

  2. Format string kueri.

    Jika perlu menggunakan literal string tambahan dalam kueri, Anda harus mengikuti aturan tanda kutip untuk shell yang Anda gunakan, seperti Bash atau PowerShell.

    Contoh berikut menunjukkan pendekatan standar di Bash, yaitu menggunakan tanda kutip ganda untuk menunjukkan literal string dalam kueri, lalu menyisipkan kueri itu sendiri dalam tanda kutip tunggal:

    'SELECT * FROM mydataset.mytable WHERE column1 = "value";'
    

    Jika menyalin kueri dari lokasi lain, Anda juga harus menghapus komentar apa pun dalam kueri.

    Misalnya, ubah kueri Konsol Google Cloud berikut:

    -- count Shakespeare's use of the string "raisin"
    SELECT
      word,
      SUM(word_count) AS count
    FROM
      `bigquery-public-data`.samples.shakespeare
    WHERE
      word LIKE '%raisin%'
    GROUP BY
      word
    

    menjadi kueri alat command line bq sebagai berikut:

    bq query --use_legacy_sql=false \
    'SELECT
      word,
      SUM(word_count) AS count
    FROM
      `bigquery-public-data`.samples.shakespeare
    WHERE
      word LIKE "%raisin%"
    GROUP BY
      word'
    

Untuk mengetahui informasi selengkapnya, lihat Menjalankan tugas kueri batch dan interaktif.

Mendapatkan bantuan

Untuk mendapatkan bantuan terkait alat command line bq, Anda dapat memasukkan perintah berikut:

  • Untuk mengetahui versi alat command line bq yang diinstal, masukkan bq version.
  • Untuk mengetahui daftar lengkap perintah, masukkan bq help.
  • Untuk mengetahui daftar flag global, masukkan bq --help.
  • Untuk mendapatkan bantuan terkait perintah tertentu, masukkan bq help COMMAND.
  • Untuk mendapatkan bantuan terkait perintah tertentu dan mengetahui daftar flag global, masukkan bq COMMAND --help.

Ganti COMMAND dengan perintah yang memerlukan bantuan.

Menetapkan nilai default untuk flag command line

Anda dapat menetapkan nilai default untuk flag command line dengan menyertakannya dalam file konfigurasi alat command line bq, .bigqueryrc. Sebelum mengonfigurasi opsi default, Anda harus membuat file .bigqueryrc terlebih dahulu. Anda dapat menggunakan editor teks pilihan untuk membuat file. Setelah membuat file .bigqueryrc, Anda dapat menentukan jalur ke file tersebut menggunakan flag global --bigqueryrc.

Jika flag --bigqueryrc tidak ditentukan, variabel lingkungan BIGQUERYRC akan digunakan. Jika tidak ditentukan, jalur ~/.bigqueryrc akan digunakan. Jalur default-nya adalah $HOME/.bigqueryrc.

Menambahkan flag ke .bigqueryrc

Untuk menambahkan nilai default untuk flag command line ke .bigqueryrc:

  • Tempatkan flag global di bagian atas file tanpa header.
  • Untuk flag khusus perintah, masukkan nama perintah (dalam tanda kurung) dan tambahkan flag khusus perintah (satu per baris) setelah nama perintah.

Contoh:

--apilog=stdout
--format=prettyjson
--location=US

[query]
--use_legacy_sql=false
--max_rows=100
--maximum_bytes_billed=10000000

[load]
--destination_kms_key=projects/myproject/locations/mylocation/keyRings/myRing/cryptoKeys/myKey

Contoh sebelumnya menetapkan nilai default untuk flag berikut:

  • Flag global --apilog ditetapkan ke stdout untuk mencetak output proses debug ke Konsol Google Cloud.
  • Flag global --format ditetapkan ke prettyjson untuk menampilkan output perintah dalam format JSON yang dapat dibaca manusia.
  • Flag global --location ditetapkan ke lokasi multi-region US.
  • Flag khusus perintah query --use_legacy_sql ditetapkan ke false untuk menjadikan GoogleSQL sebagai sintaksis kueri default.

  • Flag khusus perintah query --max_rows ditetapkan ke 100 untuk mengontrol jumlah baris dalam output kueri.

  • Flag khusus perintah query --maximum_bytes_billed ditetapkan ke 10.000.000 byte (10 MB) untuk menggagalkan kueri yang membaca lebih dari 10 MB data.

  • Flag khusus perintah load --destination_kms_key ditetapkan ke projects/myproject/locations/mylocation/keyRings/myRing/cryptoKeys/myKey.

Menjalankan alat command line bq dalam shell interaktif

Anda dapat menjalankan alat command line bq di shell interaktif tanpa perlu memberi awalan pada perintah dengan bq. Untuk memulai mode interaktif, masukkan bq shell. Setelah meluncurkan shell, perintah akan berubah menjadi ID project default Anda. Untuk keluar dari mode interaktif, masuk ke exit.

Menjalankan alat command line bq dalam skrip

Anda dapat menjalankan alat command line bq dalam skrip, seperti menjalankan perintah Google Cloud CLI. Berikut adalah contoh perintah gcloud dan bq dalam skrip bash:

#!/bin/bash
gcloud config set project myProject
bq query --use_legacy_sql=false --destination_table=myDataset.myTable \
'SELECT
   word,
   SUM(word_count) AS count
 FROM
   `bigquery-public-data`.samples.shakespeare
 WHERE
   word LIKE "%raisin%"
 GROUP BY
   word'

Menjalankan perintah bq dari akun layanan

Anda dapat menggunakan akun layanan untuk melakukan panggilan API yang diotorisasi atau menjalankan tugas kueri atas nama Anda. Untuk menggunakan akun layanan di alat command line bq, izinkan akses ke Google Cloud dari akun layanan. Untuk mengetahui informasi selengkapnya, lihat gcloud auth activate-service-account.

Untuk mulai menjalankan perintah bq menggunakan peniruan akun layanan, jalankan perintah berikut:

gcloud config set auth/impersonate_service_account SERVICE_ACCOUNT_NAME

Ganti SERVICE_ACCOUNT_NAME dengan nama akun layanan Anda.

Perintah bq yang Anda jalankan kini menggunakan kredensial akun layanan.

Untuk berhenti menjalankan perintah bq dari akun layanan, jalankan perintah berikut:

gcloud config unset auth/impersonate_service_account

Contoh

Anda dapat menemukan contoh command line di seluruh bagian Panduan cara kerja dalam dokumentasi BigQuery. Bagian ini mencantumkan link ke tugas command line yang umum seperti membuat, mendapatkan, mencantumkan, menghapus, dan mengubah resource BigQuery.

Membuat resource

Untuk mengetahui informasi tentang penggunaan alat command line bq guna membuat resource, lihat hal berikut:

Untuk contoh pembuatan tabel menggunakan file data, lihat Memuat data.

Mendapatkan informasi tentang resource

Untuk informasi tentang penggunaan alat command line bq untuk mendapatkan informasi tentang resource, lihat artikel berikut:

Mencantumkan resource

Untuk mengetahui informasi tentang penggunaan alat command line bq dalam mencantumkan resource, lihat artikel berikut:

Mencantumkan tugas

Untuk mengetahui informasi tentang penggunaan alat command line bq untuk mencantumkan tugas, lihat artikel berikut:

Memperbarui resource

Untuk mengetahui informasi tentang penggunaan alat command line bq untuk memperbarui resource, lihat artikel berikut:

Memuat data

Untuk mengetahui informasi tentang penggunaan alat command line bq untuk memuat data, lihat artikel berikut:

Membuat kueri data

Untuk mengetahui informasi tentang penggunaan alat command line bq untuk membuat kueri data, lihat artikel berikut:

Menggunakan sumber data eksternal

Untuk mengetahui informasi tentang penggunaan alat command line bq untuk membuat kueri data dalam sumber data eksternal, lihat artikel berikut:

Mengekspor data

Untuk mengetahui informasi tentang penggunaan alat command line bq untuk mengekspor data, lihat artikel berikut:

Menggunakan BigQuery Data Transfer Service

Untuk mengetahui informasi tentang penggunaan alat command line bq dengan BigQuery Data Transfer Service, lihat artikel berikut:

Memecahkan masalah alat command line bq

Bagian ini menunjukkan cara menyelesaikan masalah pada alat command line bq.

Memastikan gcloud CLI Anda selalu terbaru

Jika menggunakan alat command line bq dari Google Cloud CLI, pastikan Anda memiliki fungsi dan perbaikan terbaru untuk alat command line bq dengan memastikan penginstalan gcloud CLI Anda selalu terbaru. Untuk mengetahui apakah Anda menjalankan gcloud CLI versi terbaru, masukkan perintah berikut di Cloud Shell:

gcloud components list

Dua baris pertama output menampilkan nomor versi penginstalan gcloud CLI saat ini dan nomor versi gcloud CLI terbaru. Jika menemukan bahwa versi Anda sudah usang, Anda dapat mengupdate penginstalan gcloud CLI ke versi terbaru dengan memasukkan perintah berikut di Cloud Shell:

gcloud components update

Proses Debug

Anda dapat memasukkan perintah berikut untuk melakukan debug pada alat command line bq:

  • Lihat permintaan yang dikirim dan diterima. Tambahkan flag --apilog=PATH_TO_FILE untuk menyimpan log operasi ke file lokal. Ganti PATH_TO_FILE dengan jalur tempat Anda ingin menyimpan log. Alat command line bq berfungsi dengan melakukan panggilan API berbasis REST standar, yang dapat berguna untuk dilihat. Anda juga dapat melampirkan log ini saat melaporkan masalah. Menggunakan - atau stdout, alih-alih jalur, akan mencetak log ke Konsol Google Cloud. Menyetel --apilog ke stderr akan menghasilkan file error standar. Untuk mencatat permintaan lainnya, gunakan flag --httplib2_debuglevel=LOG_LEVEL. LOG_LEVEL yang lebih tinggi mencatat informasi selengkapnya tentang permintaan http.

  • Memecahkan error. Masukkan flag --format=prettyjson saat mendapatkan status tugas atau saat melihat informasi mendetail tentang resource seperti tabel dan set data. Penggunaan flag ini menghasilkan respons dalam format JSON, termasuk properti reason. Anda dapat menggunakan properti reason untuk mencari langkah-langkah pemecahan masalah. Untuk mengetahui informasi selengkapnya tentang error selama eksekusi, gunakan flag --debug_mode.