INFORMATION_SCHEMA の概要
BigQuery INFORMATION_SCHEMA
ビューは、BigQuery オブジェクトに関するメタデータ情報を提供するシステム定義の読み取り専用ビューです。次の表は、メタデータ情報を取得するためにクエリできるすべての INFORMATION_SCHEMA
ビューを示しています。
† *BY_PROJECT
ビューの場合、BY_PROJECT
接尾辞は省略可能です。たとえば、INFORMATION_SCHEMA.JOBS_BY_PROJECT
と INFORMATION_SCHEMA.JOBS
に対してクエリを実行すると、同じ結果が返されます。
料金
オンデマンド料金を使用するプロジェクトの場合、INFORMATION_SCHEMA
ビューに対するクエリでは、クエリによって処理されたバイト数が 10 MB 未満であっても最低 10 MB のデータ処理料金が発生します。オンデマンド クエリの最小課金額は 10 MB です。詳しくは、オンデマンド料金をご覧ください。
容量ベースの料金を使用するプロジェクトの場合、INFORMATION_SCHEMA
ビューおよびテーブルにクエリすると、購入した BigQuery スロットが消費されます。詳細については、容量ベースの料金をご覧ください。
INFORMATION_SCHEMA
クエリはキャッシュに保存されないため、クエリテキストが毎回同じでも INFORMATION_SCHEMA
クエリを実行するたびに課金されます。
INFORMATION_SCHEMA
ビューの保存料金はかかりません。
構文
INFORMATION_SCHEMA
ビューは、データセットまたはリージョンで指定される必要があります。
データセット修飾子
データセット修飾子が存在すると、データセット修飾子で指定されたデータセットに結果が制限されます。 次に例を示します。
-- Returns metadata for tables in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.TABLES;
次の INFORMATION_SCHEMA
ビューは、データセット修飾子をサポートしています。
COLUMNS
COLUMN_FIELD_PATHS
MATERIALIZED_VIEWS
PARAMETERS
PARTITIONS
ROUTINES
ROUTINE_OPTIONS
TABLES
TABLE_OPTIONS
VIEWS
リージョン修飾子
リージョン修飾子は region-REGION
構文を使用して表されます。REGION
には、任意のデータセットのロケーション名を使用できます。たとえば、次のリージョン修飾子は有効です。
region-us
region-asia-east2
region-europe-north1
リージョン修飾子が存在すると、リージョン修飾子で指定されたロケーションに結果が制限されます。たとえば、次のクエリは US
マルチリージョンのプロジェクト内のすべてのデータセットのメタデータを返します。
-- Returns metadata for all datasets in a region. SELECT * FROM region-us.INFORMATION_SCHEMA.SCHEMATA;
次の INFORMATION_SCHEMA
ビューは、リージョン修飾子をサポートしていません。
INFORMATION_SCHEMA.PARTITIONS
INFORMATION_SCHEMA.SEARCH_INDEXES
INFORMATION_SCHEMA.SEARCH_INDEX_COLUMNS
INFORMATION_SCHEMA.SEARCH_INDEX_OPTIONS
リージョン修飾子とデータセット修飾子のどちらも指定されていない場合、エラーが発生します。
リージョン修飾子付きの INFORMATION_SCHEMA
ビューに対するクエリは、指定したリージョンで実行されます。つまり、1 つのクエリで異なるリージョンのビューのデータを結合することはできません。複数リージョンの INFORMATION_SCHEMA
ビューを結合するには、クエリ結果をテーブルに書き込み、テーブルをコピーするか、共通のリージョンにデータセットを移動します。
プロジェクト修飾子
プロジェクト修飾子がある場合、プロジェクト修飾子で指定されたプロジェクトに結果が制限されます。例:
-- Returns metadata for the specified project and region.
SELECT * FROM myProject.`region-us`.INFORMATION_SCHEMA.TABLES;
-- Returns metadata for the specified project and dataset.
SELECT * FROM myProject.myDataset.INFORMATION_SCHEMA.TABLES;
INFORMATION_SCHEMA
ビューはすべて、プロジェクト修飾子をサポートしています。プロジェクト修飾子が指定されていない場合、ビューはデフォルトでクエリを実行しているプロジェクトになります。
組織レベルのビューのプロジェクト修飾子(例: STREAMING_TIMELINE_BY_ORGANIZATION
)を指定しても、結果には影響しません。
制限事項
- BigQuery の
INFORMATION_SCHEMA
クエリは、GoogleSQL 構文で記述する必要があります。INFORMATION_SCHEMA
はレガシー SQL をサポートしません。 INFORMATION_SCHEMA
クエリの結果はキャッシュに保存されません。INFORMATION_SCHEMA
ビューは DDL ステートメントでは使用できません。INFORMATION_SCHEMA
ビューには、非表示データセットに関する情報は含まれません。- リージョン修飾子を含む
INFORMATION_SCHEMA
クエリには、タイムトラベル期間内にある削除されたデータセットから、そのリージョンにあるリソースのメタデータが含まれる場合があります。 INFORMATION_SCHEMA
ビューからリソースを一覧表示する場合、権限は親レベルでのみチェックされ、個々の行レベルではチェックされません。そのため、タグを使用して個々の行を条件付きで対象とする拒否ポリシー(プレビュー)は無視されます。