NFORMATION_SCHEMA は BigQuery における様々なメタデータを検索するために提供された一連のビュー群です。取得できるメタデータの一覧ははBigQuery のドキュメントで確認することができます。
本記事は、データセット、テーブル及びビューの取得方法について記述します。
始める前に
このドキュメントの各タスクを実行するために必要な Identity and Access Management(IAM)権限が必要です。
BigQuery の細かい権限の詳細については、役割と権限で確認できます。
ここからは、INFORMATION_SCHEMA を使って、データセット、テーブル、ビューの情報をそれぞれ取得してみたいと思います。
データセットのメタデータの取得
下記の構文をクエリで実行すると
データセットに関する表に示したメタデータが返されます。
列名 | データ型 | 値 |
---|
CATALOG_NAME | STRING | データセットを含むプロジェクトの名前 |
SCHEMA_NAME | STRING | データセットの名前 |
SCHEMA_OWNER | STRING | 値は常に NULL |
CREATION_TIME | TIMESTAMP | データセットの作成日時 |
LAST_MODIFIED_TIME | TIMESTAMP | データセットの最終更新日時 |
LOCATION | STRING | データセットの地理的位置 |
DDL | STRING | データセットの作成に使用できる CREATE SCHEMA DDL ステートメント |
DEFAULT_COLLATION_NAME | STRING | デフォルトの照合仕様の名前。 |
上記記述した構文をクエリで実際に実行してみると以下の結果が出力され、データセットに関するメータデータが返されたことが分かります。

テーブルのメタデータの取得
下記の構文をクエリで実行すると
テーブルに関する表に示したメタデータが返されます。
| 列名 | データ型 | 値 |
| ------------------ | --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | ------------------ | --------- | -------------------------- |
| table_catalog | STRING | データセットを含むプロジェクトのプロジェクト ID |
| table_schema | STRING | テーブルやビューを含むデータセットの名前 |
| table_name | STRING | テーブルまたはビューの名前 |
| table_type | STRING | テーブルタイプ |
| is_insertable_into | STRING | YES または NO( DML INSERT ステートメントに対応しているかどうか) |
| is_typed | STRING | 常に NO |
| creation_time | TIMESTAMP | テーブルの作成時間 |
| DDL | STRING | テーブルの作成に使用できる CREATE SCHEMA DDL ステートメント | | LAST_MODIFIED_TIME | TIMESTAMP | データセットの最終更新日時 |
| clone_time | TIMESTAMP | このテーブルを作成するためにベーステーブルがクローンされた時間 |
| base_table_catalog | STRING | ベーステーブルのプロジェクト |
| base_table_schema | STRING | ベーステーブルのデータセット |
| base_table_name | STRING | ベーステーブルの名前 |
| base_table_name | STRING | デフォルトの照合仕様の名前 |
上記記述した構文をクエリで実際に実行してみると以下の結果が出力され、テーブルに関するメータデータが返されたことを確認できました。

ビューのメタデータの取得
下記の構文をクエリで実行すると
ビューに関する表に示したメタデータが返されます。
列名 | データ型 | 値 |
---|
table_catalog | STRING | データセットを含むプロジェクトのプロジェクトの名前 |
table_schema | STRING | ビューを含むデータセットの名前 |
table_name | STRING | ビューの名前 |
table_type | STRING | テーブルタイプ |
view_definition | STRING | ビューを定義する SQL クエリ |
check_option | STRING | 常に NUll |
use_standard_sql | STRING | 標準 SQL クエリでビューが作成された場合は YES、useLegacySql が true に設定されている場合は NO |
今回は、INFORMATION_SCHEMA を使ってデータセット、テーブル、ビューの情報を取得しました。INFORMATION_SCHEMA を使うことで、このほかにも実行されたクエリやユーザーごとの料金なども調べることができますので、機会があればやってみたいと思います。
参考