Menjalankan kueri
Dokumen ini menunjukkan cara menjalankan kueri di BigQuery dan memahami jumlah data yang akan diproses kueri sebelum dieksekusi dengan melakukan uji coba.
Jenis kueri
Anda dapat membuat kueri data BigQuery menggunakan salah satu jenis tugas kueri berikut:
- Tugas kueri interaktif. Secara default, BigQuery menjalankan tugas kueri interaktif (sesuai permintaan) sesegera mungkin.
Tugas kueri berkelanjutan (Pratinjau). Dengan tugas ini, kueri berjalan terus-menerus, sehingga Anda dapat menganalisis data yang masuk di BigQuery secara real time, lalu menulis hasilnya ke tabel BigQuery, atau mengekspor hasilnya ke Bigtable atau Pub/Sub. Anda dapat menggunakan kemampuan ini untuk melakukan tugas yang sensitif terhadap waktu, seperti membuat dan segera menindaklanjuti insight, menerapkan inferensi machine learning (ML) real-time, dan membangun pipeline data berbasis peristiwa.
Tugas kueri batch. Dengan tugas ini, BigQuery akan mengantrekan setiap kueri batch atas nama Anda, lalu memulai kueri tersebut saat resource tanpa aktivitas tersedia, biasanya dalam beberapa menit.
Anda dapat menjalankan tugas kueri menggunakan metode berikut:
- Buat dan jalankan kueri di konsol Google Cloud.
- Jalankan perintah
bq query
di alat command line bq. - Secara terprogram panggil metode
jobs.query
ataujobs.insert
di BigQuery REST API. - Menggunakan library klien BigQuery.
Secara default, BigQuery menjalankan kueri Anda sebagai tugas kueri interaktif, yang dijalankan sesegera mungkin. BigQuery secara dinamis menghitung batas kueri serentak berdasarkan ketersediaan resource dan memilih untuk menjalankan kueri interaktif yang lebih serentak daripada kueri batch. Setelah Anda mencapai batas kueri serentak, kueri tambahan akan menunggu dalam antrean. Untuk informasi selengkapnya, lihat antrean kueri.
BigQuery menyimpan hasil kueri ke tabel sementara (default) atau tabel permanen. Saat menentukan tabel permanen sebagai tabel tujuan untuk hasil, Anda dapat memilih apakah akan menambahkan atau menimpa tabel yang sudah ada, atau membuat tabel baru dengan nama unik.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk menjalankan tugas kueri, minta administrator untuk memberi Anda peran IAM berikut:
-
Pengguna Tugas BigQuery (
roles/bigquery.jobUser
) pada project. -
Penampil Data BigQuery (
roles/bigquery.dataViewer
) pada semua tabel dan tampilan yang dirujuk oleh kueri Anda. Untuk membuat kueri tampilan, Anda juga memerlukan peran ini di semua tabel dan tampilan yang mendasarinya. Jika menggunakan tampilan yang diotorisasi atau set data yang diotorisasi, Anda tidak memerlukan akses ke data sumber pokok.
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk menjalankan tugas kueri. Untuk melihat izin yang benar-benar diperlukan, luaskan bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk menjalankan tugas kueri:
-
bigquery.jobs.create
pada project tempat kueri dijalankan, terlepas dari tempat data disimpan. -
bigquery.tables.getData
di semua tabel dan tampilan yang dirujuk oleh kueri Anda. Untuk membuat kueri tampilan, Anda juga memerlukan izin ini pada semua tabel dan tampilan yang mendasarinya. Jika menggunakan tampilan yang diotorisasi atau set data yang diotorisasi, Anda tidak memerlukan akses ke data sumber pokok.
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Pemecahan masalah
Access Denied: Project [project_id]: User does not have bigquery.jobs.create
permission in project [project_id].
Error ini terjadi jika akun utama tidak memiliki izin untuk membuat tugas kueri di project.
Penyelesaian: Administrator harus memberi Anda izin bigquery.jobs.create
pada project yang Anda buat kuerinya. Izin ini diperlukan
selain izin yang diperlukan untuk mengakses data yang dikueri.
Untuk mengetahui informasi selengkapnya tentang izin BigQuery, lihat Kontrol akses dengan IAM.
Menjalankan kueri interaktif
Untuk menjalankan kueri interaktif, pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Klik
Kueri SQL.Di editor kueri, masukkan kueri GoogleSQL yang valid.
Misalnya, buat kueri set data publik BigQuery
usa_names
untuk menentukan nama yang paling umum di Amerika Serikat antara tahun 1910 dan 2013:SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10;
Opsional: Tentukan tabel tujuan dan lokasi untuk hasil kueri:
- Di editor kueri, klik More, lalu klik Query settings.
- Di bagian Destination, pilih Set a destination table for query results (Tetapkan tabel tujuan untuk hasil kueri).
- Untuk Dataset, masukkan nama set data yang ada untuk tabel tujuan—misalnya,
myProject.myDataset
. - Untuk ID Tabel, masukkan nama untuk tabel tujuan—misalnya,
myTable
. Jika tabel tujuan adalah tabel yang sudah ada, untuk Preferensi tulis tabel tujuan, pilih apakah akan menambahkan atau menimpa tabel dengan hasil kueri.
Jika tabel tujuan adalah tabel baru, BigQuery akan membuat tabel tersebut saat Anda menjalankan kueri.
Di bagian Setelan tambahan, klik menu Lokasi Data, lalu pilih salah satu opsi.
Dalam contoh ini, set data
usa_names
disimpan di lokasi multi-region AS. Jika Anda menentukan tabel tujuan untuk kueri ini, set data yang berisi tabel tujuan juga harus berada di multi-region AS. Anda tidak dapat membuat kueri set data di satu lokasi dan menulis hasilnya ke tabel di lokasi lain.Klik Simpan.
Klik
Run.Jika Anda tidak menentukan tabel tujuan, tugas kueri akan menulis output ke tabel sementara (cache).
Sekarang Anda dapat menjelajahi hasil kueri di tab Results pada panel Query results.
Opsional: Untuk mengurutkan hasil kueri berdasarkan kolom, klik
Buka menu pengurutan di samping nama kolom, lalu pilih tata urutan. Jika estimasi byte yang diproses untuk pengurutan lebih dari nol, jumlah byte akan ditampilkan di bagian atas menu.Opsional: Untuk melihat visualisasi hasil kueri Anda, buka tab Diagram. Anda dapat memperbesar atau memperkecil diagram, mendownload diagram sebagai file PNG, atau mengalihkan visibilitas legenda.
Di panel Konfigurasi diagram, Anda dapat mengubah jenis diagram (garis, batang, atau sebar) serta mengonfigurasi ukuran dan dimensi diagram. Kolom di panel ini diisi otomatis dengan konfigurasi awal yang disimpulkan dari skema tabel tujuan kueri. Konfigurasi dipertahankan di antara kueri berikut yang dijalankan di editor kueri yang sama. Dimensi mendukung jenis data
INTEGER
,INT64
,FLOAT
,FLOAT64
,NUMERIC
,BIGNUMERIC
,TIMESTAMP
,DATE
,DATETIME
,TIME
, danSTRING
, sementara pengukuran mendukung jenis dataINTEGER
,INT64
,FLOAT
,FLOAT64
,NUMERIC
, danBIGNUMERIC
.Opsional: Di tab JSON, Anda dapat menjelajahi hasil kueri dalam format JSON, dengan kunci adalah nama kolom dan nilai adalah hasil untuk kolom tersebut.
bq
-
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.
Gunakan perintah
bq query
. Pada contoh berikut, flag--use_legacy_sql=false
memungkinkan Anda menggunakan sintaksis GoogleSQL.bq query \ --use_legacy_sql=false \ 'QUERY'
Ganti QUERY dengan kueri GoogleSQL yang valid. Misalnya, buat kueri set data publik BigQuery
usa_names
untuk menentukan nama yang paling umum di Amerika Serikat antara tahun 1910 dan 2013:bq query \ --use_legacy_sql=false \ 'SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10;'
Tugas kueri menulis output ke tabel sementara (cache).
Selain itu, Anda dapat menentukan tabel tujuan dan lokasi untuk hasil kueri. Untuk menulis hasilnya ke tabel yang sudah ada, sertakan flag yang sesuai untuk menambahkan (
--append_table=true
) atau menimpa (--replace=true
) tabel.bq query \ --location=LOCATION \ --destination_table=TABLE \ --use_legacy_sql=false \ 'QUERY'
Ganti kode berikut:
LOCATION: region atau multi-region untuk tabel tujuan—misalnya,
US
Dalam contoh ini, set data
usa_names
disimpan di lokasi multi-region AS. Jika Anda menentukan tabel tujuan untuk kueri ini, set data yang berisi tabel tujuan juga harus berada di multi-region AS. Anda tidak dapat mengkueri set data di satu lokasi dan menulis hasilnya ke tabel di lokasi lain.Anda dapat menetapkan nilai default untuk lokasi menggunakan .bigqueryrc file.
TABLE: nama untuk tabel tujuan—misalnya,
myDataset.myTable
Jika tabel tujuan adalah tabel baru, BigQuery akan membuat tabel tersebut saat Anda menjalankan kueri. Namun, Anda harus menentukan set data yang sudah ada.
Jika tabel tidak ada dalam project Anda saat ini, tambahkan project ID Google Cloud menggunakan format
PROJECT_ID:DATASET.TABLE
—misalnya,myProject:myDataset.myTable
. Jika--destination_table
tidak ditentukan, tugas kueri akan dibuat yang menulis output ke tabel sementara.
API
Untuk menjalankan kueri menggunakan API, sisipkan tugas baru
dan isi properti konfigurasi tugas query
. Anda juga bisa menentukan lokasi di properti location
di bagian jobReference
di resource tugas.
Lakukan polling untuk hasil dengan memanggil
getQueryResults
.
Polling hingga jobComplete
sama dengan true
. Periksa error dan peringatan dalam
daftar errors
.
C#
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan C# di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery C# API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Go API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk menjalankan kueri dengan proxy, lihat Mengonfigurasi proxy.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Node.js API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
PHP
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan PHP di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery PHP API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Ruby
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Ruby di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Ruby API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Menjalankan kueri berkelanjutan
Menjalankan tugas kueri berkelanjutan memerlukan konfigurasi tambahan. Untuk mengetahui informasi selengkapnya, lihat Membuat kueri berkelanjutan.
Menjalankan kueri batch
Untuk menjalankan kueri batch, pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Klik
Kueri SQL.Di editor kueri, masukkan kueri GoogleSQL yang valid.
Misalnya, buat kueri set data publik BigQuery
usa_names
untuk menentukan nama yang paling umum di Amerika Serikat antara tahun 1910 dan 2013:SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10;
Klik
More, lalu klik Query settings.Di bagian Resource management, pilih Batch.
Opsional: Tentukan tabel tujuan dan lokasi untuk hasil kueri:
- Di bagian Destination, pilih Set a destination table for query results (Tetapkan tabel tujuan untuk hasil kueri).
- Untuk Dataset, masukkan nama set data yang ada untuk tabel tujuan—misalnya,
myProject.myDataset
. - Untuk ID Tabel, masukkan nama untuk tabel tujuan—misalnya,
myTable
. Jika tabel tujuan adalah tabel yang sudah ada, untuk Preferensi tulis tabel tujuan, pilih apakah akan menambahkan atau menimpa tabel dengan hasil kueri.
Jika tabel tujuan adalah tabel baru, BigQuery akan membuat tabel tersebut saat Anda menjalankan kueri.
Di bagian Setelan tambahan, klik menu Lokasi Data, lalu pilih salah satu opsi.
Dalam contoh ini, set data
usa_names
disimpan di lokasi multi-region AS. Jika Anda menentukan tabel tujuan untuk kueri ini, set data yang berisi tabel tujuan juga harus berada di multi-region AS. Anda tidak dapat membuat kueri set data di satu lokasi dan menulis hasilnya ke tabel di lokasi lain.
Klik Simpan.
Klik
Run.Jika Anda tidak menentukan tabel tujuan, tugas kueri akan menulis output ke tabel sementara (cache).
Opsional: Untuk mengurutkan hasil kueri berdasarkan kolom, klik
Buka menu pengurutan di samping nama kolom, lalu pilih tata urutan. Jika estimasi byte yang diproses untuk pengurutan lebih dari nol, jumlah byte akan ditampilkan di bagian atas menu.Opsional: Untuk melihat visualisasi hasil kueri Anda, buka tab Diagram. Anda dapat memperbesar atau memperkecil diagram, mendownload diagram sebagai file PNG, atau mengalihkan visibilitas legenda.
Di panel Konfigurasi diagram, Anda dapat mengubah jenis diagram (garis, batang, atau sebar) serta mengonfigurasi ukuran dan dimensi diagram. Kolom di panel ini diisi otomatis dengan konfigurasi awal yang disimpulkan dari skema tabel tujuan kueri. Konfigurasi dipertahankan di antara kueri berikut yang dijalankan di editor kueri yang sama. Dimensi mendukung jenis data
INTEGER
,INT64
,FLOAT
,FLOAT64
,NUMERIC
,BIGNUMERIC
,TIMESTAMP
,DATE
,DATETIME
,TIME
, danSTRING
, sementara pengukuran mendukung jenis dataINTEGER
,INT64
,FLOAT
,FLOAT64
,NUMERIC
, danBIGNUMERIC
.
bq
-
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.
Gunakan perintah
bq query
dan tentukan flag--batch
. Pada contoh berikut, flag--use_legacy_sql=false
memungkinkan Anda menggunakan sintaksis GoogleSQL.bq query \ --batch \ --use_legacy_sql=false \ 'QUERY'
Ganti QUERY dengan kueri GoogleSQL yang valid. Misalnya, buat kueri set data publik BigQuery
usa_names
untuk menentukan nama yang paling umum di Amerika Serikat antara tahun 1910 dan 2013:bq query \ --batch \ --use_legacy_sql=false \ 'SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10;'
Tugas kueri menulis output ke tabel sementara (cache).
Selain itu, Anda dapat menentukan tabel tujuan dan lokasi untuk hasil kueri. Untuk menulis hasilnya ke tabel yang sudah ada, sertakan flag yang sesuai untuk menambahkan (
--append_table=true
) atau menimpa (--replace=true
) tabel.bq query \ --batch \ --location=LOCATION \ --destination_table=TABLE \ --use_legacy_sql=false \ 'QUERY'
Ganti kode berikut:
LOCATION: region atau multi-region untuk tabel tujuan—misalnya,
US
Dalam contoh ini, set data
usa_names
disimpan di lokasi multi-region AS. Jika Anda menentukan tabel tujuan untuk kueri ini, set data yang berisi tabel tujuan juga harus berada di multi-region AS. Anda tidak dapat mengkueri set data di satu lokasi dan menulis hasilnya ke tabel di lokasi lain.Anda dapat menetapkan nilai default untuk lokasi menggunakan .bigqueryrc file.
TABLE: nama untuk tabel tujuan—misalnya,
myDataset.myTable
Jika tabel tujuan adalah tabel baru, BigQuery akan membuat tabel tersebut saat Anda menjalankan kueri. Namun, Anda harus menentukan set data yang sudah ada.
Jika tabel tidak ada dalam project Anda saat ini, tambahkan project ID Google Cloud menggunakan format
PROJECT_ID:DATASET.TABLE
—misalnya,myProject:myDataset.myTable
. Jika--destination_table
tidak ditentukan, tugas kueri akan dibuat yang menulis output ke tabel sementara.
API
Untuk menjalankan kueri menggunakan API, sisipkan tugas baru
dan isi properti konfigurasi tugas query
. Anda juga bisa menentukan lokasi di properti location
di bagian jobReference
di resource tugas.
Saat Anda mengisi properti tugas kueri, sertakan properti configuration.query.priority
dan tetapkan nilainya ke BATCH
.
Lakukan polling untuk hasil dengan memanggil
getQueryResults
.
Polling hingga jobComplete
sama dengan true
. Periksa error dan peringatan dalam
daftar errors
.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Go API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Java
Untuk menjalankan kueri batch, tetapkan prioritas kueri ke QueryJobConfiguration.Priority.BATCH saat membuat QueryJobConfiguration.
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Node.js API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Mode kueri singkat yang dioptimalkan
Mode pengoptimalan kueri singkat dimaksudkan untuk meningkatkan latensi kueri singkat secara keseluruhan yang umum dalam beban kerja seperti dasbor atau eksplorasi data. Fungsi ini
menjalankan kueri dan menampilkan hasil secara inline untuk pernyataan SELECT
.
Kueri yang menggunakan mode kueri singkat yang dioptimalkan tidak membuat tugas saat dieksekusi, kecuali jika
BigQuery menentukan bahwa pembuatan tugas diperlukan untuk menyelesaikan
kueri.
Untuk mengaktifkan mode pengoptimalan kueri singkat, tetapkan kolom jobCreationMode
dari
instance QueryRequest
ke JOB_CREATION_OPTIONAL
dalam
isi permintaan jobs.query
.
Jika nilai kolom ini ditetapkan ke JOB_CREATION_OPTIONAL
,
BigQuery akan menentukan apakah kueri dapat menggunakan mode kueri singkat baru
yang dioptimalkan. Jika demikian, BigQuery akan mengeksekusi kueri dan menampilkan semua hasil di kolom rows
respons. Karena tugas tidak dibuat untuk kueri ini, BigQuery tidak menampilkan jobReference
dalam isi respons. Sebagai gantinya, fungsi ini menampilkan kolom queryId
yang dapat Anda gunakan untuk mendapatkan insight tentang kueri menggunakan tampilan INFORMATION_SCHEMA.JOBS
. Karena tidak ada
tugas yang dibuat, tidak ada jobReference
yang dapat diteruskan ke
jobs.get
dan
jobs.getQueryResults
API untuk mencari kueri singkat.
Jika BigQuery menentukan bahwa tugas diperlukan untuk menyelesaikan kueri, jobReference
akan ditampilkan. Anda dapat memeriksa kolom job_creation_reason
di tampilan
INFORMATION_SCHEMA.JOBS
untuk menentukan
alasan tugas dibuat untuk kueri. Dalam hal ini, Anda harus menggunakan
jobs.getQueryResults
untuk mengambil hasil saat kueri selesai.
Saat menggunakan nilai JOB_CREATION_OPTIONAL
, Anda tidak boleh berasumsi bahwa
kolom jobReference
selalu ada dalam respons. Anda harus memeriksa apakah kolom tersebut ada sebelum mengaksesnya.
Mode yang dioptimalkan untuk kueri singkat juga menyertakan cache hasil kueri yang meningkatkan
performa kueri berulang saat data pokok tidak berubah. Saat Anda menentukan useQueryCache: true
(nilai defaultnya adalah true
jika tidak ditentukan) dan jobCreationMode: JOB_CREATION_OPTIONAL
di QueryRequest
, BigQuery akan mencoba menayangkan hasil dari cache. Perhatikan bahwa
caching dilakukan dengan upaya terbaik.
Untuk menjalankan kueri menggunakan mode kueri singkat yang dioptimalkan, pilih salah satu opsi berikut:
Konsol
Buka halaman BigQuery.
Klik
Kueri SQL.Di editor kueri, masukkan kueri GoogleSQL yang valid.
Misalnya, buat kueri set data publik BigQuery
usa_names
untuk menentukan nama yang paling umum di Amerika Serikat antara tahun 1910 dan 2013:SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10;
Klik
More, lalu klik Short query optimized di bagian Choose query mode. Klik CONFIRM untuk mengonfirmasi pilihan.Klik
Run.
bq
-
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.
Gunakan perintah
bq query
dan tentukan flag--job_creation_mode=JOB_CREATION_OPTIONAL
. Pada contoh berikut, flag--use_legacy_sql=false
memungkinkan Anda menggunakan sintaksis GoogleSQL.bq query \ --rpc=true \ --use_legacy_sql=false \ --job_creation_mode=JOB_CREATION_OPTIONAL \ --location=LOCATION \ 'QUERY'
Ganti QUERY dengan kueri GoogleSQL yang valid, dan ganti LOCATION dengan region yang valid tempat set data berada. Misalnya, buat kueri set data publik BigQuery
usa_names
untuk menentukan nama yang paling umum di Amerika Serikat antara tahun 1910 dan 2013:bq query \ --rpc=true \ --use_legacy_sql=false \ --job_creation_mode=JOB_CREATION_OPTIONAL \ --location=us \ 'SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10;'
Tugas kueri menampilkan output secara inline dalam respons.
API
Untuk menjalankan kueri dalam mode kueri singkat menggunakan API, jalankan kueri secara sinkron
dan isi properti QueryRequest
. Sertakan properti jobCreationMode
dan tetapkan nilainya ke JOB_CREATION_OPTIONAL
.
Periksa responsnya. Jika jobComplete
sama dengan true
dan jobReference
kosong, baca hasil dari kolom rows
. Anda juga bisa mendapatkan queryId
dari respons.
Jika jobRefernence
ada, Anda dapat memeriksa jobCreationReason
untuk mengetahui alasan tugas dibuat oleh BigQuery. Lakukan polling untuk hasil dengan memanggil
getQueryResults
.
Polling hingga jobComplete
sama dengan true
. Periksa error dan peringatan dalam
daftar errors
.
Java
Versi yang tersedia: 2.37.1 dan yang lebih baru
Memerlukan penetapan variabel lingkungan QUERY_PREVIEW_ENABLED=true
.
Contoh: Linux atau macOS
export QUERY_PREVIEW_ENABLED=TRUE
Contoh: Windows
$env:QUERY_PREVIEW_ENABLED=TRUE
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Untuk menjalankan kueri dengan proxy, lihat Mengonfigurasi proxy.
Python
Versi yang tersedia: 3.21.0 dan yang lebih baru
Memerlukan penetapan variabel lingkungan QUERY_PREVIEW_ENABLED=true
.
Contoh: Linux atau macOS
export QUERY_PREVIEW_ENABLED=TRUE
Contoh: Windows
$env:QUERY_PREVIEW_ENABLED=TRUE
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Node
Versi yang tersedia: 7.6.1 dan yang lebih baru
Memerlukan penetapan variabel lingkungan QUERY_PREVIEW_ENABLED=true
.
Contoh: Linux atau macOS
export QUERY_PREVIEW_ENABLED=TRUE
Contoh: Windows
$env:QUERY_PREVIEW_ENABLED=TRUE
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Node.js API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Go
Versi yang tersedia: 1.58.0 dan yang lebih baru
Memerlukan penetapan variabel lingkungan QUERY_PREVIEW_ENABLED=true
Contoh: Linux atau macOS
export QUERY_PREVIEW_ENABLED=TRUE
Contoh: Windows
$env:QUERY_PREVIEW_ENABLED=TRUE
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Go API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Driver JDBC
Versi yang tersedia: JDBC v1.6.1
Memerlukan setelan JobCreationMode=2
dalam string koneksi.
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;JobCreationMode=2;Location=US;
Driver ODBC
Versi yang tersedia: ODBC v3.0.7.1016
Memerlukan setelan JobCreationMode=2
di file .ini
.
[ODBC Data Sources] Sample DSN=Simba Google BigQuery ODBC Connector 64-bit [Sample DSN] JobCreationMode=2
Kuota
Untuk mengetahui informasi tentang kuota terkait kueri batch dan interaktif, baca Tugas kueri.
Memantau kueri
Anda bisa mendapatkan informasi tentang kueri saat dieksekusi menggunakan Jobs Explorer atau dengan membuat kueri untuk tampilan INFORMATION_SCHEMA.JOBS_BY_PROJECT
.
Dry run
Uji coba di BigQuery memberikan informasi berikut:
- perkiraan tagihan dalam mode on demand
- validasi kueri
- perkiraan byte yang diproses oleh kueri dalam mode kapasitas
Uji coba tidak menggunakan slot kueri, dan Anda tidak dikenai biaya untuk melakukan uji coba. Anda dapat menggunakan perkiraan yang ditampilkan oleh uji coba untuk menghitung biaya kueri di kalkulator harga.
Melakukan uji coba
Untuk melakukan uji coba, lakukan hal berikut:
Konsol
Buka halaman BigQuery.
Masukkan kueri Anda di editor kueri.
Jika kueri valid, tanda centang akan muncul secara otomatis bersama dengan jumlah data yang akan diproses oleh kueri. Jika kueri tidak valid, tanda seru akan muncul bersama dengan pesan error.
bq
Masukkan kueri seperti berikut menggunakan flag --dry_run
.
bq query \ --use_legacy_sql=false \ --dry_run \ 'SELECT COUNTRY, AIRPORT, IATA FROM `project_id`.dataset.airports LIMIT 1000'
Untuk kueri yang valid, perintah tersebut menghasilkan respons berikut:
Query successfully validated. Assuming the tables are not modified, running this query will process 10918 bytes of data.
API
Untuk melakukan uji coba menggunakan API, kirim tugas kueri dengan
dryRun
ditetapkan ke true
pada
jenis
JobConfiguration.
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Go API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Java API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Node.js
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Node.js di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Node.js API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
PHP
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan PHP di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery PHP API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Python
Tetapkan properti QueryJobConfig.dry_run ke True
.
Client.query() selalu menampilkan QueryJob yang telah selesai saat diberi konfigurasi kueri uji coba.
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai BigQuery menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi BigQuery Python API.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Langkah selanjutnya
- Pelajari cara mengelola tugas kueri.
- Pelajari cara melihat histori kueri.
- Pelajari cara menyimpan dan membagikan kueri.
- Pelajari antrean kueri.