Pengantar SQL di BigQuery
Dokumen ini memberikan ringkasan tentang pernyataan dan dialek SQL yang didukung di BigQuery.
Ringkasan
GoogleSQL adalah Structured Query Language (SQL) sesuai ANSI yang mencakup jenis pernyataan yang didukung berikut ini:
- Pernyataan kueri, yang juga disebut sebagai pernyataan Data Query Language (DQL), adalah metode utama untuk menganalisis data di BigQuery. Alat tersebut memindai satu atau beberapa tabel atau ekspresi dan menampilkan baris hasil yang dihitung.
- Pernyataan bahasa prosedural adalah ekstensi prosedural untuk GoogleSQL yang memungkinkan Anda mengeksekusi beberapa pernyataan SQL dalam satu permintaan. Pernyataan prosedural dapat menggunakan variabel dan pernyataan alur kontrol, dan dapat memiliki efek samping.
- Pernyataan Bahasa Definisi Data (DDL) memungkinkan Anda membuat dan mengubah objek database seperti tabel, tampilan, fungsi, dan kebijakan akses tingkat baris.
- Pernyataan Bahasa Pengolahan Data (DML) memungkinkan Anda memperbarui, menyisipkan, dan menghapus data dari Tabel BigQuery.
- Pernyataan Bahasa Kontrol Data (DCL) memungkinkan Anda mengontrol resource sistem BigQuery seperti akses dan kapasitas.
- Pernyataan Transaction Control Language (TCL) memungkinkan Anda mengelola transaksi untuk modifikasi data.
- Pernyataan lain menyediakan fungsi tambahan, seperti mengekspor data.
Dialek BigQuery SQL
BigQuery mendukung dialek GoogleSQL, tetapi dialek legacy SQL juga tersedia. Jika baru mengenal BigQuery, Anda harus menggunakan GoogleSQL karena GoogleSQL mendukung berbagai fungsi. Misalnya, fitur seperti pernyataan DDL dan DML hanya didukung menggunakan GoogleSQL. Legacy SQL dipertahankan untuk kompatibilitas mundur dan sebaiknya pelanggan migrate jika mereka menggunakan legacy SQL.
Mengubah dari dialek default
Antarmuka yang Anda gunakan untuk membuat kueri data menentukan dialek kueri yang merupakan default. Untuk beralih ke dialek lain:
Konsol
Dialek default untuk Konsol Google Cloud adalah GoogleSQL. Untuk mengubah dialek tersebut menjadi legacy SQL:
Di Konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, klik tombol More > Query settings.
Di bagian Opsi lanjutan, untuk dialek SQL, klik Legacy, lalu klik Simpan. Tindakan ini akan menetapkan opsi legacy SQL untuk kueri ini. Saat mengklik Tulis kueri baru untuk membuat kueri baru, Anda harus memilih opsi legacy SQL lagi.
SQL
Dialek SQL default adalah GoogleSQL.
Anda dapat menetapkan dialek SQL dengan menyertakan awalan
#standardSQL
atau #legacySQL
sebagai bagian dari kueri Anda.
Awalan kueri ini tidak peka huruf besar/kecil, harus mendahului kueri, dan harus dipisahkan dari kueri dengan karakter newline. Contoh berikut
menetapkan dialek ke legacy SQL dan meng-kueri set data kelahiran:
Di konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
#legacySQL SELECT weight_pounds, state, year, gestation_weeks FROM [bigquery-public-data:samples.natality] ORDER BY weight_pounds DESC LIMIT 10;
Klik
Run.
Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.
bq
Dialek kueri default dalam alat command line bq
adalah legacy SQL. Untuk
beralih ke dialek GoogleSQL, tambahkan tanda --use_legacy_sql=false
atau
--nouse_legacy_sql
ke pernyataan command line Anda.
Beralih ke dialek GoogleSQL
Untuk menggunakan sintaksis GoogleSQL dalam tugas kueri, setel parameter use_legacy_sql
ke false
.
bq query \
--use_legacy_sql=false \
'SELECT
word
FROM
`bigquery-public-data.samples.shakespeare`'
Menetapkan GoogleSQL sebagai dialek default
Anda dapat menetapkan GoogleSQL sebagai dialek default untuk alat command line dan
shell interaktif dengan mengedit file konfigurasi alat command line:
.bigqueryrc
.
Untuk mengetahui informasi selengkapnya tentang .bigqueryrc
, lihat
Menetapkan nilai default untuk tanda khusus perintah.
Untuk menetapkan --use_legacy_sql=false
di .bigqueryrc
:
- Buka
.bigqueryrc
di editor teks. Secara default,.bigqueryrc
harus berada di direktori pengguna Anda, misalnya,$HOME/.bigqueryrc
. Tambahkan teks berikut ke file. Contoh ini menetapkan GoogleSQL sebagai sintaksis default untuk kueri dan perintah
mk
(digunakan saat Anda membuat tampilan). Jika sudah mengonfigurasi nilai default untuk tanda perintahquery
ataumk
, Anda tidak perlu menambahkan[query]
atau[mk]
lagi.[query] --use_legacy_sql=false [mk] --use_legacy_sql=false
Simpan dan tutup file tersebut.
Jika menggunakan shell interaktif, Anda harus keluar dan memulai ulang agar perubahan dapat diterapkan.
Untuk mengetahui informasi tentang tanda command line yang tersedia, lihat referensi alat command line bq.
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 mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Secara default, library C# menggunakan GoogleSQL.Beralih ke dialek legacy SQL
Untuk menggunakan sintaksis legacy SQL dalam tugas kueri, tetapkan parameter UseLegacySql
ke true
.
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 mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Secara default, library klien Go menggunakan GoogleSQL.Beralih ke dialek legacy SQL
Untuk menggunakan sintaksis legacy SQL dalam tugas kueri, tetapkan properti UseLegacySQL
dalam konfigurasi kueri ke true
.
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 mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Secara default, library klien Java menggunakan GoogleSQL.Beralih ke dialek legacy SQL
Untuk menggunakan sintaksis legacy SQL dalam tugas kueri, tetapkan parameter useLegacySql
ke true
.
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 mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Secara default, library klien Node.js menggunakan GoogleSQL.Beralih ke dialek legacy SQL
Untuk menggunakan sintaksis legacy SQL dalam tugas kueri, tetapkan parameter useLegacySql
ke true
.
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 mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Secara default, library klien PHP menggunakan GoogleSQL.Beralih ke dialek legacy SQL
Untuk menggunakan sintaksis legacy SQL dalam tugas kueri, tetapkan parameter useLegacySql
ke true
.
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 mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Secara default, library klien Python menggunakan GoogleSQL.Beralih ke dialek legacy SQL
Untuk menggunakan sintaksis legacy SQL dalam tugas kueri, tetapkan parameter use_legacy_sql
ke True
.
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 mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Secara default, library klien Ruby menggunakan GoogleSQL.Beralih ke dialek legacy SQL
Untuk menggunakan sintaksis legacy SQL dalam tugas kueri, teruskan opsi legacy_sql: true
dengan kueri Anda.
Langkah selanjutnya
- Untuk mengetahui informasi tentang cara menjalankan kueri SQL di BigQuery, lihat Menjalankan tugas kueri batch dan interaktif.
- Untuk mengetahui informasi selengkapnya tentang pengoptimalan kueri secara umum, lihat Pengantar pengoptimalan performa kueri.
- Untuk mempelajari sintaksis GoogleSQL yang digunakan untuk membuat kueri data di BigQuery, lihat Sintaksis kueri.