MATERIALIZED_VIEWS ビュー
INFORMATION_SCHEMA.MATERIALIZED_VIEWS
ビューには、マテリアライズド ビューのステータスが含まれます。
必要な権限
INFORMATION_SCHEMA.MATERIALIZED_VIEWS
ビューにクエリを実行するために必要な権限を取得するには、プロジェクトまたはデータセットに対する BigQuery メタデータ閲覧者(roles/bigquery.metadataViewer
) IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
この事前定義ロールには、INFORMATION_SCHEMA.MATERIALIZED_VIEWS
ビューにクエリを実行するために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
INFORMATION_SCHEMA.MATERIALIZED_VIEWS
ビューにクエリを実行するには、次の権限が必要です。
-
bigquery.tables.get
-
bigquery.tables.list
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
BigQuery の権限の詳細については、IAM でのアクセス制御をご覧ください。スキーマ
INFORMATION_SCHEMA.MATERIALIZED_VIEWS
ビューにクエリを実行すると、データセット内の各マテリアライズド ビューごとに 1 行が表示されるクエリ結果が返されます。
INFORMATION_SCHEMA.MATERIALIZED_VIEWS
ビューのスキーマは次のとおりです。
列名 | データ型 | 値 |
---|---|---|
TABLE_CATALOG |
STRING |
データセットを含むプロジェクトの名前。 projectId と参照されることもあります。 |
TABLE_SCHEMA |
STRING |
マテリアライズド ビューを含むデータセットの名前。datasetId と参照されることもあります。 |
TABLE_NAME |
STRING |
マテリアライズド ビューの名前。tableId と参照されることもあります。 |
LAST_REFRESH_TIME |
TIMESTAMP |
このマテリアライズド ビューが最後に更新された時刻。 |
REFRESH_WATERMARK |
TIMESTAMP |
マテリアライズド ビューの更新ウォーターマーク。現時点までのマテリアライズド ビューのベーステーブルに含まれるデータは、マテリアライズド ビューのキャッシュに含まれます。 |
LAST_REFRESH_STATUS |
RECORD |
最後の自動更新ジョブのエラー結果(ErrorProto オブジェクト)。これが存在する場合は、最後の自動更新が失敗したことを示します。 |
スコープと構文
このビューに対するクエリでは、データセット修飾子またはリージョン修飾子を指定する必要があります。データセット修飾子が指定されたクエリの場合は、データセットに対する権限が必要です。リージョン修飾子が指定されたクエリの場合は、プロジェクトに対する権限が必要です。 詳細については、構文をご覧ください。次の表に、このビューのリージョン スコープとリソース スコープを示します。
ビュー名 | リソース スコープ | リージョン スコープ |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.MATERIALIZED_VIEWS |
プロジェクト レベル | REGION |
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.MATERIALIZED_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.MATERIALIZED_VIEWS;
-- Returns metadata for all views in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.MATERIALIZED_VIEWS;
Examples
例 1:
次の例では、異常なマテリアライズド ビューをすべて INFORMATION_SCHEMA.MATERIALIZED_VIEWS
ビューから取得します。デフォルト プロジェクト(myproject
)の mydataset
にある、非 NULL
の last_refresh_status
値を持つマテリアライズド ビューが返されます。
デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、`project_id`.dataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS
の形式でそのプロジェクト ID をデータセットに追加します。たとえば、`myproject`.mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS
です。
SELECT table_name, last_refresh_status FROM mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS WHERE last_refresh_status IS NOT NULL;
次のような結果になります。
+---------------+---------------------------------------------------------------------+ | table_name | last_refresh_status | +---------------------------------------------------------------------+---------------+ | myview | {"reason":"invalidQuery","location":"query","message":"..."} | +---------------------------------------------------------------------+---------------+
例 2:
次の例では、デフォルト プロジェクト(myproject
)の mydataset
にあるマテリアライズド ビュー myview
の last_refresh_time
と refresh_watermark
を取得します。結果には、マテリアライズドが最後に更新された日時と、ベーステーブルのデータがマテリアライズド ビューのキャッシュに収集された日時が表示されます。
デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、`project_id`.dataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS
の形式でそのプロジェクト ID をデータセットに追加します。たとえば、`myproject`.mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS
です。
SELECT table_name, last_refresh_time, refresh_watermark FROM mydataset.INFORMATION_SCHEMA.MATERIALIZED_VIEWS WHERE table_name = 'myview';
次のような結果になります。
+---------------+------------------------------------------------+ | table_name | last_refresh_time | refresh_watermark | +---------------+------------------------------------------------+ | myview | 2023-02-22 19:37:17 | 2023-03-08 16:52:57 | +---------------+------------------------------------------------+