Vista TABLE_STORAGE_USAGE_TIMELINE

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

  • Tabelas padrão
  • Vistas materializadas
  • Clones de tabelas que têm uma diferença em bytes da tabela de base
  • Instantâneos de tabelas que têm uma diferença em bytes da tabela de base

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

  • Tabelas externas
  • Tabelas anónimas
  • Tabelas vazias
  • Clones de tabelas que não têm delta em bytes da tabela de base
  • Instantâneos de tabelas que não têm delta em bytes da tabela de base

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

Os dados nesta tabela não são mantidos em tempo real. Os dados da tabela demoram aproximadamente 72 horas a ser refletidos nesta vista.

A utilização de armazenamento é devolvida em MiB por segundo. Por exemplo, se um projeto usar 1.000.000 de bytes físicos durante 86.400 segundos (24 horas), a utilização física total é de 86.400.000.000 de bytes por segundo, que é convertida em 82.397 MiB por segundo, conforme mostrado no exemplo seguinte:

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

Este é o valor que seria devolvido pela coluna BILLABLE_TOTAL_PHYSICAL_USAGE.

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

Autorizações necessárias

Para consultar a visualização de propriedade INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE, precisa das seguintes autorizações de gestão de identidade e de acesso (IAM):

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

Cada uma das seguintes funções de IAM predefinidas inclui as autorizações anteriores:

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

Para consultas com um qualificador de região, tem de ter autorizações para o projeto.

Para mais informações sobre as autorizações do BigQuery, consulte o artigo Controlo de acesso com a IAM.

Esquema

A vista INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE tem o seguinte esquema:

USAGE_DATE DATE A data de faturação dos bytes apresentados, usando o America/Los_Angeles fuso horário
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 vista materializada, também conhecido como datasetId
TABLE_NAME STRING O nome da tabela ou da vista materializada, também conhecido como tableId
BILLABLE_TOTAL_LOGICAL_USAGE INT64

A utilização lógica total, em segundos de MiB.

Devolve 0 se o conjunto de dados usar o modelo de faturação de armazenamento físico.

BILLABLE_ACTIVE_LOGICAL_USAGE INT64

A utilização lógica com menos de 90 dias, em MiB/segundo.

Devolve 0 se o conjunto de dados usar o modelo de faturação de armazenamento físico.

BILLABLE_LONG_TERM_LOGICAL_USAGE INT64

A utilização lógica com mais de 90 dias, em MiB/segundo.

Devolve 0 se o conjunto de dados usar o modelo de faturação de armazenamento físico.

BILLABLE_TOTAL_PHYSICAL_USAGE INT64

A utilização total em MiB segundo. Isto inclui: bytes físicos usados para segurança e armazenamento de viagem no tempo.

Devolve 0 se o conjunto de dados usar o modelo de faturação de armazenamento lógico.

BILLABLE_ACTIVE_PHYSICAL_USAGE INT64

A utilização física com menos de 90 dias, em segundos MiB. Isto inclui os bytes físicos usados para armazenamento à prova de falhas e de viagem no tempo.

Devolve 0 se o conjunto de dados usar o modelo de faturação de armazenamento lógico.

BILLABLE_LONG_TERM_PHYSICAL_USAGE INT64

A utilização física com mais de 90 dias, em segundos MiB.

Devolve 0 se o conjunto de dados usar o modelo de faturação de armazenamento lógico.

Âmbito e sintaxe

As consultas nesta vista têm de incluir um qualificador de região. A tabela seguinte explica o âmbito da região para esta vista:

Nome da visualização de propriedade Âmbito do recurso Âmbito da região
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_USAGE_TIMELINE[_BY_PROJECT] Nível do projeto REGION
Substitua o seguinte:
  • Opcional: PROJECT_ID: o ID do seu projeto do Trusted Cloud Google Cloud. Se não for especificado, é usado o projeto predefinido.
  • REGION: qualquer nome da região do conjunto de dados. Por exemplo, `region-us`.

O exemplo seguinte mostra como devolver informações de armazenamento para tabelas num projeto especificado:

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

O exemplo seguinte mostra como devolver informações de armazenamento para tabelas numa região especificada:

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

Exemplos

INFORMATION_SCHEMA

Exemplo 1

O exemplo seguinte soma a utilização do armazenamento por dia para projetos numa 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 é 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

O exemplo seguinte mostra a utilização do armazenamento para um dia especificado para tabelas num conjunto de dados que usa o 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 é 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

O exemplo seguinte mostra a utilização do armazenamento para a data de utilização mais recente para tabelas num 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 é 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 seguinte junta as vistas TABLE_OPTIONS e TABLE_STORAGE_USAGE_TIMELINE para obter detalhes de utilização do armazenamento com base em etiquetas.

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