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

OPTION_NAME

OPTION_TYPE

OPTION_VALUE

description

STRING

Deskripsi tabel

enable_refresh

BOOL

Apakah muat ulang otomatis diaktifkan untuk tampilan terwujud

expiration_timestamp

TIMESTAMP

Waktu saat tabel ini berakhir

friendly_name

STRING

Nama deskriptif tabel

kms_key_name

STRING

Nama kunci Cloud KMS yang digunakan untuk mengenkripsi tabel

labels

ARRAY<STRUCT<STRING, STRING>>

Array STRUCT yang merepresentasikan label pada tabel

partition_expiration_days

FLOAT64

Masa aktif default, dalam hari, untuk semua partisi dalam tabel berpartisi

refresh_interval_minutes

FLOAT64

Seberapa sering tampilan terwujud dimuat ulang

require_partition_filter

BOOL

Apakah kueri pada tabel memerlukan filter partisi

tags

ARRAY<STRUCT<STRING, STRING>>

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

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.

column_name_character_map

STRING

Menentukan cakupan karakter nama kolom yang didukung dan perilaku penanganan karakter yang tidak didukung. Setelan defaultnya adalah STRICT, yang berarti karakter yang tidak didukung menyebabkan BigQuery menampilkan error. V1 dan V2 mengganti karakter yang tidak didukung dengan garis bawah.

Nilai yang didukung meliputi:

  • STRICT. Mengaktifkan nama kolom fleksibel. Ini adalah nilai defaultnya. Memuat tugas dengan karakter yang tidak didukung dalam nama kolom akan gagal dengan pesan error. Untuk mengonfigurasi penggantian karakter yang tidak didukung dengan garis bawah sehingga tugas pemuatan berhasil, tentukan setelan konfigurasi default_column_name_character_map.
  • V1. Nama kolom hanya boleh berisi karakter nama kolom standar. Karakter yang tidak didukung akan diganti dengan garis bawah. Ini adalah perilaku default untuk tabel yang dibuat sebelum diperkenalkannya column_name_character_map.
  • V2. Selain karakter nama kolom standar, V2 juga mendukung nama kolom fleksibel. Karakter yang tidak didukung akan diganti dengan garis bawah.
  • Berlaku untuk data CSV dan Parquet.

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.

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, dan semua file data yang dirujuk harus berada di bucket yang sama dengan 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.

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.

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