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 MB 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 MB 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 para os bytes mostrados |
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 MB de 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 MB 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 MB 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 MB 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 em menos de 90 dias, em MB 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 MB de 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 |
- 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\")')