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