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 時間かかります。

ストレージ使用量は MB 秒で返されます。たとえば、プロジェクトが 1,000,000 物理バイトを 86,400 秒(24 時間)使用している場合、物理使用量の合計は 86,400,000,000 バイト秒となり、次の例のように 82,397 MB 秒に変換されます。

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 表示されたバイト数に対する課金日
PROJECT_ID STRING データセットを含むプロジェクトのプロジェクト ID
TABLE_CATALOG STRING データセットを含むプロジェクトのプロジェクト ID
PROJECT_NUMBER INT64 データセットを含むプロジェクトのプロジェクト番号
TABLE_SCHEMA STRING テーブルやマテリアライズド ビューを含むデータセットの名前(datasetId とも呼ばれる)
TABLE_NAME STRING テーブルまたはマテリアライズド ビューの名前(tableId とも呼ばれる)
BILLABLE_TOTAL_LOGICAL_USAGE INT64

論理使用量の合計(MB 秒)。

データセットが物理ストレージの課金モデルを使用している場合は 0 を返します。

BILLABLE_ACTIVE_LOGICAL_USAGE INT64

90 日を経過していない論理使用量(MB 秒単位)。

データセットが物理ストレージの課金モデルを使用している場合は 0 を返します。

BILLABLE_LONG_TERM_LOGICAL_USAGE INT64

90 日以上経過した論理使用量(MB 秒単位)。

データセットが物理ストレージの課金モデルを使用している場合は 0 を返します。

BILLABLE_TOTAL_PHYSICAL_USAGE INT64

合計使用量(MB 秒)。これには、フェイルセーフとタイムトラベル ストレージに使用される物理バイトが含まれます。

データセットが論理ストレージの課金モデルを使用している場合は 0 を返します。

BILLABLE_ACTIVE_PHYSICAL_USAGE INT64

90 日を経過していない物理使用量(MB 秒単位)。これには、フェイルセーフとタイムトラベル ストレージに使用される物理バイトが含まれます。

データセットが論理ストレージの課金モデルを使用している場合は 0 を返します。

BILLABLE_LONG_TERM_PHYSICAL_USAGE INT64

90 日以上経過した物理使用量(MB 秒)。

データセットが論理ストレージの課金モデルを使用している場合は 0 を返します。

スコープと構文

このビューに対するクエリでは、リージョン修飾子を指定する必要があります。次の表に、このビューのリージョン スコープを示します。

ビュー名 リソース スコープ リージョン スコープ
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE[_BY_PROJECT] プロジェクト レベル REGION
次のように置き換えます。

  • 省略可: PROJECT_ID: Google Cloud プロジェクトの ID。指定しない場合は、デフォルトのプロジェクトが使用されます。

次の例では、指定したプロジェクトのテーブルのストレージ情報を返す方法を示します。

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\")')