Membuat tampilan
Dokumen ini menjelaskan cara membuat tampilan di BigQuery.
Anda dapat membuat tampilan di BigQuery dengan cara berikut:
- Menggunakan Konsol Google Cloud.
- Menggunakan perintah
bq mk
alat command line bq. - Memanggil metode API
tables.insert
. - Menggunakan library klien.
- Mengirimkan pernyataan bahasa definisi data (DDL)
CREATE VIEW
.
Batasan tampilan
Tampilan BigQuery memiliki batasan sebagai berikut:
- Tampilan bersifat hanya baca. Misalnya, Anda tidak dapat menjalankan kueri yang menyisipkan, memperbarui, atau menghapus data.
- Set data yang berisi tampilan Anda dan set data yang berisi tabel yang dirujuk oleh tampilan tersebut harus berada di lokasi yang sama.
- Referensi di dalam tampilan harus memenuhi syarat dengan set data. Set data default tidak memengaruhi isi tampilan.
- Anda tidak dapat menggunakan metode JSON API
TableDataList
untuk mengambil data dari tampilan. Untuk mengetahui informasi selengkapnya, lihat Tabledata: daftar. - Anda tidak dapat menggabungkan kueri GoogleSQL dan legacy SQL saat menggunakan tampilan. Kueri GoogleSQL tidak dapat mereferensikan tampilan yang ditentukan menggunakan sintaksis legacy SQL.
- Anda tidak dapat mereferensikan parameter kueri dalam tampilan.
- Skema tabel yang mendasarinya disimpan dengan tampilan saat tampilan dibuat. Jika kolom ditambahkan, dihapus, atau diubah setelah tampilan dibuat, tampilan tidak akan otomatis diperbarui dan skema yang dilaporkan akan tetap tidak akurat hingga definisi SQL tampilan diubah atau tampilan dibuat ulang. Meskipun skema yang dilaporkan mungkin tidak akurat, semua kueri yang dikirimkan memberikan hasil yang akurat.
- Anda tidak dapat memperbarui tampilan legacy SQL ke sintaksis GoogleSQL
secara otomatis. Untuk mengubah kueri yang digunakan untuk menentukan tampilan, Anda dapat menggunakan
hal berikut:
- Opsi Edit kueri di Konsol Google Cloud
- Perintah
bq update --view
di alat command line bq - Library Klien BigQuery
- Metode API update atau patch.
- Anda tidak dapat menyertakan fungsi yang ditentukan pengguna sementara atau tabel sementara dalam kueri SQL yang menentukan tampilan.
- Anda tidak dapat mereferensikan tampilan dalam kueri tabel karakter pengganti.
Untuk mengetahui informasi tentang kuota dan batas yang berlaku untuk tampilan, lihat Batas tampilan.
Sebelum memulai
Berikan peran Identity and Access Management (IAM) yang memberi pengguna izin yang diperlukan untuk melakukan setiap tugas dalam dokumen ini.
Izin yang diperlukan
Tampilan diperlakukan sebagai resource tabel di BigQuery, sehingga pembuatan tampilan memerlukan izin yang sama seperti pembuatan tabel. Anda juga harus memiliki izin untuk membuat kueri setiap tabel yang direferensikan oleh kueri SQL tampilan.
Untuk membuat tampilan, Anda memerlukan izin IAM
bigquery.tables.create
. Peran IAM roles/bigquery.dataEditor
yang telah ditetapkan mencakup izin yang diperlukan untuk membuat tampilan.
Selain itu, jika Anda memiliki izin bigquery.datasets.create
, Anda dapat
membuat tampilan dalam set data yang Anda buat. Agar dapat membuat tampilan untuk data yang
bukan milik Anda, Anda harus memiliki izin bigquery.tables.getData
untuk tabel tersebut.
Untuk mengetahui informasi selengkapnya tentang peran dan izin IAM di BigQuery, lihat Peran dan izin yang telah ditetapkan.
Penamaan tampilan
Saat Anda membuat tampilan di BigQuery, nama tampilan harus unik per set data. Nama tampilan dapat:
- Berisi karakter dengan total hingga 1.024 byte UTF-8.
- Berisi karakter Unicode dalam kategori L (huruf), M (tanda), N (angka), Pc (penghubung, termasuk garis bawah), Pd (tanda pisah), Zs (spasi). Untuk informasi selengkapnya, lihat Kategori Umum.
Berikut adalah contoh nama tampilan yang valid:
view 01
, ग्राहक
, 00_お客様
, étudiant-01
.
Peringatan:
- Nama tabel peka huruf besar/kecil secara default.
mytable
danMyTable
dapat berada dalam set data yang sama, kecuali jika keduanya merupakan bagian dari set data yang tidak peka huruf besar/kecil. - Beberapa nama tampilan dan awalan nama tampilan dicadangkan. Jika Anda menerima error yang menyatakan bahwa nama atau awalan tampilan dicadangkan, pilih nama yang berbeda dan coba lagi.
Jika Anda menyertakan beberapa operator titik (
.
) secara berurutan, operator duplikat tersebut akan dihapus secara implisit.Misalnya, contoh ini:
project_name....dataset_name..table_name
Menjadi seperti ini:
project_name.dataset_name.table_name
Membuat tampilan
Anda dapat membuat tampilan dengan menulis kueri SQL yang digunakan untuk menentukan
data yang dapat diakses oleh tampilan. Kueri SQL harus terdiri dari pernyataan SELECT
.
Jenis pernyataan lain (seperti pernyataan DML) dan kueri multi-pernyataan tidak diizinkan
dalam kueri tampilan.
Untuk membuat tampilan:
Konsol
Setelah menjalankan kueri, klik tombol Simpan tampilan di atas jendela hasil kueri untuk menyimpan kueri sebagai tampilan.
Pada dialog Simpan tampilan:
- Untuk Nama project, pilih project untuk menyimpan tampilan.
- Untuk Nama set data, pilih set data untuk menyimpan tampilan. Set data yang berisi tampilan Anda dan set data yang berisi tabel yang dirujuk oleh tampilan harus berada di lokasi yang sama.
- Untuk Nama tabel, masukkan nama tampilan.
- Klik Simpan.
SQL
Gunakan
pernyataan CREATE VIEW
.
Contoh berikut
akan membuat tampilan bernama usa_male_names
dari set data publik
nama USA:
Di Konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
CREATE VIEW mydataset.usa_male_names(name, number) AS ( SELECT name, number FROM
bigquery-public-data.usa_names.usa_1910_current
WHERE gender = 'M' ORDER BY number DESC );Klik
Run.
Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.
bq
Gunakan perintah bq mk
dengan flag --view
. Untuk kueri GoogleSQL, tambahkan flag --use_legacy_sql
dan tetapkan ke false
. Beberapa parameter opsional
mencakup --add_tags
, --expiration
, --description
, dan
--label
. Untuk daftar lengkap parameter, lihat
referensi
perintah bq mk
.
Jika kueri Anda merujuk ke resource fungsi yang ditentukan pengguna eksternal (UDF)
yang disimpan di Cloud Storage atau di file lokal, gunakan
flag --view_udf_resource
untuk menentukan resource tersebut. Flag
--view_udf_resource
tidak ditunjukkan di sini. Untuk mengetahui informasi selengkapnya tentang
penggunaan UDF, lihat
UDF.
Jika Anda membuat tampilan dalam project selain project default,
tentukan project ID menggunakan flag --project_id
.
bq mk \ --use_legacy_sql=false \ --view_udf_resource=PATH_TO_FILE \ --expiration=INTEGER \ --description="DESCRIPTION" \ --label=KEY_1:VALUE_1 \ --add_tags=KEY_2:VALUE_2[,...] \ --view='QUERY' \ --project_id=PROJECT_ID \ DATASET.VIEW
Ganti kode berikut:
PATH_TO_FILE
adalah URI atau jalur sistem file lokal ke file kode yang akan dimuat dan dievaluasi segera sebagai resource UDF yang digunakan oleh tampilan. Ulangi flag untuk menentukan beberapa file.INTEGER
menetapkan masa aktif (dalam detik) untuk tampilan. JikaINTEGER
adalah0
, tampilan tidak akan habis masa berlakunya. Jika Anda tidak menyertakan flag--expiration
, BigQuery akan membuat tampilan dengan masa aktif tabel default set data.DESCRIPTION
adalah deskripsi tampilan dalam tanda kutip.KEY_1:VALUE_1
adalah pasangan nilai kunci yang mewakili label. Ulangi flag--label
untuk menentukan beberapa label.KEY_2:VALUE_2
adalah pasangan nilai kunci yang mewakili tag. Tambahkan beberapa tag di bawah tanda yang sama dengan koma di antara pasangan nilai kunci.QUERY
adalah kueri yang valid.PROJECT_ID
adalah project ID Anda (jika Anda tidak memiliki project default yang dikonfigurasi).DATASET
adalah set data dalam project Anda.VIEW
adalah nama tampilan yang ingin Anda buat.
Contoh:
Masukkan perintah berikut untuk membuat tampilan bernama myview
di
mydataset
dalam project default Anda. Waktu habis masa berlaku ditetapkan ke 3.600 detik (1 jam), deskripsi ditetapkan ke This is my view
, dan label ditetapkan ke organization:development
. Kueri yang digunakan untuk membuat tampilan
mengkueri data dari set data publik Data Nama USA.
bq mk \
--use_legacy_sql=false \
--expiration 3600 \
--description "This is my view" \
--label organization:development \
--view \
'SELECT
name,
number
FROM
`bigquery-public-data.usa_names.usa_1910_current`
WHERE
gender = "M"
ORDER BY
number DESC' \
mydataset.myview
Masukkan perintah berikut untuk membuat tampilan bernama myview
di
mydataset
di myotherproject
. Deskripsi ditetapkan ke
This is my view
, label ditetapkan ke organization:development
,
dan masa berlaku tampilan ditetapkan ke waktu habis masa berlaku
tabel default set data.
Kueri yang digunakan untuk membuat tampilan
mengkueri data dari set data publik Data Nama USA.
bq mk \
--use_legacy_sql=false \
--description "This is my view" \
--label organization:development \
--project_id myotherproject \
--view \
'SELECT
name,
number
FROM
`bigquery-public-data.usa_names.usa_1910_current`
WHERE
gender = "M"
ORDER BY
number DESC' \
mydataset.myview
Setelah tampilan dibuat, Anda dapat memperbarui waktu habis masa berlaku, deskripsi, dan label tampilan. Untuk mengetahui informasi selengkapnya, lihat Memperbarui tampilan.
Terraform
Gunakan resource google_bigquery_table
.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Contoh berikut membuat tampilan bernama myview
:
Untuk menerapkan konfigurasi Terraform di project Google Cloud, selesaikan langkah-langkah di bagian berikut.
Menyiapkan Cloud Shell
- Luncurkan Cloud Shell.
-
Tetapkan project Google Cloud default tempat Anda ingin menerapkan konfigurasi Terraform.
Anda hanya perlu menjalankan perintah ini sekali per project, dan dapat dijalankan di direktori mana pun.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Variabel lingkungan akan diganti jika Anda menetapkan nilai eksplisit dalam file konfigurasi Terraform.
Menyiapkan direktori
Setiap file konfigurasi Terraform harus memiliki direktorinya sendiri (juga disebut modul root).
-
Di Cloud Shell, buat direktori dan file baru di dalam direktori tersebut. Nama file harus memiliki
ekstensi
.tf
—misalnyamain.tf
. Dalam tutorial ini, file ini disebut sebagaimain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Jika mengikuti tutorial, Anda dapat menyalin kode contoh di setiap bagian atau langkah.
Salin kode contoh ke dalam
main.tf
yang baru dibuat.Atau, salin kode dari GitHub. Tindakan ini direkomendasikan jika cuplikan Terraform adalah bagian dari solusi menyeluruh.
- Tinjau dan ubah contoh parameter untuk diterapkan pada lingkungan Anda.
- Simpan perubahan Anda.
-
Lakukan inisialisasi Terraform. Anda hanya perlu melakukan ini sekali per direktori.
terraform init
Secara opsional, untuk menggunakan versi penyedia Google terbaru, sertakan opsi
-upgrade
:terraform init -upgrade
Menerapkan perubahan
-
Tinjau konfigurasi dan pastikan resource yang akan dibuat atau
diupdate oleh Terraform sesuai yang Anda inginkan:
terraform plan
Koreksi konfigurasi jika diperlukan.
-
Terapkan konfigurasi Terraform dengan menjalankan perintah berikut dan memasukkan
yes
pada prompt:terraform apply
Tunggu hingga Terraform menampilkan pesan "Apply complete!".
- Buka project Google Cloud Anda untuk melihat hasilnya. Di Konsol Google Cloud, buka resource Anda di UI untuk memastikan bahwa Terraform telah membuat atau mengupdatenya.
API
Panggil metode tables.insert
dengan resource tabel yang
berisi properti view
.
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.
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.
Setelah membuat tampilan, Anda akan mengkuerinya seperti Anda mengkueri tabel.
Keamanan tampilan
Untuk mengontrol akses ke tampilan di BigQuery, lihat Tampilan yang diotorisasi.
Langkah berikutnya
- Untuk mengetahui informasi tentang membuat tampilan yang diotorisasi, lihat Membuat tampilan yang diotorisasi.
- Untuk mengetahui informasi tentang cara mendapatkan metadata tampilan, lihat Mendapatkan informasi tentang tampilan.
- Untuk mengetahui informasi selengkapnya tentang mengelola tampilan, lihat Mengelola tampilan.