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 オプションの名前。サポートされているオプションの一覧については、スキーマ オプションのリストをご覧ください。

storage_billing_model オプションは、2022 年 12 月 1 日以降に更新されたデータセットにのみ表示されます。最終更新がこの日付より前のデータセットの場合、ストレージ課金モデルは LOGICAL です。

OPTION_TYPE STRING オプションのデータ型
OPTION_VALUE 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;

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

デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、この形式

`PROJECT_ID`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS
でそのプロジェクト ID をデータセットに追加します。例: `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                |
  +----------------+---------------+-------------------------------+-------------+---------------------+
  

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

デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、

`PROJECT_ID`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS
の形式でそのプロジェクト ID をデータセットに追加します。たとえば、`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")] |
  +----------------+---------------+-------------+---------------------------------+------------------------+