SCHEMATA_OPTIONS ビュー

INFORMATION_SCHEMA.SCHEMATA_OPTIONS ビューには、プロジェクト内の各データセットのオプションごとに 1 行が表示されます。

始める前に

データセットのメタデータについて SCHEMATA_OPTIONS ビューにクエリを実行するには、プロジェクト レベルで bigquery.datasets.get Identity and Access Management(IAM)権限が必要です。

以下の IAM 事前定義ロールのそれぞれに、SCHEMATA_OPTIONS ビューの取得に必要な権限が含まれています。

  • roles/bigquery.admin
  • roles/bigquery.dataEditor
  • roles/bigquery.dataOwner
  • roles/bigquery.dataViewer

BigQuery の権限の詳細については、IAM でのアクセス制御をご覧ください。

スキーマ

INFORMATION_SCHEMA.SCHEMATA_OPTIONS ビューにクエリを実行すると、クエリの結果として、プロジェクト内の各データセットのオプションごとに 1 行が表示されます。

INFORMATION_SCHEMA.SCHEMATA_OPTIONS ビューのスキーマは次のとおりです。

列名 データ型
CATALOG_NAME STRING データセットを含むプロジェクトの名前
SCHEMA_NAME STRING データセットの名前(datasetId ともいいます)
OPTION_NAME STRING options テーブル内の名前値の 1 つ
OPTION_TYPE STRING オプション テーブル内のデータ型の値の 1 つ
OPTION_VALUE STRING オプション テーブル内の値のオプションの 1 つ

オプション テーブル
OPTION_NAME OPTION_TYPE OPTION_VALUE
default_partition_expiration_days FLOAT64 データセット内のすべてのパーティション分割テーブルのデフォルトの有効期間(日数)
default_table_expiration_days FLOAT64 データセット内のすべてのテーブルのデフォルトの有効期間(日数)
max_time_travel_hours INTEGER 24 の倍数(48、72、96、120、144、168)で表される、48(2 日間)から 168(7 日間)までのタイムトラベル期間
description STRING データセットの説明
friendly_name STRING データセットの説明
labels ARRAY<STRUCT<STRING, STRING>> データセットのラベルを表す STRUCT の配列
storage_billing_model STRING

データセットのストレージ課金モデル

スコープと構文

このビューに対するクエリでは、リージョン修飾子を指定する必要があります。リージョン修飾子を指定しない場合、メタデータは米国リージョンから取得されます。次の表に、このビューのリージョン スコープを示します。

ビュー名 リソース スコープ リージョン スコープ
[PROJECT_ID.]INFORMATION_SCHEMA.SCHEMATA_OPTIONS プロジェクト レベル US リージョン
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS プロジェクト レベル REGION
次のように置き換えます。

  • 省略可: PROJECT_ID: Google Cloud プロジェクトの ID。指定しない場合は、デフォルトのプロジェクトが使用されます。
  • REGION: 任意のデータセット リージョン名。例: region-us

-- Returns metadata for datasets in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.SCHEMATA_OPTIONS;

プロジェクト内のすべてのデータセットに対してデフォルトのテーブル有効期間を取得する

デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、次の形式でプロジェクト ID をデータセットに追加します。

`PROJECT_ID`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS
例: `myproject`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS

SELECT
  *
FROM
  INFORMATION_SCHEMA.SCHEMATA_OPTIONS
WHERE
  option_name = 'default_table_expiration_days';

次のような結果になります。

  +----------------+---------------+-------------------------------+-------------+---------------------+
  |  catalog_name  |  schema_name  |          option_name          | option_type |    option_value     |
  +----------------+---------------+-------------------------------+-------------+---------------------+
  | myproject      | mydataset3    | default_table_expiration_days | FLOAT64     | 0.08333333333333333 |
  | myproject      | mydataset2    | default_table_expiration_days | FLOAT64     | 90.0                |
  | myproject      | mydataset1    | default_table_expiration_days | FLOAT64     | 30.0                |
  +----------------+---------------+-------------------------------+-------------+---------------------+
  

プロジェクト内のすべてのデータセットのラベルを取得する

デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、次の形式でプロジェクト ID をデータセットに追加します。

`PROJECT_ID`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS
たとえば `myproject`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS です。

SELECT
  *
FROM
  INFORMATION_SCHEMA.SCHEMATA_OPTIONS
WHERE
  option_name = 'labels';

次のような結果になります。

  +----------------+---------------+-------------+---------------------------------+------------------------+
  |  catalog_name  |  schema_name  | option_name |          option_type            |      option_value      |
  +----------------+---------------+-------------+---------------------------------+------------------------+
  | myproject      | mydataset1    | labels      | ARRAY<STRUCT<STRING, STRING>>   | [STRUCT("org", "dev")] |
  | myproject      | mydataset2    | labels      | ARRAY<STRUCT<STRING, STRING>>   | [STRUCT("org", "dev")] |
  +----------------+---------------+-------------+---------------------------------+------------------------+