TABLE_OPTIONS 檢視區塊
INFORMATION_SCHEMA.TABLE_OPTIONS
檢視表會針對資料集中的每個資料表或檢視表,分別列出一個相對應的資料列。TABLES
和 TABLE_OPTIONS
檢視畫面也包含檢視畫面的相關高階資訊。如需詳細資訊,請查詢 INFORMATION_SCHEMA.VIEWS
檢視畫面。
所需權限
如要查詢 INFORMATION_SCHEMA.TABLE_OPTIONS
檢視畫面,您必須具備下列 Identity and Access Management (IAM) 權限:
bigquery.tables.get
bigquery.tables.list
bigquery.routines.get
bigquery.routines.list
下列每個預先定義的 IAM 角色都包含上述權限:
roles/bigquery.admin
roles/bigquery.dataViewer
roles/bigquery.metadataViewer
如要進一步瞭解 BigQuery 權限,請參閱「使用身分與存取權管理功能控管存取權」一文。
結構定義
查詢 INFORMATION_SCHEMA.TABLE_OPTIONS
檢視表時,資料集中每個資料表或檢視表的每個選項在查詢結果都會有一個資料列。如要取得檢視區塊的詳細資訊,請改為查詢 INFORMATION_SCHEMA.VIEWS
檢視區塊。
INFORMATION_SCHEMA.TABLE_OPTIONS
檢視表具有下列結構定義:
資料欄名稱 | 資料類型 | 值 |
---|---|---|
TABLE_CATALOG |
STRING |
資料集所屬專案的專案 ID |
TABLE_SCHEMA |
STRING |
資料表或檢視表所屬資料集的名稱 (又稱為 datasetId ) |
TABLE_NAME |
STRING |
資料表或檢視表的名稱 (又稱為 tableId ) |
OPTION_NAME |
STRING |
選項表格中的其中一個名稱值 |
OPTION_TYPE |
STRING |
選項表格中的其中一個資料類型值 |
OPTION_VALUE |
STRING |
選項表格中的其中一個值選項 |
選項表格
|
|
|
---|---|---|
|
|
資料表的說明 |
|
|
具體化檢視表是否啟用自動重新整理功能 |
|
|
這個資料表的到期時間 |
|
|
資料表的描述性名稱 |
|
|
用來加密資料表的 Cloud KMS 金鑰名稱 |
|
|
代表資料表標籤的 STRUCT 陣列 |
|
|
設定的資料表在 BigQuery 變更資料擷取 (CDC) 插入/更新作業中的最大延遲時間 |
|
|
分區資料表中所有分區的預設生命週期 (以天為單位) |
|
|
具體化檢視表的重新整理頻率 |
|
|
查詢資料表時是否需要分區篩選器 |
|
|
以命名空間限定的 <鍵, 值> 語法附加至表格的標記。 詳情請參閱「標記和條件式存取」。 |
如果是外部資料表,則可選擇下列選項:
選項 | |
---|---|
allow_jagged_rows |
如果 適用於 CSV 資料。 |
allow_quoted_newlines |
如果 適用於 CSV 資料。 |
bigtable_options |
建立 Bigtable 外部資料表時才需要。 以 JSON 格式指定 Bigtable 外部資料表的結構定義。 如需 Bigtable 資料表定義選項清單,請參閱 REST API 參考資料中的 |
column_name_character_map |
定義支援的資料欄名稱字元範圍,以及如何處理不支援的字元。預設設定為 支援的值包括:
適用於 CSV 和 Parquet 資料。 |
compression |
資料來源的壓縮類型。支援的值包括:
適用於 CSV 和 JSON 資料。 |
decimal_target_types |
決定如何轉換 範例: |
description |
這個資料表的說明。 |
enable_list_inference |
如果是 適用於 Parquet 資料。 |
enable_logical_types |
如果為 適用於 Avro 資料。 |
encoding |
資料的字元編碼。支援的值包括:
適用於 CSV 資料。 |
enum_as_string |
如果 適用於 Parquet 資料。 |
expiration_timestamp |
這個資料表的到期時間。如未指定,資料表就不會過期。 範例: |
field_delimiter |
CSV 檔案中的欄位分隔符。 適用於 CSV 資料。 |
format |
外部資料的格式。
[INTERVAL_VALUE] 的有效值包括: 值 |
hive_partition_uri_prefix |
所有來源 URI 的通用前置字串,位於分區索引鍵編碼開始之前。僅適用於 Hive 分區外部資料表。 適用於 Avro、CSV、JSON、Parquet 和 ORC 資料。 範例: |
file_set_spec_type |
指定如何解讀載入工作和外部資料表的來源 URI。 支援的值包括:
舉例來說,如果來源 URI 為 |
ignore_unknown_values |
如果 適用於 CSV 和 JSON 資料。 |
json_extension |
如果是 JSON 資料,則表示特定的 JSON 交換格式。如果未指定,BigQuery 會將資料讀取為一般 JSON 記錄。 支援的值包括: |
max_bad_records |
讀取資料時可忽略的損壞記錄數量上限。 適用於:CSV、JSON 和 Google 試算表資料。 |
max_staleness |
適用於 BigLake 資料表和物件資料表。 指定對資料表執行的作業是否使用快取中繼資料,以及作業必須使用多新的快取中繼資料。 如要停用中繼資料快取功能,請指定 0。這是目前的預設做法。 如要啟用中繼資料快取功能,請指定介於 30 分鐘至 7 天之間的間隔常值。舉例來說,如要指定 4 小時的過時間隔,請輸入 |
null_marker |
代表 CSV 檔案中 適用於 CSV 資料。 |
null_markers |
(預覽) 代表 CSV 檔案中 這個選項無法與 適用於 CSV 資料。 |
object_metadata |
只有在建立物件資料表時才需要。 建立物件資料表時,請將這個選項的值設為 |
preserve_ascii_control_characters |
如果 適用於 CSV 資料。 |
projection_fields |
要載入的實體屬性清單。 適用於 Datastore 資料。 |
quote |
在 CSV 檔案中用來引用資料區段的字串。如果資料包含引用的換行符號字元,請將 適用於 CSV 資料。 |
reference_file_schema_uri |
使用者提供的參考檔案,內含資料表結構定義。 適用於 Parquet/ORC/AVRO 資料。 範例: |
require_hive_partition_filter |
如果 適用於 Avro、CSV、JSON、Parquet 和 ORC 資料。 |
sheet_range |
要查詢的 Google 試算表範圍。 適用於 Google 試算表資料。 範例: |
skip_leading_rows |
讀取資料時要略過檔案開頭的列數。 適用於 CSV 和 Google 試算表資料。 |
source_column_match |
(預覽) 這項設定可控管比對載入資料欄與結構定義的策略。 如未指定這個值,系統會根據提供結構定義的方式設定預設值。如果啟用自動偵測功能,系統預設會依名稱比對資料欄。否則,系統預設會依位置比對資料欄。這是為了確保行為回溯相容。 支援的值包括:
|
tags |
<ARRAY<STRUCT<STRING, STRING>>>
|
time_zone |
(預覽) 如果剖析的時間戳記值沒有特定時區,就會採用這個預設時區。 查看有效的時區名稱。 如果沒有這個值,系統會使用預設時區 (世界標準時間) 剖析沒有特定時區的時間戳記值。 適用於 CSV 和 JSON 資料。 |
date_format |
(預覽)
格式元素,可以定義輸入檔案中的 DATE 值格式 (例如 如果存在這個值,這個格式就是唯一相容的 DATE 格式。結構定義自動偵測也會根據這個格式決定 DATE 資料欄類型,而非現有格式。 如果沒有這個值,系統會使用預設格式剖析 DATE 欄位。 適用於 CSV 和 JSON 資料。 |
datetime_format |
(預覽)
格式元素,可以定義輸入檔案中的 DATETIME 值格式,例如 如果存在這個值,則只有這個格式與 DATETIME 相容。自動偵測結構定義也會根據這個格式決定 DATETIME 資料欄類型,而非現有格式。 如果沒有這個值,系統會使用預設格式剖析 DATETIME 欄位。 適用於 CSV 和 JSON 資料。 |
time_format |
(預覽)
格式元素,可以定義輸入檔案中的 TIME 值格式 (例如 如果存在這個值,這個格式就是唯一相容的 TIME 格式。結構定義自動偵測也會根據這個格式決定 TIME 資料欄類型,而非現有格式。 如果沒有這個值,系統會使用預設格式剖析 TIME 欄位。 適用於 CSV 和 JSON 資料。 |
timestamp_format |
(預覽)
格式元素,可以定義輸入檔案中的 TIMESTAMP 值格式 (例如 如果存在這個值,這個格式就是唯一相容的 TIMESTAMP 格式。結構定義自動偵測也會根據這個格式 (而非現有格式) 決定 TIMESTAMP 欄類型。 如果沒有這個值,系統會使用預設格式剖析 TIMESTAMP 欄位。 適用於 CSV 和 JSON 資料。 |
uris |
如果是外部資料表 (包括物件資料表),但不是 Bigtable 資料表:
外部資料位置的完整 URI 陣列。
每個 URI 可包含一個星號 ( 以下範例顯示有效的
Bigtable 資料表:
URI,用於識別要當做資料來源的 Bigtable 資料表。您只能指定一個 Bigtable URI。 示例:
如要進一步瞭解如何建構 Bigtable URI,請參閱「擷取 Bigtable URI」。 |
範圍和語法
對這個檢視表執行的查詢必須包含資料集或區域限定詞。如果是含有資料集限定符的查詢,您必須具備該資料集的權限。如要查詢含有區域限定符的資料,您必須具備專案權限。 詳情請參閱語法。 下表說明這個檢視畫面的區域和資源範圍:
檢視表名稱 | 資源範圍 | 區域範圍 |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.TABLE_OPTIONS |
專案層級 | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.TABLE_OPTIONS |
資料集層級 | 資料集位置 |
-
選用:
PROJECT_ID
:您的 Google Cloud 專案 ID。如未指定,系統會使用預設專案。 -
REGION
:任何資料集區域名稱。 例如:`region-us`
。 -
DATASET_ID
:資料集的 ID。詳情請參閱資料集限定符。
範例
範例 1:
下列範例會透過查詢 INFORMATION_SCHEMA.TABLE_OPTIONS
檢視表,擷取預設專案 (myproject
) 中 mydataset
內所有資料表的預設資料表到期時間。
如要對預設專案以外的專案執行查詢,請使用以下格式將專案 ID 新增至資料集:`project_id`.dataset.INFORMATION_SCHEMA.view
;例如 `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
。
SELECT * FROM mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS WHERE option_name = 'expiration_timestamp';
結果大致如下:
+----------------+---------------+------------+----------------------+-------------+--------------------------------------+ | 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" | +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
範例 2:
以下範例會擷取 mydataset
中包含測試資料的所有資料表相關中繼資料。此查詢使用 description
選項中的值來尋找說明中的任意位置包含「test」的資料表。mydataset
在您的預設專案 (myproject
) 中。
如要對預設專案以外的專案執行查詢,請使用以下格式將專案 ID 新增至資料集:`project_id`.dataset.INFORMATION_SCHEMA.view
;例如 `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS
。
SELECT * FROM mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS WHERE option_name = 'description' AND option_value LIKE '%test%';
結果大致如下:
+----------------+---------------+------------+-------------+-------------+--------------+ | 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" | +----------------+---------------+------------+-------------+-------------+--------------+