Visualização TABLE_STORAGE_USAGE_TIMELINE

A visualização INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE apresenta os totais diários de uso de armazenamento nos últimos 90 dias para os seguintes tipos de tabelas:

  • Tabelas padrão
  • Visualizações materializadas
  • Clonagens de tabelas com um delta em bytes da tabela base
  • Snapshots da tabela que têm um delta em bytes da tabela base

As tabelas que não têm bytes faturáveis não são incluídas na visualização INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE. Isso inclui os seguintes tipos de tabelas:

  • Tabelas externas
  • Tabelas anônimas
  • Tabelas vazias
  • Clonagens de tabela que não têm delta em bytes da tabela base
  • Snapshots da tabela que não têm delta em bytes da tabela base

Quando você consulta a visualização INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE, os resultados da consulta contêm uma linha por dia para cada tabela ou visualização materializada do projeto atual.

Os dados nesta tabela não são mantidos em tempo real. Leva aproximadamente 72 horas para que os dados da tabela apareçam nessa visualização.

O uso do armazenamento é retornado em MiB de segundo. Por exemplo, se um projeto usar 1.000.000 bytes físicos por 86.400 segundos (24 horas), o uso físico total será de 86.400.000.000 bytes em segundos, que são convertidos em 82.397 MiB em segundos, conforme mostrado no exemplo a seguir:

86,400,000,000 / 1,024 / 1,024 = 82,397

Esse é o valor que seria retornado pela coluna BILLABLE_TOTAL_PHYSICAL_USAGE.

Para mais informações, consulte preços de armazenamento.

Permissões necessárias

Para consultar a visualização INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE, você precisa das seguintes permissões do Identity and Access Management (IAM):

  • bigquery.tables.get
  • bigquery.tables.list

Cada um dos seguintes papéis predefinidos do IAM inclui as permissões anteriores:

  • roles/bigquery.dataViewer
  • roles/bigquery.dataEditor
  • roles/bigquery.metadataViewer
  • roles/bigquery.admin

Para consultas com um qualificador de região, é preciso ter permissões para o projeto.

Para mais informações sobre as permissões do BigQuery, consulte Controle de acesso com o IAM.

Esquema

A visualização INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE tem o seguinte esquema:

USAGE_DATE DATE A data de faturamento dos bytes mostrados, usando o fuso horário America/Los_Angeles
PROJECT_ID STRING O ID do projeto que contém o conjunto de dados
TABLE_CATALOG STRING O ID do projeto que contém o conjunto de dados
PROJECT_NUMBER INT64 O número do projeto que contém o conjunto de dados
TABLE_SCHEMA STRING O nome do conjunto de dados que contém a tabela ou a visualização materializada, também conhecido como datasetId
TABLE_NAME STRING O nome da tabela ou visualização materializada, também conhecido como tableId
BILLABLE_TOTAL_LOGICAL_USAGE INT64

O uso lógico total, em MiB por segundo.

Retorna 0 se o conjunto de dados usar o modelo de faturamento do armazenamento físico.

BILLABLE_ACTIVE_LOGICAL_USAGE INT64

O uso lógico de menos de 90 dias, em MiB por segundo.

Retorna 0 se o conjunto de dados usar o modelo de faturamento do armazenamento físico.

BILLABLE_LONG_TERM_LOGICAL_USAGE INT64

O uso lógico de mais de 90 dias, em MiB por segundo.

Retorna 0 se o conjunto de dados usar o modelo de faturamento do armazenamento físico.

BILLABLE_TOTAL_PHYSICAL_USAGE INT64

O uso total em MiB por segundo. Isso inclui bytes físicos usados para armazenamento seguro e de viagem no tempo.

Retorna 0 se o conjunto de dados usar o modelo de faturamento de armazenamento lógico.

BILLABLE_ACTIVE_PHYSICAL_USAGE INT64

O uso físico com menos de 90 dias, em MiB por segundo. Isso inclui bytes físicos usados para armazenamento seguro e de viagem no tempo.

Retorna 0 se o conjunto de dados usar o modelo de faturamento de armazenamento lógico.

BILLABLE_LONG_TERM_PHYSICAL_USAGE INT64

O uso físico com mais de 90 dias, em MiB por segundo.

Retorna 0 se o conjunto de dados usar o modelo de faturamento de armazenamento lógico.

Escopo e sintaxe

As consultas nessa visualização precisam incluir um qualificador de região. A tabela a seguir explica o escopo da região dessa visualização:

Nome da visualização Escopo do recurso Escopo da região
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE[_BY_PROJECT] Nível do projeto REGION
Substitua:

  • Opcional: PROJECT_ID: o ID do seu projeto do Google Cloud. Se não for especificado, o projeto padrão será usado.

  • REGION: qualquer nome da região do conjunto de dados. Por exemplo, `region-us`.

  • O exemplo a seguir mostra como retornar informações de armazenamento para tabelas em um projeto especificado:

    SELECT * FROM myProject.`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE;
    

    O exemplo a seguir mostra como retornar informações de armazenamento para tabelas em uma região especificada:

    SELECT * FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE;
    

    Exemplos

    Exemplo 1

    O exemplo a seguir soma o uso de armazenamento por dia para projetos em uma região especificada.

    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;

    O resultado será semelhante ao seguinte:

    +-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+
    | 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                                   |
    +-------------------------+------------------------------+-------------------------------+-----------------------------------+-------------------------------+--------------------------------+-------------------------------------+
    

    Exemplo 2

    No exemplo a seguir, mostramos o uso do armazenamento para um dia específico em tabelas em um conjunto de dados que usa armazenamento lógico.

    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;

    O resultado será semelhante ao seguinte:

    +--------------+--------------+------------+------------------------------+
    | 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                 |
    +--------------+--------------+------------+------------------------------+
    

    Exemplo 3:

    No exemplo a seguir, mostramos o uso de armazenamento para a data de uso mais recente para tabelas em um conjunto de dados que usa armazenamento físico.

    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;

    O resultado será semelhante ao seguinte:

    +--------------+--------------+------------+-------------------------------+
    | 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                 |
    +--------------+--------------+------------+-------------------------------+
    

    Exemplo 4

    O exemplo a seguir mescla as classes TABLE_OPTIONS e TABLE_STORAGE_USAGE_TIMELINE visualizações para conferir os detalhes de uso do armazenamento com base em tags.

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