TABLE_OPTIONS ビュー
INFORMATION_SCHEMA.TABLE_OPTIONS ビューには、データセット内のテーブルまたはビューごとに、各オプションに対して 1 行が表示されます。TABLES ビューと TABLE_OPTIONS ビューには、ビューに関する概要情報も含まれています。詳細情報を取得するには、INFORMATION_SCHEMA.VIEWS ビューに対してクエリを実行します。
必要な権限
INFORMATION_SCHEMA.TABLE_OPTIONS ビューをクエリするには、次の Identity and Access Management(IAM)権限が必要です。
bigquery.tables.getbigquery.tables.listbigquery.routines.getbigquery.routines.list
次の各 IAM 事前定義ロールには、上の権限が含まれています。
roles/bigquery.adminroles/bigquery.dataViewerroles/bigquery.metadataViewer
BigQuery の権限の詳細については、IAM でのアクセス制御をご覧ください。
スキーマ
INFORMATION_SCHEMA.TABLE_OPTIONS ビューにクエリを実行すると、クエリ結果として、データセット内のテーブルまたはビューごとに、各オプションに対して 1 行が表示されます。ビューの詳細情報を取得するには、INFORMATION_SCHEMA.VIEWS ビューに対してクエリを実行します。
INFORMATION_SCHEMA.TABLE_OPTIONS ビューのスキーマは次のとおりです。
| 列名 | データ型 | 値 | 
|---|---|---|
TABLE_CATALOG | 
      STRING | 
      データセットを含むプロジェクトのプロジェクト ID | 
TABLE_SCHEMA | 
      STRING | 
      datasetId とも呼ばれる、テーブルやビューを含むデータセットの名前 | 
    
TABLE_NAME | 
      STRING | 
      テーブルまたはビューの名前(tableId とも呼ばれる) | 
    
OPTION_NAME | 
      STRING | 
      オプション テーブル内の名前値の 1 つ | 
OPTION_TYPE | 
      STRING | 
      オプション テーブルのデータ型の値の 1 つ | 
OPTION_VALUE | 
      STRING | 
      オプション テーブルの値オプションの 1 つ | 
オプション テーブル
  | 
      
  | 
      
  | 
    
|---|---|---|
  | 
      
  | 
      テーブルの説明 | 
  | 
      
  | 
      マテリアライズド ビューで自動更新が有効にされているかどうか | 
  | 
      
  | 
      このテーブルの有効期限 | 
  | 
      
  | 
      テーブルのわかりやすい名前 | 
  | 
      
  | 
      テーブルの暗号化に使用される Cloud KMS 鍵の名前 | 
  | 
      
  | 
      テーブルのラベルを表す STRUCT の配列 | 
    
  | 
      
  | 
      BigQuery 変更データ キャプチャ(CDC)の upsert の構成済みテーブルの最大鮮度 | 
  | 
      
  | 
      パーティション分割テーブルのすべてのパーティションのデフォルトの存続期間(日数) | 
  | 
      
  | 
      マテリアライズド ビューが更新される頻度 | 
  | 
      
  | 
      テーブルに対するクエリでパーティション フィルタが必要かどうか | 
  | 
      
  | 
      名前空間付きの <key, value> 構文でテーブルに適用されるタグ。詳細については、タグと条件付きアクセスをご覧ください。 | 
外部テーブルの場合、次のオプションを使用できます。
| オプション | |
|---|---|
allow_jagged_rows | 
      
         
 
 CSV データに適用されます。  | 
    
allow_quoted_newlines | 
      
         
 
 CSV データに適用されます。  | 
    
bigtable_options | 
      
         
 Bigtable 外部テーブルを作成する場合にのみ必要です。 Bigtable 外部テーブルのスキーマを JSON 形式で指定します。 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 | 
      
         
 外部データの形式。 
             値   | 
    
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>>>
      テーブルの IAM タグの配列。Key-Value ペアで表されます。キーは名前空間付きのキー名、値は略称にする必要があります。  | 
      
time_zone | 
      
         
 (プレビュー) タイムゾーンが指定されていないタイムスタンプ値を解析する際に適用されるデフォルトのタイムゾーン。 有効なタイムゾーン名を確認します。 この値が指定されていない場合、特定のタイムゾーンのないタイムスタンプ値は、デフォルトのタイムゾーン UTC を使用して解析されます。 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 に 1 つのアスタリスク( 次の例に、有効な  
 Bigtable テーブルの場合は、次のようになります。 
 データソースとして使用する Bigtable テーブルを識別する URI。Bigtable URI は 1 つのみ指定できます。 例:  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 の全テーブルのデフォルトのテーブル有効期限を取得します。
デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、`project_id`.dataset.INFORMATION_SCHEMA.view の形式でそのプロジェクト ID をデータセットに追加します。たとえば、`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 内のすべてのテーブルから、テストデータを含むテーブルを絞り込んでそのメタデータを取得します。このクエリでは、説明に「test」が含まれているテーブルを見つけるために description オプションの値を使用します。mydataset はデフォルト プロジェクト(myproject)にあります。
デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、`project_id`.dataset.INFORMATION_SCHEMA.view の形式でそのプロジェクト ID をデータセットに追加します。たとえば、`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" | +----------------+---------------+------------+-------------+-------------+--------------+