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