VIEWS ビュー
INFORMATION_SCHEMA.VIEWS
ビューには、ビューに関するメタデータが含まれます。
必要な権限
ビューのメタデータを取得するには、次の Identity and Access Management(IAM)権限が必要です。
bigquery.tables.get
bigquery.tables.list
次の IAM 事前定義ロールには、ビュー メタデータを取得するために必要な権限が含まれています。
roles/bigquery.admin
roles/bigquery.dataEditor
roles/bigquery.metadataViewer
roles/bigquery.dataViewer
BigQuery の権限の詳細については、IAM でのアクセス制御をご覧ください。
スキーマ
INFORMATION_SCHEMA.VIEWS
ビューにクエリを実行すると、データセット内の各ビューごとに 1 行が表示されるクエリ結果が返されます。
INFORMATION_SCHEMA.VIEWS
ビューのスキーマは次のとおりです。
列名 | データ型 | 値 |
---|---|---|
TABLE_CATALOG |
STRING |
データセットを含むプロジェクトの名前 |
TABLE_SCHEMA |
STRING |
ビューを含むデータセットの名前(データセット id ともいいます) |
TABLE_NAME |
STRING |
ビューの名前(テーブル id ともいいます) |
VIEW_DEFINITION |
STRING |
ビューを定義する SQL クエリ |
CHECK_OPTION |
STRING |
常に NULL が返されます。 |
USE_STANDARD_SQL |
STRING |
YES (GoogleSQL クエリを使用してビューを作成した場合)。useLegacySql が true に設定されている場合は NO |
スコープと構文
このビューに対するクエリでは、データセット修飾子またはリージョン修飾子を指定する必要があります。データセット修飾子が指定されたクエリの場合は、データセットに対する権限が必要です。リージョン修飾子が指定されたクエリの場合は、プロジェクトに対する権限が必要です。詳細については、構文をご覧ください。次の表に、このビューのリージョン スコープとリソース スコープを示します。
ビュー名 | リソース スコープ | リージョン スコープ |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.VIEWS |
プロジェクト レベル | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.VIEWS |
データセット レベル | データセットのロケーション |
省略可: PROJECT_ID
: Google Cloud プロジェクトの ID。指定しない場合は、デフォルトのプロジェクトが使用されます。
REGION
: 任意のデータセット リージョン名。例:`region-us`
DATASET_ID
: データセットの ID詳しくは、データセット修飾子をご覧ください。
次に例を示します。
-- Returns metadata for views in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.VIEWS;
-- Returns metadata for all views in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.VIEWS;
Examples
例 1:
次の例では、今後の使用のために予約されている check_option
を除き、すべての列を INFORMATION_SCHEMA.VIEWS
ビューから取得します。デフォルト プロジェクト(myproject
)にある mydataset
内のすべてのビューに対するメタデータが返されます。
デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、`project_id`.dataset.INFORMATION_SCHEMA.view
の形式でそのプロジェクト ID をデータセットに追加します。たとえば、`myproject`.mydataset.INFORMATION_SCHEMA.VIEWS
です。
SELECT * EXCEPT (check_option) FROM mydataset.INFORMATION_SCHEMA.VIEWS;
次のような結果になります。
+----------------+---------------+---------------+---------------------------------------------------------------------+------------------+ | table_catalog | table_schema | table_name | view_definition | use_standard_sql | +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+ | myproject | mydataset | myview | SELECT column1, column2 FROM [myproject:mydataset.mytable] LIMIT 10 | NO | +----------------+---------------+---------------+---------------------------------------------------------------------+------------------+
結果から、このビューはレガシー SQL クエリを使用して作成されたことがわかります。
例 2:
次の例では、デフォルト プロジェクト(myproject
)で mydataset
の myview
の定義に使用する SQL クエリとクエリ構文を取得します。
デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、`project_id`.dataset.INFORMATION_SCHEMA.view
の形式でそのプロジェクト ID をデータセットに追加します。たとえば、`myproject`.mydataset.INFORMATION_SCHEMA.VIEWS
です。
SELECT table_name, view_definition, use_standard_sql FROM mydataset.INFORMATION_SCHEMA.VIEWS WHERE table_name = 'myview';
次のような結果になります。
+---------------+---------------------------------------------------------------+------------------+
| table_name | view_definition | use_standard_sql |
+---------------+---------------------------------------------------------------+------------------+
| myview | SELECT column1, column2, column3 FROM mydataset.mytable
| YES |
+---------------+---------------------------------------------------------------+------------------+
結果から、このビューは GoogleSQL クエリを使用して作成されたことがわかります。