Membuat dan menggunakan tabel
Dokumen ini menjelaskan cara membuat dan menggunakan tabel standar (bawaan) di BigQuery. Untuk informasi tentang cara membuat jenis tabel lainnya, lihat:
Setelah membuat tabel, Anda dapat:
- Mengontrol akses ke data tabel Anda
- Mendapatkan informasi tentang tabel Anda
- Membuat daftar tabel dalam set data
- Mendapatkan metadata tabel
Untuk informasi selengkapnya tentang cara mengelola tabel termasuk memperbarui properti tabel, menyalin tabel, dan menghapus tabel, lihat Mengelola tabel.
Sebelum memulai
Sebelum membuat tabel di BigQuery, pertama-tama:
- Siapkan project dengan mengikuti panduan memulai BigQuery.
- Buat set data BigQuery.
- Atau, baca Pengantar tabel untuk memahami batasan, kuota, dan harga tabel.
Penamaan tabel
Saat Anda membuat tabel di BigQuery, nama tabel per set data harus unik. Nama tabel 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 tabel yang valid: table 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 tabel dan awalan nama tabel dicadangkan. Jika Anda menerima error yang menyatakan bahwa nama tabel atau awalan telah dicadangkan, pilih nama lain 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 ini:
project_name.dataset_name.table_name
Membuat tabel
Anda dapat membuat tabel di BigQuery dengan cara berikut:
- Secara manual menggunakan Konsol Google Cloud atau perintah alat command line bq
bq mk
. - Secara terprogram dengan memanggil metode API
tables.insert
. - Dengan menggunakan library klien.
- Dari hasil kueri.
- Dengan menentukan tabel yang merujuk sumber data eksternal.
- Saat Anda memuat data.
- Dengan menggunakan pernyataan bahasa definisi data (DDL)
CREATE TABLE
.
Izin yang diperlukan
Untuk membuat tabel, Anda memerlukan izin IAM berikut:
bigquery.tables.create
bigquery.tables.updateData
bigquery.jobs.create
Selain itu, Anda mungkin memerlukan izin bigquery.tables.getData
untuk mengakses data yang Anda tulis ke tabel.
Setiap peran IAM yang telah ditetapkan berikut menyertakan izin yang Anda perlukan untuk membuat tabel:
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.admin
(termasuk izinbigquery.jobs.create
)roles/bigquery.user
(termasuk izinbigquery.jobs.create
)roles/bigquery.jobUser
(termasuk izinbigquery.jobs.create
)
Selain itu, jika memiliki izin bigquery.datasets.create
, Anda dapat membuat dan memperbarui tabel di set data yang Anda buat.
Untuk mengetahui informasi selengkapnya tentang peran dan izin IAM dalam BigQuery, baca Peran dan izin yang telah ditetapkan.
Membuat tabel kosong dengan definisi skema
Anda dapat membuat tabel kosong yang berisi definisi skema dengan cara berikut:
- Masukkan skema menggunakan Konsol Google Cloud.
- Sediakan skema secara inline menggunakan alat command line bq.
- Kirimkan file skema JSON menggunakan alat command line bq.
- Berikan skema dalam resource tabel
saat memanggil metode
tables.insert
API.
Untuk informasi selengkapnya tentang cara menentukan skema tabel, lihat Menentukan skema.
Setelah tabel dibuat, Anda dapat memuat data ke dalamnya atau mengisinya dengan menulis hasil kueri ke tabel tersebut.
Untuk membuat tabel kosong dengan definisi skema:
Konsol
Di konsol Google Cloud, buka halaman BigQuery.
- Di panel Explorer, luaskan project Anda, lalu pilih set data.
- Di bagian Dataset info, klik Create table.
- Di panel Create table, tentukan detail berikut:
- Di bagian Source, pilih Empty table dalam daftar Create table from.
- Di bagian Destination, tentukan detail berikut:
- Untuk Dataset, pilih set data tempat Anda ingin membuat tabel.
- Di kolom Table, masukkan nama tabel yang ingin Anda buat.
- Pastikan kolom Table type disetel ke Native table.
- Di bagian Schema, masukkan definisi skema.
Anda dapat memasukkan informasi skema secara manual menggunakan salah satu metode berikut:
- Opsi 1: Klik Edit as text dan tempelkan skema dalam bentuk array JSON. Saat menggunakan array JSON, Anda menghasilkan skema menggunakan proses yang sama seperti membuat file skema JSON.
Anda dapat melihat skema tabel yang ada dalam format JSON dengan memasukkan perintah berikut:
bq show --format=prettyjson dataset.table
- Opsi 2: Klik Type, dan Mode untuk setiap kolom. Add field, lalu masukkan skema tabel. Tentukan Name,
- Opsi 1: Klik Edit as text dan tempelkan skema dalam bentuk array JSON. Saat menggunakan array JSON, Anda menghasilkan skema menggunakan proses yang sama seperti membuat file skema JSON.
Anda dapat melihat skema tabel yang ada dalam format JSON dengan memasukkan perintah berikut:
- Opsional: Tentukan Partition and cluster settings. Untuk mengetahui informasi selengkapnya, lihat Membuat tabel yang dipartisi serta Membuat dan menggunakan tabel yang dikelompokkan.
- Opsional: Di bagian Advanced options, jika ingin menggunakan kunci enkripsi yang dikelola pelanggan, pilih opsi Use a customer-managed encryption key (CMEK). Secara default, BigQuery mengenkripsi konten pelanggan yang disimpan dalam penyimpanan dengan menggunakan kunci yang dimiliki dan dikelola Google.
- Klik Create table.
SQL
Contoh berikut membuat tabel bernama newtable
yang habis masa berlakunya pada 1 Januari 2023:
Di Konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
CREATE TABLE mydataset.newtable ( x INT64 OPTIONS (description = 'An optional INTEGER field'), y STRUCT < a ARRAY <STRING> OPTIONS (description = 'A repeated STRING field'), b BOOL > ) OPTIONS ( expiration_timestamp = TIMESTAMP '2023-01-01 00:00:00 UTC', description = 'a table that expires in 2023', labels = [('org_unit', 'development')]);
Klik
Run.
Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.
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 mk
dengan flag--table
atau-t
. Anda dapat memberikan informasi skema tabel secara inline atau dengan file skema JSON. Untuk mengetahui daftar lengkap parameter, lihat referensibq mk --table
. Beberapa parameter opsional meliputi:--expiration
--description
--time_partitioning_field
--time_partitioning_type
--range_partitioning
--clustering_fields
--destination_kms_key
--label
--time_partitioning_field
,--time_partitioning_type
,--range_partitioning
,--clustering_fields
, dan--destination_kms_key
tidak ditunjukkan di sini. Lihat link berikut untuk mengetahui informasi selengkapnya tentang parameter opsional ini:- Untuk informasi selengkapnya tentang
--time_partitioning_field
,--time_partitioning_type
, dan--range_partitioning
, lihat tabel berpartisi. - Untuk mengetahui informasi selengkapnya tentang
--clustering_fields
, lihat tabel yang dikelompokkan. - Untuk informasi selengkapnya tentang
--destination_kms_key
, lihat kunci enkripsi yang dikelola pelanggan.
Jika Anda membuat tabel dalam project selain project default Anda, tambahkan ID project ke set data dalam format berikut:
project_id:dataset
.Untuk membuat tabel kosong dalam set data yang ada dengan definisi skema, masukkan definisi berikut:
bq mk \ --table \ --expiration=integer \ --description=description \ --label=key_1:value_1 \ --label=key_2:value_2 \ --add_tags=key_3:value_3[,...] \ project_id:dataset.table \ schema
Ganti kode berikut:
- integer adalah masa aktif default (dalam detik) untuk tabel. Nilai minimumnya adalah 3.600 detik (satu jam). Waktu habis masa berlaku mengevaluasi waktu UTC saat ini ditambah nilai bilangan bulat. Jika Anda menetapkan waktu habis masa berlaku saat membuat tabel, setelan habis masa berlaku tabel default set data akan diabaikan.
- description adalah deskripsi tabel dalam tanda kutip.
- key_1:value_1 dan key_2:value_2 adalah pasangan nilai kunci yang menentukan label.
- key_3:value_3 adalah pasangan nilai kunci yang menentukan tag. Tambahkan beberapa tag di bawah flag yang sama dengan koma di antara pasangan nilai kunci.
- project_id adalah project ID Anda.
- dataset adalah set data dalam project Anda.
- table adalah nama tabel yang Anda buat.
- schema adalah definisi skema inline dalam format field:data_type,field:data_type atau jalur ke file skema JSON di mesin lokal Anda.
Saat menentukan skema pada command line, Anda tidak dapat menyertakan jenis
RECORD
(STRUCT
), Anda tidak dapat menyertakan deskripsi kolom, dan Anda tidak dapat menentukan mode kolom. Semua mode ditetapkan secara default keNULLABLE
. Untuk menyertakan deskripsi, mode, dan jenisRECORD
, berikan file skema JSON sebagai gantinya.Contoh:
Masukkan perintah berikut untuk membuat tabel menggunakan definisi skema inline. Perintah ini akan membuat tabel bernama
mytable
dimydataset
dalam project default Anda. Masa berlaku tabel ditetapkan ke 3600 detik (1 jam), deskripsi ditetapkan keThis is my table
, dan label ditetapkan keorganization:development
. Perintah tersebut menggunakan pintasan-t
, bukan--table
. Skema ditentukan secara inline sebagai:qtr:STRING,sales:FLOAT,year:STRING
.bq mk \ -t \ --expiration 3600 \ --description "This is my table" \ --label organization:development \ mydataset.mytable \ qtr:STRING,sales:FLOAT,year:STRING
Masukkan perintah berikut untuk membuat tabel menggunakan file skema JSON. Perintah ini membuat tabel bernama
mytable
dimydataset
dalam project default Anda. Masa berlaku tabel ditetapkan ke 3600 detik (1 jam), deskripsi ditetapkan keThis is my table
, dan label ditetapkan keorganization:development
. Jalur ke file skema adalah/tmp/myschema.json
.bq mk \ --table \ --expiration 3600 \ --description "This is my table" \ --label organization:development \ mydataset.mytable \ /tmp/myschema.json
Masukkan perintah berikut untuk membuat tabel menggunakan file skema JSON. Perintah ini akan membuat tabel bernama
mytable
dimydataset
dimyotherproject
. Masa berlaku tabel ditetapkan ke 3600 detik (1 jam), deskripsi ditetapkan keThis is my table
, dan label ditetapkan keorganization:development
. Jalur ke file skema adalah/tmp/myschema.json
.bq mk \ --table \ --expiration 3600 \ --description "This is my table" \ --label organization:development \ myotherproject:mydataset.mytable \ /tmp/myschema.json
Setelah tabel dibuat, Anda dapat memperbarui masa berlaku, deskripsi, dan label tabel. Anda juga dapat mengubah definisi skema.
Terraform
Gunakan resource google_bigquery_table
.
Untuk melakukan autentikasi ke BigQuery, siapkan Kredensial Default Aplikasi. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi untuk library klien.
Membuat tabel
Contoh berikut membuat tabel bernama mytable
:
Membuat tabel dan memberikan akses ke tabel tersebut
Contoh berikut membuat tabel bernama mytable
, lalu menggunakan resource
google_bigquery_table_iam_policy
untuk memberikan
akses ke resource tersebut. Lakukan langkah ini hanya jika Anda ingin memberikan akses ke tabel kepada akun utama yang tidak memiliki akses ke set data tempat tabel berada.
Membuat tabel dengan kunci enkripsi yang dikelola pelanggan
Contoh berikut membuat tabel bernamamytable
, dan juga menggunakan resource
google_kms_crypto_key
dan
google_kms_key_ring
untuk menentukan
Kunci Cloud Key Management Service untuk
tabel. Anda harus mengaktifkan Cloud Key Management Service API sebelum menjalankan contoh ini.
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 ditentukan.
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.
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.
Membuat tabel kosong tanpa definisi skema
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.
Membuat tabel dari hasil kueri
Untuk membuat tabel dari hasil kueri, tulis hasilnya ke tabel tujuan.
Konsol
Buka halaman BigQuery di konsol Google Cloud.
Di panel Explorer, luaskan project Anda dan pilih set data.
Masukkan kueri SQL yang valid.
Klik Lainnya lalu pilih Setelan kueri.
Pilih opsi Tetapkan tabel tujuan untuk hasil kueri.
Di bagian Tujuan, pilih Set data tempat Anda ingin membuat tabel, lalu pilih ID Tabel.
Di bagian Preferensi tulis tabel tujuan, pilih salah satu dari berikut ini:
- Tulis jika kosong — Menulis hasil kueri ke tabel hanya jika tabel kosong.
- Append to table — Menambahkan hasil kueri ke tabel yang ada.
- Overwrite table — Menimpa tabel yang ada dengan nama yang sama menggunakan hasil kueri.
Opsional: Untuk Lokasi data, pilih lokasi Anda.
Untuk memperbarui setelan kueri, klik Simpan.
Klik Jalankan. Ini akan membuat tugas kueri yang menulis hasil kueri ke tabel yang Anda tentukan.
Atau, jika lupa menentukan tabel tujuan sebelum menjalankan kueri, Anda dapat menyalin tabel hasil yang di-cache ke tabel permanen dengan mengklik tombol Simpan Hasil di atas editor.
SQL
Contoh berikut menggunakan
pernyataan CREATE TABLE
untuk membuat tabel trips
dari data di tabel
bikeshare_trips
publik:
Di konsol Google Cloud, buka halaman BigQuery.
Di editor kueri, masukkan pernyataan berikut:
CREATE TABLE mydataset.trips AS ( SELECT bike_id, start_time, duration_minutes FROM bigquery-public-data.austin_bikeshare.bikeshare_trips );
Klik
Run.
Untuk informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.
Untuk mengetahui informasi selengkapnya, lihat Membuat tabel baru dari tabel yang ada.
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.
Masukkan perintah
bq query
dan tentukan flag--destination_table
untuk membuat tabel permanen berdasarkan hasil kueri. Tentukan flaguse_legacy_sql=false
untuk menggunakan sintaksis GoogleSQL. Untuk menulis hasil kueri ke tabel yang tidak ada dalam project default Anda, tambahkan ID project ke nama set data dalam format berikut:project_id:dataset
.Opsional: Berikan flag
--location
dan tetapkan nilainya ke lokasi Anda.Untuk mengontrol disposisi tulis untuk tabel tujuan yang ada, tentukan salah satu flag opsional berikut:
--append_table
: Jika tabel tujuan ada, hasil kueri akan ditambahkan ke tabel tujuan tersebut.--replace
: Jika ada, tabel tujuan akan ditimpa dengan hasil kueri.bq --location=location query \ --destination_table project_id:dataset.table \ --use_legacy_sql=false 'query'
Ganti kode berikut:
location
adalah nama lokasi yang digunakan untuk memproses kueri. Flag--location
bersifat opsional. Misalnya, jika menggunakan BigQuery di region Tokyo, Anda dapat menetapkan nilai flag keasia-northeast1
. Anda dapat menetapkan nilai default untuk lokasi menggunakan file.bigqueryrc
.project_id
adalah project ID Anda.dataset
adalah nama set data yang berisi tabel tempat Anda menulis hasil kueri.table
adalah nama tabel tempat Anda menulis hasil kueri.query
adalah kueri dalam sintaksis GoogleSQL.Jika flag disposisi tulis tidak ditentukan, perilaku default-nya adalah menulis hasil ke tabel hanya jika kosong. Jika tabel ada dan tidak kosong, error berikut akan ditampilkan:
BigQuery error in query operation: Error processing job project_id:bqjob_123abc456789_00000e1234f_1: Already Exists: Table project_id:dataset.table
.Contoh:
Masukkan perintah berikut untuk menulis hasil kueri ke tabel tujuan bernama
mytable
dimydataset
. Set data ada dalam project default Anda. Karena tidak ada flag disposisi tulis yang ditentukan dalam perintah, tabel harus baru atau kosong. Jika tidak, errorAlready exists
akan ditampilkan. Kueri ini mengambil data dari set data publik Data Nama AS.bq query \ --destination_table mydataset.mytable \ --use_legacy_sql=false \ 'SELECT name, number FROM `bigquery-public-data`.usa_names.usa_1910_current WHERE gender = "M" ORDER BY number DESC'
Masukkan perintah berikut untuk menggunakan hasil kueri guna menimpa tabel tujuan bernama
mytable
dimydataset
. Set data berada dalam project default Anda. Perintah ini menggunakan flag--replace
untuk menimpa tabel tujuan.bq query \ --destination_table mydataset.mytable \ --replace \ --use_legacy_sql=false \ 'SELECT name, number FROM `bigquery-public-data`.usa_names.usa_1910_current WHERE gender = "M" ORDER BY number DESC'
Masukkan perintah berikut untuk menambahkan hasil kueri ke tabel tujuan bernama
mytable
dimydataset
. Set data berada dimy-other-project
, bukan di project default Anda. Perintah ini menggunakan flag--append_table
untuk menambahkan hasil kueri ke tabel tujuan.bq query \ --append_table \ --use_legacy_sql=false \ --destination_table my-other-project:mydataset.mytable \ 'SELECT name, number FROM `bigquery-public-data`.usa_names.usa_1910_current WHERE gender = "M" ORDER BY number DESC'
Output untuk setiap contoh ini terlihat seperti berikut. Agar mudah dibaca, beberapa output akan terpotong.
Waiting on bqjob_r123abc456_000001234567_1 ... (2s) Current status: DONE +---------+--------+ | name | number | +---------+--------+ | Robert | 10021 | | John | 9636 | | Robert | 9297 | | ... | +---------+--------+
API
Untuk menyimpan hasil kueri ke tabel permanen, panggil metode
jobs.insert
, konfigurasi tugas query
, dan sertakan nilai untuk propertidestinationTable
. Untuk mengontrol disposisi tulis untuk tabel tujuan yang ada, konfigurasi properti writeDisposition
.
Guna mengontrol lokasi pemrosesan untuk tugas kueri, tentukan properti location
di bagian jobReference
pada resource tugas.
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 menyimpan hasil kueri ke tabel permanen, tetapkan tabel tujuan ke TableId yang diinginkan di QueryJobConfiguration.
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.
Untuk menyimpan hasil kueri ke tabel permanen, buat QueryJobConfig dan tetapkan tujuan ke TableReference yang diinginkan. Teruskan konfigurasi tugas ke metode kueri.Membuat tabel yang mereferensikan sumber data eksternal
Sumber data eksternal adalah sumber data yang dapat Anda kueri langsung dari BigQuery, meskipun data tersebut tidak disimpan di penyimpanan BigQuery. Misalnya, Anda mungkin memiliki data di database Google Cloud lain, di file di Cloud Storage, atau di produk cloud yang berbeda sama sekali yang ingin Anda analisis di BigQuery, tetapi Anda tidak yang telah siap untuk bermigrasi.
Untuk informasi selengkapnya, lihat Pengantar sumber data eksternal.
Membuat tabel saat Anda memuat data
Saat memuat data ke BigQuery, Anda dapat memuat data ke dalam tabel atau partisi baru, menambahkan data ke tabel atau partisi yang sudah ada, atau menimpa tabel atau partisi. Anda tidak perlu membuat tabel kosong sebelum memuat data ke dalamnya. Anda dapat membuat tabel baru dan memuat data Anda secara bersamaan.
Saat memuat data ke BigQuery, Anda dapat memberikan skema partisi atau tabel, atau untuk format data yang didukung, Anda dapat menggunakan deteksi otomatis skema.
Untuk mengetahui informasi selengkapnya tentang pemuatan data, lihat Pengantar cara memuat data ke BigQuery.
Mengontrol akses ke tabel
Untuk mengonfigurasi akses ke tabel dan tampilan, Anda dapat memberikan peran IAM ke entity di tingkat berikut, yang tercantum sesuai urutan rentang resource yang diizinkan (terbesar hingga terkecil):
- tingkat tinggi dalam hierarki resource Google Cloud, seperti tingkat project, folder, atau organisasi
- tingkat set data
- tingkat tabel atau tabel virtual
Anda juga dapat membatasi akses data dalam tabel menggunakan metode berikut:
Akses dengan resource apa pun yang dilindungi oleh IAM bersifat tambahan. Misalnya, jika suatu entity tidak memiliki akses di tingkat tinggi seperti project, Anda dapat memberikan akses ke entity tersebut di tingkat set data, lalu entity akan memiliki akses ke tabel dan tabel virtual dalam set data. Demikian pula, jika entity tidak memiliki akses di tingkat tinggi atau tingkat set data, Anda dapat memberikan akses ke entity di tingkat tabel atau tabel virtual.
Memberikan peran IAM di tingkat yang lebih tinggi dalam hierarki resource Google Cloud seperti tingkat project, folder, atau organisasi akan memberi entity akses ke berbagai resource. Misalnya, memberikan peran ke suatu entity di tingkat project akan memberikan izin entity yang berlaku untuk semua set data di seluruh project.
Memberikan peran di tingkat set data akan menentukan operasi yang diizinkan untuk dilakukan oleh entity di tabel dan tabel virtual di set data tertentu tersebut, meskipun entity tidak memiliki akses di tingkat yang lebih tinggi. Untuk informasi tentang cara mengonfigurasi kontrol akses tingkat set data, baca Mengontrol akses ke set data.
Memberikan peran di tingkat tabel atau tabel virtual akan menentukan operasi yang diizinkan untuk dilakukan oleh entity pada tabel dan tabel virtual tertentu, meskipun jika entity tersebut tidak memiliki akses di tingkat yang lebih tinggi. Untuk informasi tentang cara mengonfigurasi kontrol akses tingkat tabel, lihat Mengontrol akses ke tabel dan tabel virtual.
Anda juga dapat membuat peran khusus IAM. Jika Anda membuat peran khusus, izin yang diberikan bergantung pada operasi tertentu yang Anda inginkan untuk dapat dilakukan oleh entity.
Anda tidak dapat menetapkan izin "tolak" pada resource apa pun yang dilindungi oleh IAM.
Untuk mengetahui informasi selengkapnya tentang peran dan izin, lihat Memahami peran dalam dokumentasi IAM serta Peran dan izin IAM BigQuery.
Mendapatkan informasi tentang tabel
Anda bisa mendapatkan informasi atau metadata tentang tabel dengan cara berikut:
- Menggunakan Konsol Google Cloud.
- Menggunakan perintah
bq show
alat command line bq. - Memanggil metode API
tables.get
. - Menggunakan library klien.
- Membuat kueri tampilan
INFORMATION_SCHEMA.VIEWS
.
Izin yang diperlukan
Setidaknya, untuk mendapatkan informasi tentang tabel, Anda harus diberi izin bigquery.tables.get
. Peran IAM bawaan berikut menyertakan izin bigquery.tables.get
:
bigquery.metadataViewer
bigquery.dataViewer
bigquery.dataOwner
bigquery.dataEditor
bigquery.admin
Selain itu, jika memiliki izin bigquery.datasets.create
, saat membuat set data, pengguna akan diberi akses bigquery.dataOwner
.
Dengan akses bigquery.dataOwner
, pengguna dapat mengambil metadata tabel.
Untuk mengetahui informasi selengkapnya tentang peran dan izin IAM di BigQuery, baca Kontrol akses.
Mendapatkan informasi tabel
Untuk mendapatkan informasi tentang tabel:
Konsol
Di panel navigasi, di bagian Resource, luaskan project Anda, lalu pilih set data.
Klik nama set data untuk meluaskannya. Tabel dan tampilan dalam set data akan muncul.
Klik nama tabel.
Di panel Details, klik Details untuk menampilkan deskripsi dan informasi tabel tabel.
Atau, beralihlah ke tab Schema untuk melihat definisi skema tabel.
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.
Berikan perintah
bq show
untuk menampilkan semua informasi tabel. Gunakan flag--schema
untuk hanya menampilkan informasi skema tabel. Flag--format
dapat digunakan untuk mengontrol output.Jika Anda mendapatkan informasi tentang tabel dalam project selain project default Anda, tambahkan ID project ke set data dalam format berikut:
project_id:dataset
.bq show \ --schema \ --format=prettyjson \ project_id:dataset.table
Dengan keterangan:
- project_id adalah project ID Anda.
- dataset adalah nama set data.
- table adalah nama tabel.
Contoh:
Masukkan perintah berikut untuk menampilkan semua informasi tentang
mytable
dimydataset
.mydataset
ada dalam project default Anda.bq show --format=prettyjson mydataset.mytable
Masukkan perintah berikut untuk menampilkan semua informasi tentang
mytable
dimydataset
.mydataset
ada dimyotherproject
, bukan di project default Anda.bq show --format=prettyjson myotherproject:mydataset.mytable
Masukkan perintah berikut untuk hanya menampilkan informasi skema tentang
mytable
dimydataset
.mydataset
ada dimyotherproject
, bukan di project default Anda.bq show --schema --format=prettyjson myotherproject:mydataset.mytable
API
Panggil metode tables.get
dan berikan parameter yang relevan.
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
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.
Mendapatkan informasi tabel menggunakan INFORMATION_SCHEMA
INFORMATION_SCHEMA
adalah serangkaian tampilan yang memberikan akses ke metadata
tentang set data, rutinitas, tabel, tampilan, tugas, pemesanan, dan data streaming.
Anda dapat membuat kueri tampilan berikut untuk mendapatkan informasi tabel:
- Gunakan tampilan
INFORMATION_SCHEMA.TABLES
danINFORMATION_SCHEMA.TABLE_OPTIONS
untuk mengambil metadata tentang tabel dan tampilan dalam sebuah project. - Gunakan tampilan
INFORMATION_SCHEMA.COLUMNS
danINFORMATION_SCHEMA.COLUMN_FIELD_PATHS
untuk mengambil metadata tentang kolom dalam tabel. - Gunakan tampilan
INFORMATION_SCHEMA.TABLE_STORAGE
untuk mengambil metadata tentang penggunaan penyimpanan saat ini dan historis oleh tabel.
Tampilan TABLES
dan TABLE_OPTIONS
juga berisi informasi tingkat tinggi
tentang tampilan. Untuk informasi selengkapnya, buat kueri
tampilan INFORMATION_SCHEMA.VIEWS
.
Tampilan TABLES
Saat Anda membuat kueri tampilan INFORMATION_SCHEMA.TABLES
, hasil kueri akan berisi
satu baris untuk setiap tabel atau tampilan dalam set data. Untuk informasi mendetail tentang
tampilan, buat kueri tampilan
INFORMATION_SCHEMA.VIEWS
.
Tampilan INFORMATION_SCHEMA.TABLES
memiliki skema berikut:
Nama kolom | Jenis data | Nilai |
---|---|---|
table_catalog |
STRING |
Project ID dari project yang berisi set data. |
table_schema |
STRING |
Nama set data yang berisi tabel atau tampilan tersebut. Juga disebut
sebagai datasetId . |
table_name |
STRING |
Nama tabel atau tampilan. Juga disebut sebagai
tableId . |
table_type |
STRING |
Jenis tabel; salah satu dari yang berikut:
|
is_insertable_into |
STRING |
YES atau NO bergantung pada apakah tabel
mendukung pernyataan DML INSERT
atau tidak |
is_typed |
STRING |
Nilainya selalu NO |
is_change_history_enabled |
STRING |
YES atau NO bergantung pada apakah
histori perubahan
diaktifkan |
creation_time |
TIMESTAMP |
Waktu pembuatan tabel |
base_table_catalog |
STRING |
Untuk clone tabel
dan snapshot tabel,
project tabel dasar. Hanya berlaku untuk
tabel dengan table_type yang ditetapkan ke CLONE atau
SNAPSHOT .
|
base_table_schema |
STRING |
Untuk clone tabel
dan snapshot tabel,
set data tabel dasar. Hanya berlaku untuk tabel dengan
table_type yang ditetapkan ke CLONE atau
SNAPSHOT . |
base_table_name |
STRING |
Untuk clone tabel
dan snapshot tabel,
nama tabel dasar. Hanya berlaku untuk tabel dengan
table_type yang ditetapkan ke CLONE atau
SNAPSHOT . |
snapshot_time_ms |
TIMESTAMP |
Untuk clone tabel
dan snapshot tabel,
waktu saat operasi clone
atau snapshot
dijalankan pada tabel dasar untuk membuat tabel ini. Jika
perjalanan waktu digunakan, kolom ini
berisi stempel waktu perjalanan waktu. Jika tidak, kolom
snapshot_time_ms sama dengan kolom
creation_time . Hanya berlaku untuk
tabel dengan table_type yang ditetapkan ke CLONE atau
SNAPSHOT .
|
replica_source_catalog |
STRING |
Untuk replika tampilan terwujud, project tampilan terwujud dasar. |
replica_source_schema |
STRING |
Untuk replika tampilan terwujud, set data tampilan terwujud dasar. |
replica_source_name |
STRING |
Untuk replika tampilan terwujud, nama tampilan terwujud dasar. |
replication_status |
STRING |
Untuk
replika tampilan terwujud,
status replikasi dari tampilan terwujud dasar ke replika tampilan terwujud; salah satu dari berikut:
|
replication_error |
STRING |
Jika replication_status menunjukkan masalah replikasi untuk
replika tampilan terwujud,
replication_error akan memberikan detail lebih lanjut tentang masalah tersebut. |
ddl |
STRING |
Pernyataan DDL
yang dapat digunakan untuk membuat ulang tabel, seperti
CREATE TABLE
atau CREATE VIEW |
default_collation_name |
STRING |
Nama spesifikasi kolasi default
jika ada. Jika tidak, NULL .
|
upsert_stream_apply_watermark |
TIMESTAMP |
Untuk tabel yang menggunakan pengambilan data perubahan (CDC), waktu saat modifikasi baris terakhir diterapkan. Untuk mengetahui informasi selengkapnya, lihat Memantau progres operasi upsert tabel. |
Contoh
Contoh 1:
Contoh berikut mengambil metadata tabel untuk semua tabel dalam
set data bernama mydataset
. Metadata yang
ditampilkan adalah untuk semua jenis tabel di mydataset
dalam project default Anda.
mydataset
berisi tabel berikut:
mytable1
: tabel BigQuery standarmyview1
: tampilan BigQuery
Untuk menjalankan kueri terhadap project selain project default Anda, tambahkan
project ID ke set data dalam format berikut:
`project_id`.dataset.INFORMATION_SCHEMA.view
;
misalnya, `myproject`.mydataset.INFORMATION_SCHEMA.TABLES
.
SELECT table_catalog, table_schema, table_name, table_type, is_insertable_into, creation_time, ddl FROM mydataset.INFORMATION_SCHEMA.TABLES;
Hasilnya mirip dengan berikut ini. Agar mudah dibaca, beberapa kolom dikecualikan dari hasil.
+----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+ | table_catalog | table_schema | table_name | table_type | is_insertable_into | creation_time | ddl | +----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+ | myproject | mydataset | mytable1 | BASE TABLE | YES | 2018-10-29 20:34:44 | CREATE TABLE `myproject.mydataset.mytable1` | | | | | | | | ( | | | | | | | | id INT64 | | | | | | | | ); | | myproject | mydataset | myview1 | VIEW | NO | 2018-12-29 00:19:20 | CREATE VIEW `myproject.mydataset.myview1` | | | | | | | | AS SELECT 100 as id; | +----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+
Contoh 2:
Contoh berikut mengambil metadata tabel untuk semua tabel dengan jenis CLONE
atau SNAPSHOT
dari tampilan INFORMATION_SCHEMA.TABLES
. Metadata yang ditampilkan adalah untuk tabel dalam mydataset
di project default Anda.
Untuk menjalankan kueri terhadap project selain project default Anda, tambahkan
project ID ke set data dalam format berikut:
`project_id`.dataset.INFORMATION_SCHEMA.view
;
misalnya, `myproject`.mydataset.INFORMATION_SCHEMA.TABLES
.
SELECT table_name, table_type, base_table_catalog, base_table_schema, base_table_name, snapshot_time_ms FROM mydataset.INFORMATION_SCHEMA.TABLES WHERE table_type = 'CLONE' OR table_type = 'SNAPSHOT';
Hasilnya mirip dengan berikut ini. Agar mudah dibaca, beberapa kolom dikecualikan dari hasil.
+--------------+------------+--------------------+-------------------+-----------------+---------------------+ | table_name | table_type | base_table_catalog | base_table_schema | base_table_name | snapshot_time_ms | +--------------+------------+--------------------+-------------------+-----------------+---------------------+ | items_clone | CLONE | myproject | mydataset | items | 2018-10-31 22:40:05 | | orders_bk | SNAPSHOT | myproject | mydataset | orders | 2018-11-01 08:22:39 | +--------------+------------+--------------------+-------------------+-----------------+---------------------+
Contoh 3:
Contoh berikut mengambil kolom table_name
dan ddl
dari tampilan INFORMATION_SCHEMA.TABLES
untuk tabel population_by_zip_2010
di
set data
census_bureau_usa
. Set data ini adalah bagian dari
program set data publik BigQuery.
Karena tabel yang Anda kueri berada di project lain, Anda menambahkan project ID ke set data dalam
format berikut:
`project_id`.dataset.INFORMATION_SCHEMA.view
.
Dalam contoh ini, nilainya adalah
`bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES
.
SELECT table_name, ddl FROM `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES WHERE table_name = 'population_by_zip_2010';
Hasilnya mirip dengan berikut ini:
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | table_name | ddl | +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | population_by_zip_2010 | CREATE TABLE `bigquery-public-data.census_bureau_usa.population_by_zip_2010` | | | ( | | | geo_id STRING OPTIONS(description="Geo code"), | | | zipcode STRING NOT NULL OPTIONS(description="Five digit ZIP Code Tabulation Area Census Code"), | | | population INT64 OPTIONS(description="The total count of the population for this segment."), | | | minimum_age INT64 OPTIONS(description="The minimum age in the age range. If null, this indicates the row as a total for male, female, or overall population."), | | | maximum_age INT64 OPTIONS(description="The maximum age in the age range. If null, this indicates the row as having no maximum (such as 85 and over) or the row is a total of the male, female, or overall population."), | | | gender STRING OPTIONS(description="male or female. If empty, the row is a total population summary.") | | | ) | | | OPTIONS( | | | labels=[("freebqcovid", "")] | | | ); | +------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Tampilan TABLE_OPTIONS
Saat Anda membuat kueri tabel virtual INFORMATION_SCHEMA.TABLE_OPTIONS
, hasil kueri akan berisi satu baris untuk setiap opsi, untuk setiap tabel atau tabel virtual dalam set data. Untuk mengetahui informasi mendetail tentang tabel virtual, buat kueri tampilan INFORMATION_SCHEMA.VIEWS
.
Tampilan INFORMATION_SCHEMA.TABLE_OPTIONS
memiliki skema berikut:
Nama kolom | Jenis data | Nilai |
---|---|---|
TABLE_CATALOG |
STRING |
ID project dari project yang berisi set data |
TABLE_SCHEMA |
STRING |
Nama set data yang berisi tabel atau tabel virtual juga disebut sebagai datasetId |
TABLE_NAME |
STRING |
Nama tabel atau tabel virtual juga disebut sebagai tableId |
OPTION_NAME |
STRING |
Salah satu nilai nama dalam tabel opsi |
OPTION_TYPE |
STRING |
Salah satu nilai jenis data dalam tabel opsi |
OPTION_VALUE |
STRING |
Salah satu opsi nilai dalam tabel opsi |
Tabel Opsi
|
|
|
---|---|---|
|
|
Deskripsi tabel |
|
|
Apakah muat ulang otomatis diaktifkan untuk tampilan terwujud |
|
|
Waktu saat tabel ini berakhir |
|
|
Nama deskriptif tabel |
|
|
Nama kunci Cloud KMS yang digunakan untuk mengenkripsi tabel |
|
|
Array STRUCT yang merepresentasikan label pada
tabel |
|
|
Masa aktif default, dalam hari, untuk semua partisi dalam tabel berpartisi |
|
|
Seberapa sering tampilan terwujud dimuat ulang |
|
|
Apakah kueri pada tabel memerlukan filter partisi |
|
|
Tag yang dilampirkan ke tabel dalam sintaksis <key, value> dengan namespace. Untuk mengetahui informasi selengkapnya, lihat Tag dan akses bersyarat. |
Untuk tabel eksternal, opsi berikut dapat dipilih:
Opsi | |
---|---|
allow_jagged_rows |
Jika Berlaku untuk data CSV. |
allow_quoted_newlines |
Jika Berlaku untuk data CSV. |
bigtable_options |
Hanya diperlukan saat membuat tabel eksternal Bigtable. Menentukan skema tabel eksternal Bigtable dalam format JSON. Untuk daftar opsi definisi tabel Bigtable, lihat |
column_name_character_map |
Menentukan cakupan karakter nama kolom yang didukung dan perilaku penanganan karakter yang tidak didukung. Setelan defaultnya adalah Nilai yang didukung meliputi:
Berlaku untuk data CSV dan Parquet. |
compression |
Jenis kompresi sumber data. Nilai yang didukung meliputi: Berlaku untuk data CSV dan JSON. |
decimal_target_types |
Menentukan cara mengonversi jenis Contoh: |
description |
Deskripsi tabel ini. |
enable_list_inference |
Jika Berlaku untuk data Parquet. |
enable_logical_types |
Jika Berlaku untuk data Avro. |
encoding |
Encoding karakter data. Nilai yang didukung mencakup: Berlaku untuk data CSV. |
enum_as_string |
Jika Berlaku untuk data Parquet. |
expiration_timestamp |
Waktu habis masa berlaku tabel ini Jika tidak ditentukan, masa berlaku tabel tidak akan habis. Contoh: |
field_delimiter |
Pemisah untuk kolom dalam file CSV. Berlaku untuk data CSV. |
format |
Format data eksternal.
Nilai yang didukung untuk
Nilai yang didukung untuk
Nilai |
hive_partition_uri_prefix |
Imbuhan umum untuk semua URI sumber sebelum encoding kunci partisi dimulai. Hanya berlaku untuk tabel eksternal yang dipartisi hive. Berlaku untuk data Avro, CSV, JSON, Parquet, dan ORC. Contoh: |
file_set_spec_type |
Menentukan cara menafsirkan URI sumber untuk tugas pemuatan dan tabel eksternal. Nilai yang didukung meliputi:
Misalnya, jika Anda memiliki URI sumber |
ignore_unknown_values |
Jika Berlaku untuk data CSV dan JSON. |
json_extension |
Untuk data JSON, menunjukkan format pertukaran JSON tertentu. Jika tidak ditentukan, BigQuery akan membaca data sebagai data JSON generik. Nilai yang didukung meliputi: |
max_bad_records |
Jumlah maksimum catatan buruk yang diabaikan saat membaca data. Berlaku untuk: data CSV, JSON, dan Google Spreadsheet. |
max_staleness |
Berlaku untuk tabel BigLake dan tabel objek. Menentukan apakah metadata yang di-cache digunakan oleh operasi terhadap tabel, dan seberapa baru metadata yang di-cache agar operasi dapat menggunakannya. Untuk menonaktifkan caching metadata, tentukan 0. Ini adalah setelan defaultnya. Untuk mengaktifkan caching metadata, isi nilai literal interval dari 30 menit atau hingga 7 hari. Misalnya, tentukan |
null_marker |
String yang merepresentasikan nilai Berlaku untuk data CSV. |
object_metadata |
Hanya diperlukan saat membuat tabel objek. Tetapkan nilai opsi ini ke |
preserve_ascii_control_characters |
Jika Berlaku untuk data CSV. |
projection_fields |
Daftar properti entity yang akan dimuat. Berlaku untuk data Datastore. |
quote |
String yang digunakan untuk mengutip bagian data dalam file CSV. Jika data Anda berisi karakter newline yang dikutip, tetapkan properti Berlaku untuk data CSV. |
reference_file_schema_uri |
File referensi yang disediakan pengguna dengan skema tabel. Berlaku untuk data Parquet/ORC/AVRO. Contoh: |
require_hive_partition_filter |
Jika Berlaku untuk data Avro, CSV, JSON, Parquet, dan ORC. |
sheet_range |
Rentang spreadsheet Google Spreadsheet yang akan digunakan untuk membuat kueri. Berlaku untuk data Google Spreadsheet. Contoh: |
skip_leading_rows |
Jumlah baris di bagian atas file yang dilewati saat membaca data. Berlaku untuk data CSV dan Google Spreadsheet. |
uris |
Untuk tabel eksternal, termasuk tabel objek, yang bukan tabel Bigtable:
Array URI yang sepenuhnya memenuhi syarat untuk lokasi data eksternal.
Setiap URI dapat berisi satu karakter pengganti tanda bintang ( Contoh berikut menunjukkan nilai
Untuk tabel Bigtable:
URI yang mengidentifikasi tabel Bigtable untuk digunakan sebagai sumber data. Anda hanya dapat menentukan satu URI Bigtable. Contoh: Untuk mengetahui informasi selengkapnya tentang cara membuat URI Bigtable, baca Mengambil URI Bigtable. |
Contoh
Contoh 1:
Contoh berikut mengambil waktu habis masa berlaku tabel default untuk semua tabel di mydataset
dalam project default Anda (myproject
) dengan membuat kueri tabel virtual INFORMATION_SCHEMA.TABLE_OPTIONS
.
Untuk menjalankan kueri terhadap project selain project default Anda, tambahkan project ID ke set data dalam format berikut: `project_id`.dataset.INFORMATION_SCHEMA.view
; misalnya, `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
.
SELECT * FROM mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS WHERE option_name = 'expiration_timestamp';
Hasilnya mirip dengan berikut ini:
+----------------+---------------+------------+----------------------+-------------+--------------------------------------+ | table_catalog | table_schema | table_name | option_name | option_type | option_value | +----------------+---------------+------------+----------------------+-------------+--------------------------------------+ | myproject | mydataset | mytable1 | expiration_timestamp | TIMESTAMP | TIMESTAMP "2020-01-16T21:12:28.000Z" | | myproject | mydataset | mytable2 | expiration_timestamp | TIMESTAMP | TIMESTAMP "2021-01-01T21:12:28.000Z" | +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
Contoh 2:
Contoh berikut mengambil metadata tentang semua tabel di mydataset
yang berisi data pengujian. Kueri menggunakan nilai dalam opsi description
untuk menemukan tabel yang berisi "test" di mana pun dalam deskripsi. mydataset
ada dalam project default Anda — myproject
.
Untuk menjalankan kueri terhadap project selain project default Anda, tambahkan project ID ke set data dalam format berikut: `project_id`.dataset.INFORMATION_SCHEMA.view
; misalnya, `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
.
SELECT * FROM mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS WHERE option_name = 'description' AND option_value LIKE '%test%';
Hasilnya mirip dengan berikut ini:
+----------------+---------------+------------+-------------+-------------+--------------+ | table_catalog | table_schema | table_name | option_name | option_type | option_value | +----------------+---------------+------------+-------------+-------------+--------------+ | myproject | mydataset | mytable1 | description | STRING | "test data" | | myproject | mydataset | mytable2 | description | STRING | "test data" | +----------------+---------------+------------+-------------+-------------+--------------+
Tampilan COLUMNS
Saat Anda membuat kueri tampilan INFORMATION_SCHEMA.COLUMNS
, hasil kueri akan berisi
satu baris untuk setiap kolom dalam tabel.
Tampilan INFORMATION_SCHEMA.COLUMNS
memiliki skema berikut
Nama kolom | Jenis data | Nilai |
---|---|---|
TABLE_CATALOG |
STRING |
Project ID dari project yang berisi set data |
TABLE_SCHEMA |
STRING |
Nama set data yang berisi tabel juga disebut sebagai datasetId |
TABLE_NAME |
STRING |
Nama tabel atau tabel virtual juga disebut sebagai tableId |
COLUMN_NAME |
STRING |
Nama kolom |
ORDINAL_POSITION |
INT64 |
Offset berindeks 1 pada kolom dalam tabel; jika kolomnya berupa kolom
semu seperti _PARTITIONTIME atau _PARTITIONDATE, nilainya adalah
NULL |
IS_NULLABLE |
STRING |
YES atau NO bergantung pada apakah mode kolom
memungkinkan nilai NULL atau tidak |
DATA_TYPE |
STRING |
Jenis data GoogleSQL pada kolom |
IS_GENERATED |
STRING |
Nilainya selalu NEVER |
GENERATION_EXPRESSION |
STRING |
Nilainya selalu NULL |
IS_STORED |
STRING |
Nilainya selalu NULL |
IS_HIDDEN |
STRING |
YES atau NO bergantung pada apakah kolom merupakan
kolom semu seperti _PARTITIONTIME atau _PARTITIONDATE |
IS_UPDATABLE |
STRING |
Nilainya selalu NULL |
IS_SYSTEM_DEFINED |
STRING |
YES atau NO bergantung pada apakah kolom merupakan
kolom semu seperti _PARTITIONTIME atau _PARTITIONDATE |
IS_PARTITIONING_COLUMN |
STRING |
YES atau NO bergantung pada apakah kolom tersebut
merupakan kolom partisi |
CLUSTERING_ORDINAL_POSITION |
INT64 |
Offset berindeks 1 kolom dalam kolom
pengelompokan tabel; nilainya adalah NULL jika tabel tersebut bukan
tabel yang dikelompokkan |
COLLATION_NAME |
STRING |
Nama spesifikasi kolasi
jika ada; jika tidak, NULL Jika STRING atau ARRAY<STRING>
diteruskan, spesifikasi kolasi akan ditampilkan jika ada; jika tidak,
NULL akan ditampilkan
|
COLUMN_DEFAULT |
STRING |
Nilai default kolom
jika ada; jika tidak, nilainya adalah NULL
|
ROUNDING_MODE |
STRING |
Mode pembulatan yang digunakan untuk nilai yang ditulis ke kolom jika
jenisnya adalah NUMERIC atau BIGNUMERIC berparameter;
jika tidak, nilainya adalah NULL
|
Contoh
Contoh berikut mengambil metadata dari tampilan INFORMATION_SCHEMA.COLUMNS
untuk tabel population_by_zip_2010
dalam
set data
census_bureau_usa
. Set data ini adalah bagian dari
program set data publik BigQuery.
Tabel yang Anda buat kuerinya berada di project lain, yakni project
bigquery-public-data
, maka tambahkan ID project ke set data dalam format
berikut:
`project_id`.dataset.INFORMATION_SCHEMA.view
;
untuk contoh,
`bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES
.
Kolom berikut dikecualikan dari hasil kueri karena saat ini dicadangkan untuk penggunaan pada masa mendatang:
IS_GENERATED
GENERATION_EXPRESSION
IS_STORED
IS_UPDATABLE
SELECT * EXCEPT(is_generated, generation_expression, is_stored, is_updatable) FROM `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'population_by_zip_2010';
Hasilnya mirip dengan berikut ini. Agar mudah dibaca, beberapa kolom dikecualikan dari hasil.
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+ | table_name | column_name | ordinal_position | is_nullable | data_type | is_hidden | is_system_defined | is_partitioning_column | clustering_ordinal_position | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+ | population_by_zip_2010 | zipcode | 1 | NO | STRING | NO | NO | NO | NULL | | population_by_zip_2010 | geo_id | 2 | YES | STRING | NO | NO | NO | NULL | | population_by_zip_2010 | minimum_age | 3 | YES | INT64 | NO | NO | NO | NULL | | population_by_zip_2010 | maximum_age | 4 | YES | INT64 | NO | NO | NO | NULL | | population_by_zip_2010 | gender | 5 | YES | STRING | NO | NO | NO | NULL | | population_by_zip_2010 | population | 6 | YES | INT64 | NO | NO | NO | NULL | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+
Tampilan COLUMN_FIELD_PATHS
Saat Anda membuat kueri tampilan INFORMATION_SCHEMA.COLUMN_FIELD_PATHS
, hasil kueri akan berisi satu baris untuk setiap kolom yang bertingkat dalam kolom RECORD
(atau STRUCT
).
Tabel virtual INFORMATION_SCHEMA.COLUMN_FIELD_PATHS
memiliki skema berikut:
Nama kolom | Jenis data | Nilai |
---|---|---|
TABLE_CATALOG |
STRING |
Project ID dari project yang berisi set data |
TABLE_SCHEMA |
STRING |
Nama set data yang berisi tabel juga disebut sebagai datasetId |
TABLE_NAME |
STRING |
Nama tabel atau tabel virtual juga disebut sebagai tableId |
COLUMN_NAME |
STRING |
Nama kolom |
FIELD_PATH |
STRING |
Jalur ke kolom yang bertingkat dalam kolom `RECORD` atau `STRUCT` |
DATA_TYPE |
STRING |
Jenis data GoogleSQL pada kolom |
DESCRIPTION |
STRING |
Deskripsi kolom |
COLLATION_NAME |
STRING |
Nama spesifikasi kolasi jika ada; jika tidak ada, NULL Jika kolom STRING , ARRAY<STRING> , atau STRING dalam STRUCT diteruskan, spesifikasi kolasi akan ditampilkan jika ada; jika tidak ada, NULL akan ditampilkan
|
ROUNDING_MODE |
STRING |
Mode pembulatan yang digunakan saat menerapkan presisi dan skala ke nilai NUMERIC atau BIGNUMERIC yang berparameter; jika tidak, nilainya adalah NULL
|
Contoh
Contoh berikut mengambil metadata dari
tampilan INFORMATION_SCHEMA.COLUMN_FIELD_PATHS
untuk tabel commits
dalam
set data github_repos
.
Set data ini adalah bagian dari program set data publik BigQuery.
Karena tabel yang Anda buat kuerinya berada di project lain, yakni project bigquery-public-data
, Anda menambahkan project ID ke set data dalam format berikut: `project_id`.dataset.INFORMATION_SCHEMA.view
; untuk contoh, `bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS
.
Tabel commits
berisi kolom bertingkat serta kolom bertingkat dan berulang berikut:
author
: kolomRECORD
bertingkatcommitter
: kolomRECORD
bertingkattrailer
: kolomRECORD
bertingkat dan berulangdifference
: kolomRECORD
bertingkat dan berulang
Untuk melihat metadata tentang kolom author
dan difference
, jalankan kueri berikut.
SELECT * FROM `bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS WHERE table_name = 'commits' AND (column_name = 'author' OR column_name = 'difference');
Hasilnya mirip dengan berikut ini. Agar mudah dibaca, beberapa kolom dikecualikan dari hasil.
+------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+ | table_name | column_name | field_path | data_type | description | +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+ | commits | author | author | STRUCT<name STRING, email STRING, time_sec INT64, tz_offset INT64, date TIMESTAMP> | NULL | | commits | author | author.name | STRING | NULL | | commits | author | author.email | STRING | NULL | | commits | author | author.time_sec | INT64 | NULL | | commits | author | author.tz_offset | INT64 | NULL | | commits | author | author.date | TIMESTAMP | NULL | | commits | difference | difference | ARRAY<STRUCT<old_mode INT64, new_mode INT64, old_path STRING, new_path STRING, old_sha1 STRING, new_sha1 STRING, old_repo STRING, new_repo STRING>> | NULL | | commits | difference | difference.old_mode | INT64 | NULL | | commits | difference | difference.new_mode | INT64 | NULL | | commits | difference | difference.old_path | STRING | NULL | | commits | difference | difference.new_path | STRING | NULL | | commits | difference | difference.old_sha1 | STRING | NULL | | commits | difference | difference.new_sha1 | STRING | NULL | | commits | difference | difference.old_repo | STRING | NULL | | commits | difference | difference.new_repo | STRING | NULL | +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+
Tampilan TABLE_STORAGE
Tampilan TABLE_STORAGE
dan TABLE_STORAGE_BY_ORGANIZATION
memiliki skema
berikut:
Nama kolom | Jenis data | Nilai |
---|---|---|
PROJECT_ID |
STRING |
ID project dari project yang berisi set data. |
PROJECT_NUMBER |
INT64 |
Nomor project dari project yang berisi set data. |
TABLE_CATALOG |
STRING |
ID project dari project yang berisi set data. |
TABLE_SCHEMA |
STRING |
Nama set data yang berisi tabel atau tampilan terwujud, juga disebut sebagai datasetId . |
TABLE_NAME |
STRING |
Nama tabel atau tampilan terwujud, juga disebut sebagai tableId . |
CREATION_TIME |
TIMESTAMP |
Waktu pembuatan tabel. |
TOTAL_ROWS |
INT64 |
Jumlah total baris dalam tabel atau tampilan terwujud. |
TOTAL_PARTITIONS |
INT64 |
Jumlah partisi yang ada dalam tabel atau tampilan terwujud. Tabel yang tidak dipartisi menampilkan 0. |
TOTAL_LOGICAL_BYTES |
INT64 |
Jumlah total byte logis (tidak terkompresi) dalam tabel atau tampilan terwujud. |
ACTIVE_LOGICAL_BYTES |
INT64 |
Jumlah byte logis (tidak terkompresi) dengan usia kurang dari 90 hari. |
LONG_TERM_LOGICAL_BYTES |
INT64 |
Jumlah byte logis (tidak terkompresi) yang sudah lebih dari 90 hari. |
CURRENT_PHYSICAL_BYTES |
INT64 |
Jumlah total byte fisik untuk penyimpanan tabel saat ini di semua partisi. |
TOTAL_PHYSICAL_BYTES |
INT64 |
Jumlah total byte fisik (terkompresi) yang digunakan untuk penyimpanan, termasuk byte aktif, jangka panjang, dan perjalanan waktu (data yang dihapus atau diubah). Byte fail-safe (data yang dihapus atau diubah yang disimpan setelah periode perjalanan waktu) tidak disertakan. |
ACTIVE_PHYSICAL_BYTES |
INT64 |
Jumlah byte fisik (terkompresi) yang lebih muda dari 90 hari, termasuk byte perjalanan waktu (data yang dihapus atau diubah). |
LONG_TERM_PHYSICAL_BYTES |
INT64 |
Jumlah byte fisik (terkompresi) yang sudah lebih dari 90 hari. |
TIME_TRAVEL_PHYSICAL_BYTES |
INT64 |
Jumlah byte fisik (terkompresi) yang digunakan oleh penyimpanan perjalanan waktu (data yang dihapus atau diubah). |
STORAGE_LAST_MODIFIED_TIME |
TIMESTAMP |
Waktu terakhir kali data ditulis ke tabel. |
DELETED |
BOOLEAN |
Menunjukkan apakah tabel dihapus atau tidak. |
TABLE_TYPE |
STRING |
Jenis tabel. Misalnya, EXTERNAL atau
BASE TABLE .
|
FAIL_SAFE_PHYSICAL_BYTES |
INT64 |
Jumlah byte fisik (terkompresi) yang digunakan oleh penyimpanan gagal aman (data yang dihapus atau diubah). |
LAST_METADATA_INDEX_REFRESH_TIME |
TIMESTAMP |
Waktu pembaruan indeks metadata terakhir dari tabel. |
Contoh
Contoh 1:
Contoh berikut menunjukkan total byte logis yang ditagih untuk project saat ini.
SELECT SUM(total_logical_bytes) AS total_logical_bytes FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE;
Hasilnya mirip dengan berikut ini:
+---------------------+ | total_logical_bytes | +---------------------+ | 971329178274633 | +---------------------+
Contoh 2:
Contoh berikut menunjukkan cara memperkirakan perbedaan harga per set data antara model penagihan logis dan fisik selama 30 hari ke depan. Contoh ini mengasumsikan bahwa penggunaan penyimpanan mendatang bersifat konstan selama 30 hari ke depan sejak kueri dijalankan. Perlu diperhatikan bahwa perkiraan dibatasi untuk tabel dasar. Perkiraan tidak mencakup semua jenis tabel lainnya dalam set data.
Harga yang digunakan dalam variabel harga untuk kueri ini adalah untuk region us-central1
. Jika Anda ingin menjalankan kueri ini untuk wilayah lain, perbarui variabel harga dengan tepat. Lihat Harga penyimpanan untuk mengetahui informasi harga.
Buka halaman BigQuery di Konsol Google Cloud.
Masukkan kueri GoogleSQL berikut di kotak Query editor.
INFORMATION_SCHEMA
memerlukan sintaksis GoogleSQL. GoogleSQL adalah sintaksis default di Konsol Google Cloud.DECLARE active_logical_gib_price FLOAT64 DEFAULT 0.02; DECLARE long_term_logical_gib_price FLOAT64 DEFAULT 0.01; DECLARE active_physical_gib_price FLOAT64 DEFAULT 0.04; DECLARE long_term_physical_gib_price FLOAT64 DEFAULT 0.02; WITH storage_sizes AS ( SELECT table_schema AS dataset_name, -- Logical SUM(IF(deleted=false, active_logical_bytes, 0)) / power(1024, 3) AS active_logical_gib, SUM(IF(deleted=false, long_term_logical_bytes, 0)) / power(1024, 3) AS long_term_logical_gib, -- Physical SUM(active_physical_bytes) / power(1024, 3) AS active_physical_gib, SUM(active_physical_bytes - time_travel_physical_bytes) / power(1024, 3) AS active_no_tt_physical_gib, SUM(long_term_physical_bytes) / power(1024, 3) AS long_term_physical_gib, -- Restorable previously deleted physical SUM(time_travel_physical_bytes) / power(1024, 3) AS time_travel_physical_gib, SUM(fail_safe_physical_bytes) / power(1024, 3) AS fail_safe_physical_gib, FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_PROJECT WHERE total_physical_bytes + fail_safe_physical_bytes > 0 -- Base the forecast on base tables only for highest precision results AND table_type = 'BASE TABLE' GROUP BY 1 ) SELECT dataset_name, -- Logical ROUND(active_logical_gib, 2) AS active_logical_gib, ROUND(long_term_logical_gib, 2) AS long_term_logical_gib, -- Physical ROUND(active_physical_gib, 2) AS active_physical_gib, ROUND(long_term_physical_gib, 2) AS long_term_physical_gib, ROUND(time_travel_physical_gib, 2) AS time_travel_physical_gib, ROUND(fail_safe_physical_gib, 2) AS fail_safe_physical_gib, -- Compression ratio ROUND(SAFE_DIVIDE(active_logical_gib, active_no_tt_physical_gib), 2) AS active_compression_ratio, ROUND(SAFE_DIVIDE(long_term_logical_gib, long_term_physical_gib), 2) AS long_term_compression_ratio, -- Forecast costs logical ROUND(active_logical_gib * active_logical_gib_price, 2) AS forecast_active_logical_cost, ROUND(long_term_logical_gib * long_term_logical_gib_price, 2) AS forecast_long_term_logical_cost, -- Forecast costs physical ROUND((active_no_tt_physical_gib + time_travel_physical_gib + fail_safe_physical_gib) * active_physical_gib_price, 2) AS forecast_active_physical_cost, ROUND(long_term_physical_gib * long_term_physical_gib_price, 2) AS forecast_long_term_physical_cost, -- Forecast costs total ROUND(((active_logical_gib * active_logical_gib_price) + (long_term_logical_gib * long_term_logical_gib_price)) - (((active_no_tt_physical_gib + time_travel_physical_gib + fail_safe_physical_gib) * active_physical_gib_price) + (long_term_physical_gib * long_term_physical_gib_price)), 2) AS forecast_total_cost_difference FROM storage_sizes ORDER BY (forecast_active_logical_cost + forecast_active_physical_cost) DESC;
Klik Run.
Hasilnya mirip dengan berikut ini:
+--------------+--------------------+-----------------------+---------------------+------------------------+--------------------------+-----------------------------+------------------------------+----------------------------------+-------------------------------+----------------------------------+--------------------------------+ | dataset_name | active_logical_gib | long_term_logical_gib | active_physical_gib | long_term_physical_gib | active_compression_ratio | long_term_compression_ratio | forecast_active_logical_cost | forecaset_long_term_logical_cost | forecast_active_physical_cost | forecast_long_term_physical_cost | forecast_total_cost_difference | +--------------+--------------------+-----------------------+---------------------+------------------------+--------------------------+-----------------------------+------------------------------+----------------------------------+-------------------------------+----------------------------------+--------------------------------+ | dataset1 | 10.0 | 10.0 | 1.0 | 1.0 | 10.0 | 10.0 | 0.2 | 0.1 | 0.04 | 0.02 | 0.24 |
Membuat daftar tabel dalam set data
Anda dapat membuat daftar tabel dalam set data dengan cara berikut:
- Menggunakan Konsol Google Cloud.
- Menggunakan perintah
bq ls
alat command line bq. - Memanggil metode API
tables.list
. - Menggunakan library klien.
Izin yang diperlukan
Setidaknya, untuk membuat daftar tabel dalam set data, Anda harus diberi izin bigquery.tables.list
. Peran IAM yang telah ditetapkan berikut menyertakan izin bigquery.tables.list
:
bigquery.user
bigquery.metadataViewer
bigquery.dataViewer
bigquery.dataEditor
bigquery.dataOwner
bigquery.admin
Untuk mengetahui informasi selengkapnya tentang peran dan izin IAM di BigQuery, baca Kontrol akses.
Membuat daftar tabel
Untuk membuat daftar tabel dalam set data:
Konsol
Di Konsol Google Cloud, pada panel navigasi, klik set data Anda untuk meluaskannya. Ini akan menampilkan tabel dan tampilan dalam set data.
Scroll melalui daftar untuk melihat tabel di set data. Tabel dan tampilan diidentifikasi dengan ikon yang berbeda.
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.
Berikan perintah
bq ls
. Flag--format
dapat digunakan untuk mengontrol output. Jika Anda mencantumkan tabel di project selain project default Anda, tambahkan ID project ke set data dalam format berikut:project_id:dataset
.Flag tambahan mencakup:
--max_results
atau-n
: Bilangan bulat yang menunjukkan jumlah hasil maksimum. Nilai defaultnya adalah50
.
bq ls \ --format=pretty \ --max_results integer \ project_id:dataset
Dengan keterangan:
- integer adalah bilangan bulat yang mewakili jumlah tabel yang akan dicantumkan.
- project_id adalah ID project Anda.
- dataset adalah nama set data.
Saat Anda menjalankan perintah, kolom
Type
akan menampilkanTABLE
atauVIEW
. Contoh:+-------------------------+-------+----------------------+-------------------+ | tableId | Type | Labels | Time Partitioning | +-------------------------+-------+----------------------+-------------------+ | mytable | TABLE | department:shipping | | | myview | VIEW | | | +-------------------------+-------+----------------------+-------------------+
Contoh:
Masukkan perintah berikut untuk mencantumkan tabel dalam set data
mydataset
di project default Anda.bq ls --format=pretty mydataset
Masukkan perintah berikut untuk menampilkan lebih dari output default 50 tabel dari
mydataset
.mydataset
ada dalam project default Anda.bq ls --format=pretty --max_results 60 mydataset
Masukkan perintah berikut untuk mencantumkan tabel dalam set data
mydataset
dimyotherproject
.bq ls --format=pretty myotherproject:mydataset
API
Untuk mencantumkan tabel menggunakan API, panggil metode
tables.list
.
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.
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.
Keamanan tabel
Untuk mengontrol akses ke tabel di BigQuery, lihat Pengantar kontrol akses tabel.
Langkah selanjutnya
- Untuk informasi selengkapnya tentang set data, lihat Pengantar set data.
- Untuk informasi selengkapnya tentang menangani data tabel, lihat Mengelola data tabel.
- Untuk mengetahui informasi selengkapnya tentang cara menentukan skema tabel, lihat Menentukan skema.
- Untuk mengetahui informasi selengkapnya tentang cara mengubah skema tabel, lihat Mengubah skema tabel.
- Untuk informasi selengkapnya tentang cara mengelola tabel, lihat Mengelola tabel.
- Untuk melihat ringkasan
INFORMATION_SCHEMA
, buka Pengantar BigQueryINFORMATION_SCHEMA
.
Coba sendiri
Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa BigQuery dalam skenario dunia nyata. Pelanggan baru mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
Coba BigQuery gratis