TABLE_STORAGE_USAGE_TIMELINE ビュー
INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE
ビューには、次のタイプのテーブルの過去 90 日間のストレージ使用量が日単位の合計で表示されます。
- 標準テーブル
- マテリアライズド ビュー
- ベーステーブルからのバイト単位の差分があるテーブル クローン
- ベーステーブルからのバイト単位の差分があるテーブル スナップショット
課金対象のバイト数がないテーブルは、INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE
ビューに含まれません。これには、次のタイプのテーブルが該当します。
- 外部テーブル
- 匿名テーブル
- 空のテーブル
- ベーステーブルからのバイト単位の差分がないテーブル クローン
- ベーステーブルからのバイト単位の差分がないテーブル スナップショット
INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE
ビューにクエリを実行すると、クエリの結果には現在のプロジェクトのテーブルまたはマテリアライズド・ビューごとに、1 日ごとに 1 行が表示されます。
このテーブルのデータはリアルタイムでは保持されません。テーブルデータがこのビューに反映されるまでに約 72 時間かかります。
ストレージ使用量は MiB 秒で返されます。たとえば、プロジェクトが 1,000,000 物理バイトを 86,400 秒(24 時間)使用している場合、物理使用量の合計は 86,400,000,000 バイト秒となり、次の例のように 82,397 MiB 秒に変換されます。
86,400,000,000 / 1,024 / 1,024 = 82,397
これが、BILLABLE_TOTAL_PHYSICAL_USAGE
列によって返される値です。
詳細については、ストレージ料金の詳細をご覧ください。
必要な権限
INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE
ビューをクエリするには、次の Identity and Access Management(IAM)権限が必要です。
bigquery.tables.get
bigquery.tables.list
次の各 IAM 事前定義ロールには、上の権限が含まれています。
roles/bigquery.dataViewer
roles/bigquery.dataEditor
roles/bigquery.metadataViewer
roles/bigquery.admin
リージョン修飾子が指定されたクエリの場合は、プロジェクトに対する権限が必要です。
BigQuery の権限の詳細については、IAM でのアクセス制御をご覧ください。
スキーマ
INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE
ビューのスキーマは次のとおりです。
USAGE_DATE |
DATE |
表示されたバイト数に対する課金日(America/Los_Angeles タイムゾーンを使用) |
PROJECT_ID |
STRING |
データセットを含むプロジェクトのプロジェクト ID |
TABLE_CATALOG |
STRING |
データセットを含むプロジェクトのプロジェクト ID |
PROJECT_NUMBER |
INT64 |
データセットを含むプロジェクトのプロジェクト番号 |
TABLE_SCHEMA |
STRING |
テーブルやマテリアライズド ビューを含むデータセットの名前(datasetId とも呼ばれる) |
TABLE_NAME |
STRING |
テーブルまたはマテリアライズド ビューの名前(tableId とも呼ばれる) |
BILLABLE_TOTAL_LOGICAL_USAGE |
INT64 |
論理使用量の合計(MiB 秒)。 データセットが物理ストレージの課金モデルを使用している場合は 0 を返します。 |
BILLABLE_ACTIVE_LOGICAL_USAGE |
INT64 |
90 日を経過していない論理使用量(MiB 秒単位)。 データセットが物理ストレージの課金モデルを使用している場合は 0 を返します。 |
BILLABLE_LONG_TERM_LOGICAL_USAGE |
INT64 |
90 日以上経過した論理使用量(MiB 秒単位)。 データセットが物理ストレージの課金モデルを使用している場合は 0 を返します。 |
BILLABLE_TOTAL_PHYSICAL_USAGE |
INT64 |
合計使用量(MiB 秒)。これには、フェイルセーフとタイムトラベル ストレージに使用される物理バイトが含まれます。 データセットが論理ストレージの課金モデルを使用している場合は 0 を返します。 |
BILLABLE_ACTIVE_PHYSICAL_USAGE |
INT64 |
90 日を経過していない物理使用量(MiB 秒単位)。これには、フェイルセーフとタイムトラベル ストレージに使用される物理バイトが含まれます。 データセットが論理ストレージの課金モデルを使用している場合は 0 を返します。 |
BILLABLE_LONG_TERM_PHYSICAL_USAGE |
INT64 |
90 日以上経過した物理使用量(MiB 秒)。 データセットが論理ストレージの課金モデルを使用している場合は 0 を返します。 |
スコープと構文
このビューに対するクエリでは、リージョン修飾子を指定する必要があります。次の表で、このビューのリージョン スコープを説明します。
ビュー名 | リソース スコープ | リージョン スコープ |
---|---|---|
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE[_BY_PROJECT] |
プロジェクト レベル | REGION |
省略可: PROJECT_ID
: Google Cloud プロジェクトの ID。指定しない場合は、デフォルトのプロジェクトが使用されます。
REGION
: 任意のデータセット リージョン名。例: `region-us`
次の例では、指定したプロジェクトのテーブルのストレージ情報を返す方法を示します。
SELECT * FROM myProject.`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE;
次の例は、指定したリージョンのテーブルのストレージ情報を返す方法を示します。
SELECT * FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE;
例
例 1
次の例では、指定したリージョンのプロジェクトのストレージ使用量を日付ごとに合計します。
SELECT usage_date, project_id, SUM(billable_total_logical_usage) AS billable_total_logical_usage, SUM(billable_active_logical_usage) AS billable_active_logical_usage, SUM(billable_long_term_logical_usage) AS billable_long_term_logical_usage, SUM(billable_total_physical_usage) AS billable_total_physical_usage, SUM(billable_active_physical_usage) AS billable_active_physical_usage, SUM(billable_long_term_physical_usage) AS billable_long_term_physical_usage FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE GROUP BY 1, 2 ORDER BY usage_date;
次のような結果になります。
+-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+ | usage_date | project_id | billable_total_logical_usage | billable_active_logical_usage | billable_long_term_logical_usage | billable_total_physical_usage | billable_active_physical_usage | billable_long_term_physical_usage | +-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+ | 2023-04-03 | project_A | 305085738096 | 7667321458 | 297418416638 | 74823954823 | 124235724 | 74699719099 | +-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+ | 2023-04-04 | project_A | 287033241105 | 7592334614 | 279440906491 | 75071991788 | 200134561 | 74871857227 | +-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+ | 2023-04-03 | project_B | 478173930912 | 8137372626 | 470036558286 | 0 | 0 | 0 | +-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+ | 2023-04-04 | project_B | 496648915405 | 7710451723 | 488938463682 | 0 | 0 | 0 | +-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+
例 2
次の例では、論理ストレージを使用するデータセット内のテーブルの指定された日付のストレージ使用量を示します。
SELECT usage_date, table_schema, table_name, billable_total_logical_usage FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE WHERE project_id = 'PROJECT_ID' AND table_schema = 'DATASET_NAME' AND usage_date = 'USAGE_DATE' ORDER BY billable_total_logical_usage DESC;
次のような結果になります。
+--------------+--------------+------------+------------------------------+ | usage_date | table_schema | table_name | billable_total_logical_usage | +--------------+--------------+------------+------------------------------+ | 2023-04-03 | dataset_A | table_4 | 734893409201 | +--------------+--------------+------------+------------------------------+ | 2023-04-03 | dataset_A | table_1 | 690070445455 | +--------------+--------------+------------+------------------------------+ | 2023-04-03 | dataset_A | table_3 | 52513713981 | +--------------+--------------+------------+------------------------------+ | 2023-04-03 | dataset_A | table_2 | 8894535355 | +--------------+--------------+------------+------------------------------+
例 3
次の例では、物理ストレージを使用するデータセット内のテーブルの最新の使用日のストレージ使用量を示します。
SELECT usage_date, table_schema, table_name, billable_total_physical_usage FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY project_id, table_schema, table_name ORDER BY usage_date DESC) AS rank FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE ) WHERE rank = 1 AND project_id = 'PROJECT_ID' AND table_schema ='DATASET_NAME' ORDER BY usage_date;
次のような結果になります。
+--------------+--------------+------------+-------------------------------+ | usage_date | table_schema | table_name | billable_total_physical_usage | +--------------+--------------+------------+-------------------------------+ | 2023-04-12 | dataset_A | table_4 | 345788341123 | +--------------+--------------+------------+-------------------------------+ | 2023-04-12 | dataset_A | table_1 | 0 | +--------------+--------------+------------+-------------------------------+ | 2023-04-12 | dataset_A | table_3 | 9123481400212 | +--------------+--------------+------------+-------------------------------+ | 2023-04-12 | dataset_A | table_2 | 1451334553 | +--------------+--------------+------------+-------------------------------+
例 4
次の例では、TABLE_OPTIONS
ビューと TABLE_STORAGE_USAGE_TIMELINE
ビューを結合し、タグに基づいてストレージ使用量の詳細を取得します。
SELECT * FROM region-REGION.INFORMATION_SCHEMA.TABLE_OPTIONS INNER JOIN region-REGION.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE USING (TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME) WHERE option_name='tags' AND CONTAINS_SUBSTR(option_value, '(\"tag_namespaced_key\", \"tag_namespaced_value\")')