TABLE_OPTIONS ビュー

INFORMATION_SCHEMA.TABLE_OPTIONS ビューには、データセット内のテーブルまたはビューごとに、各オプションに対して 1 行が表示されます。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 の権限の詳細については、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 options テーブル内の名前値の 1 つ
OPTION_TYPE STRING オプション テーブルのデータ型の値の 1 つ
OPTION_VALUE STRING オプション テーブルの値オプションの 1 つ
オプション テーブル
OPTION_NAME OPTION_TYPE OPTION_VALUE
partition_expiration_days FLOAT64 パーティション分割テーブルのすべてのパーティションのデフォルトの存続期間(日数)
expiration_timestamp TIMESTAMP このテーブルの有効期限
kms_key_name STRING テーブルの暗号化に使用される Cloud KMS 鍵の名前
friendly_name STRING テーブルのわかりやすい名前
description STRING テーブルの説明
labels ARRAY<STRUCT<STRING, STRING>> テーブルのラベルを表す STRUCT の配列
require_partition_filter BOOL テーブルに対するクエリでパーティション フィルタが必要かどうか
enable_refresh BOOL マテリアライズド ビューで自動更新が有効にされているかどうか
refresh_interval_minutes FLOAT64 マテリアライズド ビューが更新される頻度

外部テーブルの場合、次のオプションを使用できます。

オプション
allow_jagged_rows

BOOL

true の場合、末尾のオプションの列が欠落している行を受け入れます。

CSV データに適用されます。

allow_quoted_newlines

BOOL

true の場合、改行文字を含む引用符で囲まれたデータ セクションを許可します。

CSV データに適用されます。

bigtable_options

STRING

Bigtable 外部テーブルを作成する場合にのみ必要です。

Bigtable 外部テーブルのスキーマを JSON 形式で指定します。

Bigtable テーブル定義オプションの一覧については、REST API リファレンスの BigtableOptions をご覧ください。

compression

STRING

データソースの圧縮タイプ。サポートされる値: GZIP。指定しない場合、データソースは圧縮されません。

CSV データと JSON データに適用されます。

decimal_target_types

ARRAY<STRING>

Decimal 型の変換方法を指定します。ExternalDataConfiguration.decimal_target_types と同等です。

例: ["NUMERIC", "BIGNUMERIC"]

description

STRING

このテーブルの説明。

enable_list_inference

BOOL

true の場合は、Parquet LIST 論理型専用のスキーマ推定を使用します。

Parquet データに適用されます。

enable_logical_types

BOOL

true の場合、Avro の論理型を対応する SQL 型に変換します。詳細については、論理型をご覧ください。

Avro データに適用されます。

encoding

STRING

データの文字エンコード。サポートされている値: UTF8(または UTF-8)、ISO_8859_1(または ISO-8859-1)。

CSV データに適用されます。

enum_as_string

BOOL

true の場合、Parquet ENUM 論理型はデフォルトで BYTES ではなく STRING として推測します。

Parquet データに適用されます。

expiration_timestamp

TIMESTAMP

このテーブルの有効期限。指定しない場合、テーブルは期限切れになりません。

例: "2025-01-01 00:00:00 UTC"

field_delimiter

STRING

CSV ファイル内のフィールド区切り文字。

CSV データに適用されます。

format

STRING

外部データの形式。CREATE EXTERNAL TABLE に指定できる値は、AVROCLOUD_BIGTABLECSVDATASTORE_BACKUPDELTA_LAKEプレビュー)、GOOGLE_SHEETSNEWLINE_DELIMITED_JSON(またはJSON)、ORCPARQUET です。

LOAD DATA に指定できる値は、AVROCSVDELTA_LAKEプレビュー)、NEWLINE_DELIMITED_JSON(または JSON)、ORCPARQUET です。

JSONNEWLINE_DELIMITED_JSON と同等です。

hive_partition_uri_prefix

STRING

パーティション キーのエンコードを開始する前のすべてのソース URI の一般的なプレフィックス。Hive パーティション分割された外部テーブルにのみ適用されます。

Avro、CSV、JSON、Parquet、ORC のデータに適用されます。

例: "gs://bucket/path"

file_set_spec_type

STRING

読み込みジョブと外部テーブルのソース URI の解釈方法を指定します。プレビュー版です。

サポートされる値は、次のとおりです。

  • FILE_SYSTEM_MATCH。オブジェクト ストアからファイルを一覧表示して、ソース URI を拡張します。FileSetSpecType が設定されていない場合、これがデフォルトの動作です。
  • NEW_LINE_DELIMITED_MANIFEST。指定された URI が、1 行に 1 つの URI が含まれる改行区切りのマニフェスト ファイルであることを示します。ワイルドカード URI は、マニフェスト ファイルではサポートされていません。

たとえば、ソース URI が "gs://bucket/path/file" で、file_set_spec_typeFILE_SYSTEM_MATCH の場合、このファイルがデータファイルとして直接使用されます。file_set_spec_typeNEW_LINE_DELIMITED_MANIFEST の場合、ファイル内の各行は、データファイルを指す URI として解釈されます。

ignore_unknown_values

BOOL

true の場合、テーブル スキーマにない余分な値を無視します。エラーは返しません。

CSV データと JSON データに適用されます。

json_extension

STRING

JSON データの場合、特定の JSON 置換形式を指定します。指定しない場合、BigQuery はデータを汎用 JSON レコードとして読み取ります。

サポートされる値は、次のとおりです。
GEOJSON。改行区切りの GeoJSON データ。詳細については、改行区切りの GeoJSON ファイルから外部テーブルを作成するをご覧ください。

max_bad_records

INT64

データの読み取り時に無視する不良レコードの最大数。

適用対象: CSV、JSON、Google スプレッドシートのデータ。

max_staleness

INTERVAL

BigLake テーブルオブジェクト テーブルに適用されます。

キャッシュに保存されたメタデータをテーブルに対するオペレーションで使用するかどうかを指定します。また、オペレーションで使用できるキャッシュ内のメタデータの鮮度を指定します。

メタデータのキャッシュ保存を無効にするには、0 を指定します。これがデフォルトです。

メタデータ キャッシュを有効にするには、30 分から 7 日の間で間隔リテラルの値を指定します。たとえば、4 時間の未更新間隔の場合、INTERVAL 4 HOUR を指定します。この値を指定すると、キャッシュに保存されたメタデータが過去 4 時間以内に更新されていれば、テーブルに対するオペレーションはそのメタデータを使用します。キャッシュに保存されたメタデータがそれより古い場合、オペレーションは代わりに Cloud Storage からメタデータを取得します。

metadata_cache_mode

STRING

BigLake テーブルオブジェクト テーブルに適用されます。

テーブルのメタデータ キャッシュが自動的に更新されるか、手動で更新するかを指定します。

AUTOMATIC に設定すると、メタデータ キャッシュがシステムで定義された間隔(通常は 30~60 分)で更新されます。

自身で決めたスケジュールでメタデータ キャッシュを更新する場合は、MANUAL に設定します。この場合は、BQ.REFRESH_EXTERNAL_METADATA_CACHE システム プロシージャを呼び出してキャッシュを更新できます。

max_staleness が 0 より大きい値に設定されている場合は、metadata_cache_mode を設定する必要があります。

null_marker

STRING

CSV ファイル内の NULL 値を表す文字列。

CSV データに適用されます。

object_metadata

STRING

オブジェクト テーブルを作成する場合にのみ必要です。

オブジェクト テーブルの作成時に、このオプションの値を SIMPLE に設定します。

preserve_ascii_control_characters

BOOL

true の場合、埋め込みの ASCII 制御文字(ASCII テーブルの最初の 32 文字、「\x00」から「\x1F」まで)が保持されます。

CSV データに適用されます。

projection_fields

STRING

読み込むエンティティ プロパティのリスト。

Datastore データに適用されます。

quote

STRING

CSV ファイルのデータ セクションを引用するために使用される文字列。データに引用符で囲まれた改行文字が含まれている場合は、allow_quoted_newlines プロパティも true に設定します。

CSV データに適用されます。

reference_file_schema_uri

STRING

テーブル スキーマを含む、ユーザー指定の参照ファイル。

Parquet/ORC/AVRO データに適用されます。

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

require_hive_partition_filter

BOOL

true の場合、このテーブルに対するすべてのクエリでパーティション フィルタが必要になります。パーティション フィルタを使用すると、データを読み取るときにパーティションを削除できます。Hive パーティション分割された外部テーブルにのみ適用されます。

Avro、CSV、JSON、Parquet、ORC のデータに適用されます。

sheet_range

STRING

クエリの対象となる Google スプレッドシートの範囲。

Google スプレッドシートのデータに適用されます。

例: “sheet1!A1:B20”

skip_leading_rows

INT64

データを読み取る際にスキップするファイルの先頭行の数。

CSV データと Google スプレッドシートのデータに適用されます。

uris

Bigtable テーブルではない、オブジェクト テーブルを含む外部テーブルの場合は、次のようになります。

ARRAY<STRING>

外部データのロケーションの完全修飾 URI の配列。各 URI に 1 つのアスタリスク(*)のワイルドカード文字を含めることができますが、このワイルドカードはバケット名より後にある必要があります。複数のファイルをターゲットとする uris 値を指定する場合、それらのファイルはすべて互換性のあるスキーマを共有する必要があります。

次の例に、有効な uris 値を示します。

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

Bigtable テーブルの場合は、次のようになります。

STRING

データソースとして使用する Bigtable テーブルを識別する URI。Bigtable URI は 1 つのみ指定できます。

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

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