Tabel Virtual TABLE_OPTIONS

Tabel virtual INFORMATION_SCHEMA.TABLE_OPTIONS berisi satu baris untuk setiap opsi, untuk setiap tabel atau tabel virtual dalam set data. Tabel virtual TABLES dan TABLE_OPTIONS juga berisi informasi umum tentang tabel virtual. Untuk mengetahui informasi selengkapnya, buat kueri tabel virtual INFORMATION_SCHEMA.VIEWS.

Izin yang diperlukan

Untuk membuat kueri tabel virtual INFORMATION_SCHEMA.TABLE_OPTIONS, Anda memerlukan izin Identity and Access Management (IAM) berikut:

  • bigquery.tables.get
  • bigquery.tables.list
  • bigquery.routines.get
  • bigquery.routines.list

Setiap peran IAM yang telah ditetapkan berikut mencakup izin sebelumnya:

  • roles/bigquery.admin
  • roles/bigquery.dataViewer
  • roles/bigquery.metadataViewer

Untuk mengetahui informasi selengkapnya tentang izin BigQuery, lihat Kontrol akses dengan IAM.

Skema

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 tabel virtual INFORMATION_SCHEMA.VIEWS.

Tabel virtual 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
OPTION_NAME OPTION_TYPE OPTION_VALUE
partition_expiration_days FLOAT64 Masa aktif default, dalam hari, untuk semua partisi dalam tabel berpartisi
expiration_timestamp TIMESTAMP Waktu saat tabel ini berakhir
kms_key_name STRING Nama kunci Cloud KMS yang digunakan untuk mengenkripsi tabel
friendly_name STRING Nama deskriptif tabel
description STRING Deskripsi tabel
labels ARRAY<STRUCT<STRING, STRING>> Array STRUCT yang merepresentasikan label pada tabel
require_partition_filter BOOL Apakah kueri pada tabel memerlukan filter partisi
enable_refresh BOOL Apakah muat ulang otomatis diaktifkan untuk tampilan terwujud
refresh_interval_minutes FLOAT64 Seberapa sering tampilan terwujud dimuat ulang

Untuk tabel eksternal, opsi berikut dapat dipilih:

Opsi
allow_jagged_rows

BOOL

Jika true, izinkan baris yang tidak memiliki kolom opsional di belakangnya.

Berlaku untuk data CSV.

allow_quoted_newlines

BOOL

Jika true, izinkan bagian data yang dikutip yang berisi karakter newline dalam file.

Berlaku untuk data CSV.

bigtable_options

STRING

Hanya diperlukan saat membuat tabel eksternal Bigtable.

Menentukan skema tabel eksternal Bigtable dalam format JSON.

Untuk daftar opsi definisi tabel Bigtable, lihat BigtableOptions dalam referensi REST API.

compression

STRING

Jenis kompresi sumber data. Nilai yang didukung meliputi: GZIP. Jika tidak ditentukan, sumber data tidak akan dikompresi.

Berlaku untuk data CSV dan JSON.

decimal_target_types

ARRAY<STRING>

Menentukan cara mengonversi jenis Decimal. Setara dengan ExternalDataConfiguration.decimal_target_types

Contoh: ["NUMERIC", "BIGNUMERIC"].

description

STRING

Deskripsi tabel ini.

enable_list_inference

BOOL

Jika true, gunakan inferensi skema khusus untuk jenis logika Parquet LIST.

Berlaku untuk data Parquet.

enable_logical_types

BOOL

Jika true, konversikan jenis logika Avro ke dalam jenis SQL yang sesuai. Untuk mengetahui informasi selengkapnya, lihat Jenis logika.

Berlaku untuk data Avro.

encoding

STRING

Encoding karakter data. Nilai yang didukung mencakup: UTF8 (atau UTF-8), ISO_8859_1 (atau ISO-8859-1).

Berlaku untuk data CSV.

enum_as_string

BOOL

Jika true, simpulkan jenis logis Parquet ENUM sebagai STRING, bukan BYTES secara default.

Berlaku untuk data Parquet.

expiration_timestamp

TIMESTAMP

Waktu habis masa berlaku tabel ini Jika tidak ditentukan, masa berlaku tabel tidak akan habis.

Contoh: "2025-01-01 00:00:00 UTC".

field_delimiter

STRING

Pemisah untuk kolom dalam file CSV.

Berlaku untuk data CSV.

format

STRING

Format data eksternal. Nilai yang didukung untuk CREATE EXTERNAL TABLE mencakup: AVRO, CLOUD_BIGTABLE, CSV, DATASTORE_BACKUP, DELTA_LAKE (pratinjau), GOOGLE_SHEETS, NEWLINE_DELIMITED_JSON (atau JSON), ORC, PARQUET.

Nilai yang didukung untuk LOAD DATA mencakup: AVRO, CSV, DELTA_LAKE (pratinjau) NEWLINE_DELIMITED_JSON (atau JSON), ORC, PARQUET.

Nilai JSON setara dengan NEWLINE_DELIMITED_JSON.

hive_partition_uri_prefix

STRING

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: "gs://bucket/path".

file_set_spec_type

STRING

Menentukan cara menafsirkan URI sumber untuk tugas pemuatan dan tabel eksternal. Dalam pratinjau.

Nilai yang didukung meliputi:

  • FILE_SYSTEM_MATCH. Memperluas URI sumber dengan mencantumkan file dari penyimpanan objek. Ini adalah perilaku default jika FileSetSpecType tidak ditetapkan.
  • NEW_LINE_DELIMITED_MANIFEST. Menunjukkan bahwa URI yang disediakan adalah file manifes yang dibatasi newline, dengan satu URI per baris. URI karakter pengganti tidak didukung dalam file manifes.

Misalnya, jika Anda memiliki URI sumber "gs://bucket/path/file" dan file_set_spec_type adalah FILE_SYSTEM_MATCH, file tersebut akan langsung digunakan sebagai file data. Jika file_set_spec_type adalah NEW_LINE_DELIMITED_MANIFEST, setiap baris dalam file akan ditafsirkan sebagai URI yang mengarah ke file data.

ignore_unknown_values

BOOL

Jika true, abaikan nilai tambahan yang tidak direpresentasikan dalam skema tabel, tanpa menampilkan error.

Berlaku untuk data CSV dan JSON.

json_extension

STRING

Untuk data JSON, menunjukkan format pertukaran JSON tertentu. Jika tidak ditentukan, BigQuery akan membaca data sebagai data JSON generik.

Nilai yang didukung meliputi:
GEOJSON. Data GeoJSON yang dibatasi newline. Untuk mengetahui informasi selengkapnya, lihat Membuat tabel eksternal dari file GeoJSON yang dibatasi newline.

max_bad_records

INT64

Jumlah maksimum catatan buruk yang diabaikan saat membaca data.

Berlaku untuk: data CSV, JSON, dan Google Spreadsheet.

max_staleness

INTERVAL

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 INTERVAL 4 HOUR untuk interval penghentian 4 jam. Dengan nilai ini, operasi terhadap tabel akan menggunakan metadata yang di-cache jika telah diperbarui dalam 4 jam terakhir. Jika metadata yang di-cache lebih lama dari itu, operasi akan kembali untuk mengambil metadata dari Cloud Storage.

metadata_cache_mode

STRING

Berlaku untuk tabel BigLake dan tabel objek.

Menentukan apakah cache metadata untuk tabel dimuat ulang secara otomatis atau manual.

Tetapkan ke AUTOMATIC agar cache metadata di-refresh pada interval yang ditentukan sistem, biasanya antara 30 hingga 60 menit.

Tetapkan ke MANUAL jika Anda ingin memuat ulang cache metadata pada jadwal yang Anda tentukan. Dalam hal ini, Anda dapat memanggil prosedur sistem BQ.REFRESH_EXTERNAL_METADATA_CACHE untuk memuat ulang cache.

Anda harus menetapkan metadata_cache_mode jika max_staleness ditetapkan ke nilai yang lebih besar dari 0.

null_marker

STRING

String yang merepresentasikan nilai NULL dalam file CSV.

Berlaku untuk data CSV.

object_metadata

STRING

Hanya diperlukan saat membuat tabel objek.

Tetapkan nilai opsi ini ke SIMPLE saat membuat tabel objek.

preserve_ascii_control_characters

BOOL

Jika true, karakter kontrol ASCII tersemat yang merupakan 32 karakter pertama dalam tabel ASCII, mulai dari '\x00' hingga '\x1F', akan dipertahankan.

Berlaku untuk data CSV.

projection_fields

STRING

Daftar properti entity yang akan dimuat.

Berlaku untuk data Datastore.

quote

STRING

String yang digunakan untuk mengutip bagian data dalam file CSV. Jika data Anda berisi karakter newline yang dikutip, tetapkan properti allow_quoted_newlines ke true.

Berlaku untuk data CSV.

reference_file_schema_uri

STRING

File referensi yang disediakan pengguna dengan skema tabel.

Berlaku untuk data Parquet/ORC/AVRO.

Contoh: "gs://bucket/path/reference_schema_file.parquet".

require_hive_partition_filter

BOOL

Jika true, semua kueri atas tabel ini memerlukan filter partisi yang dapat digunakan untuk menghilangkan partisi saat membaca data. Hanya berlaku untuk tabel eksternal yang dipartisi hive.

Berlaku untuk data Avro, CSV, JSON, Parquet, dan ORC.

sheet_range

STRING

Rentang spreadsheet Google Spreadsheet yang akan digunakan untuk membuat kueri.

Berlaku untuk data Google Spreadsheet.

Contoh: “sheet1!A1:B20”,

skip_leading_rows

INT64

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<STRING>

Array URI yang sepenuhnya memenuhi syarat untuk lokasi data eksternal. Setiap URI dapat berisi satu karakter pengganti tanda bintang (*), yang harus muncul setelah nama bucket. Saat Anda menetapkan nilai uris yang menargetkan beberapa file, semua file tersebut harus memiliki skema yang kompatibel dan sama.

Contoh berikut menunjukkan nilai uris yang valid:

  • ['gs://bucket/path1/myfile.csv']
  • ['gs://bucket/path1/*.csv']
  • ['gs://bucket/path1/*', 'gs://bucket/path2/file00*']

Untuk tabel Bigtable:

STRING

URI yang mengidentifikasi tabel Bigtable untuk digunakan sebagai sumber data. Anda hanya dapat menentukan satu URI Bigtable.

Contoh: https://googleapis.com/bigtable/projects/project_id/instances/instance_id[/appProfiles/app_profile]/tables/table_name

Untuk mengetahui informasi selengkapnya tentang cara membuat URI Bigtable, baca Mengambil URI Bigtable.

Cakupan dan sintaksis

Kueri terhadap tabel virtual ini harus menyertakan set data atau penentu region. Untuk kueri dengan penentu set data, Anda harus memiliki izin untuk set data. Untuk kueri dengan penentu region, Anda harus memiliki izin untuk project. Untuk informasi selengkapnya, lihat Sintaksis. Tabel berikut menjelaskan cakupan region dan resource untuk tabel virtual ini:

Nama tabel virtual Cakupan resource Cakupan region
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.TABLE_OPTIONS Level project REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.TABLE_OPTIONS Level set data Lokasi set data
Ganti kode berikut:

  • Opsional: PROJECT_ID: ID project Google Cloud Anda. Jika tidak ditentukan, project default akan digunakan.
  • REGION: nama region set data apa pun. Misalnya, region-us.
  • DATASET_ID: ID set data Anda. Untuk mengetahui informasi selengkapnya, lihat Penentu set data.

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"  |
  +----------------+---------------+------------+-------------+-------------+--------------+