Vista INFORMATION_SCHEMA.SHARED_DATASET_USAGE

A vista INFORMATION_SCHEMA.SHARED_DATASET_USAGE contém os metadados praticamente em tempo real sobre o consumo das tabelas do seu conjunto de dados partilhado. Para começar a partilhar os seus dados entre organizações, consulte o artigo Partilha do BigQuery (anteriormente Analytics Hub).

Funções necessárias

Para receber a autorização de que precisa para consultar a vista INFORMATION_SCHEMA.SHARED_DATASET_USAGE, peça ao seu administrador para lhe conceder a função de proprietário de dados do BigQuery (roles/bigquery.dataOwner) do IAM no seu projeto de origem. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Esta função predefinida contém a autorização bigquery.datasets.listSharedDatasetUsage , que é necessária para consultar a vista INFORMATION_SCHEMA.SHARED_DATASET_USAGE.

Também pode obter esta autorização com funções personalizadas ou outras funções predefinidas.

Esquema

Os dados subjacentes são particionados pela coluna job_start_time e agrupados por project_id e dataset_id.

O INFORMATION_SCHEMA.SHARED_DATASET_USAGE tem o seguinte esquema:

Nome da coluna Tipo de dados Valor
project_id STRING (Coluna de clustering) O ID do projeto que contém o conjunto de dados partilhado.
dataset_id STRING (Coluna de agrupamento) O ID do conjunto de dados partilhado.
table_id STRING O ID da tabela acedida.
data_exchange_id STRING O caminho do recurso da troca de dados.
listing_id STRING O caminho do recurso da ficha.
job_start_time TIMESTAMP (Coluna de partição) A hora de início desta tarefa.
job_end_time TIMESTAMP A hora de fim desta tarefa.
job_id STRING O ID da tarefa. Por exemplo, bquxjob_1234.
job_project_number INTEGER O número do projeto ao qual esta tarefa pertence.
job_location STRING A localização do trabalho.
linked_project_number INTEGER O número do projeto do subscritor.
linked_dataset_id STRING O ID do conjunto de dados associado do conjunto de dados do subscritor.
subscriber_org_number INTEGER O número da organização na qual a tarefa foi executada. Este é o número da organização do subscritor. Este campo está vazio para projetos que não têm uma organização.
subscriber_org_display_name STRING Uma string legível que se refere à organização na qual a tarefa foi executada. Este é o número da organização do subscritor. Este campo está vazio para projetos que não têm uma organização.
job_principal_subject STRING O identificador principal (ID de email do utilizador, conta de serviço, ID de email do grupo, domínio) dos utilizadores que executam tarefas e consultas em conjuntos de dados associados.
num_rows_processed INTEGER O número total de linhas processadas pelas tabelas base referenciadas pelo recurso consultado.
total_bytes_processed INTEGER O número total de bytes processados pelas tabelas base referenciadas pelo recurso consultado.
shared_resource_id STRING O ID do recurso consultado (tabela, vista ou rotina).
shared_resource_type STRING O tipo de recurso consultado. Por exemplo, TABLE, EXTERNAL_TABLE, VIEW, MATERIALIZED_VIEW, TABLE_VALUED_FUNCTION ou SCALAR_FUNCTION.
referenced_tables RECORD REPEATED Contém os campos project_id, dataset_id, table_id e processed_bytes da tabela base.

Retenção de dados

A vista INFORMATION_SCHEMA.SHARED_DATASET_USAGE contém tarefas em execução e o histórico de tarefas dos últimos 180 dias.

Âmbito e sintaxe

As consultas nesta vista têm de incluir um qualificador de região. Se não especificar um qualificador regional, os metadados são obtidos da região dos EUA. A tabela seguinte explica o âmbito da região para esta vista:

Nome da vista Âmbito do recurso Âmbito da região
[PROJECT_ID.]INFORMATION_SCHEMA.SHARED_DATASET_USAGE Nível do projeto Região dos EUA
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE Nível do projeto REGION
Substitua o seguinte:
  • Opcional: PROJECT_ID: o ID do seu projeto do Google 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`.

Exemplos

Para executar a consulta num projeto que não seja o seu projeto predefinido, adicione o ID do projeto no seguinte formato:

PROJECT_ID.region-REGION_NAME.INFORMATION_SCHEMA.SHARED_DATASET_USAGE

Por exemplo, myproject.region-us.INFORMATION_SCHEMA.SHARED_DATASET_USAGE.

Obter o número total de tarefas executadas em todas as tabelas partilhadas

O exemplo seguinte calcula o total de tarefas executadas pelos subscritores de um projeto:

SELECT   COUNT(DISTINCT job_id) AS num_jobs FROM   `region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE

O resultado é semelhante ao seguinte:

 +------------+ | num_jobs   | +------------+ | 1000       | +------------+ 

Para verificar o total de tarefas executadas pelos subscritores, use a cláusula WHERE:

  • Para conjuntos de dados, use WHERE dataset_id = "...".
  • Para tabelas, use WHERE dataset_id = "..." AND table_id = "...".

Obtenha a tabela mais usada com base no número de linhas processadas

A seguinte consulta calcula a tabela mais usada com base no número de linhas processadas pelos subscritores.

SELECT   dataset_id,   table_id,   SUM(num_rows_processed) AS usage_rows FROM   `region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE GROUP BY   1,   2 ORDER BY   3 DESC LIMIT   1

O resultado é semelhante ao seguinte:

 +---------------+-------------+----------------+ | dataset_id    | table_id      | usage_rows     | +---------------+-------------+----------------+ | mydataset     | mytable     | 15             | +---------------+-------------+----------------+ 

Encontre as principais organizações que consomem as suas tabelas

A seguinte consulta calcula os principais subscritores com base no número de bytes processados das suas tabelas. Também pode usar a coluna num_rows_processed como uma métrica.

SELECT   subscriber_org_number,   ANY_VALUE(subscriber_org_display_name) AS subscriber_org_display_name,   SUM(total_bytes_processed) AS usage_bytes FROM   `region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE GROUP BY   1

O resultado é semelhante ao seguinte:

 +--------------------------+--------------------------------+----------------+ |subscriber_org_number     | subscriber_org_display_name    | usage_bytes    | +-----------------------------------------------------------+----------------+ | 12345                    | myorganization                 | 15             | +--------------------------+--------------------------------+----------------+ 

Para subscritores sem uma organização, pode usar job_project_number em vez de subscriber_org_number.

Aceda às métricas de utilização da sua troca de dados

Se a sua troca de dados e conjunto de dados de origem estiverem em projetos diferentes, siga estes passos para ver as métricas de utilização da sua troca de dados:

  1. Encontre todas as fichas que pertencem à sua troca de dados.
  2. Recuperar o conjunto de dados de origem anexado à ficha.
  3. Para ver as métricas de utilização da sua troca de dados, use a seguinte consulta:
SELECT   * FROM   source_project_1.`region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE WHERE   dataset_id='source_dataset_id' AND data_exchange_id="projects/4/locations/us/dataExchanges/x1" UNION ALL SELECT   * FROM   source_project_2.`region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE WHERE   dataset_id='source_dataset_id' AND data_exchange_id="projects/4/locations/us/dataExchanges/x1"

Obtenha métricas de utilização para visualizações partilhadas

A consulta seguinte apresenta as métricas de utilização de todas as visualizações partilhadas presentes num projeto:

SELECT   project_id,   dataset_id,   table_id,   num_rows_processed,   total_bytes_processed,   shared_resource_id,   shared_resource_type,   referenced_tables FROM `myproject`.`region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE WHERE shared_resource_type = 'VIEW'

O resultado é semelhante ao seguinte:

 +---------------------+----------------+----------+--------------------+-----------------------+--------------------+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |     project_id      |   dataset_id   | table_id | num_rows_processed | total_bytes_processed | shared_resource_id | shared_resource_type |                                                                                                              referenced_tables                                                                                                              | +---------------------+----------------+----------+--------------------+-----------------------+--------------------+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ |     myproject       | source_dataset | view1    |                  6 |                    38 | view1              | VIEW                 | [{"project_id":"myproject","dataset_id":"source_dataset","table_id":"test_table","processed_bytes":"21"}, {"project_id":"bq-dataexchange-exp","dataset_id":"other_dataset","table_id":"other_table","processed_bytes":"17"}]                 |  +---------------------+----------------+----------+--------------------+-----------------------+--------------------+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 

Obtenha métricas de utilização para funções de valor de tabela partilhadas

A consulta seguinte apresenta as métricas de utilização de todas as funções com valor de tabela partilhadas presentes num projeto:

SELECT   project_id,   dataset_id,   table_id,   num_rows_processed,   total_bytes_processed,   shared_resource_id,   shared_resource_type,   referenced_tables FROM `myproject`.`region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE WHERE shared_resource_type = 'TABLE_VALUED_FUNCTION'

O resultado é semelhante ao seguinte:

 +---------------------+----------------+----------+--------------------+-----------------------+--------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------+ |     project_id      |   dataset_id   | table_id | num_rows_processed | total_bytes_processed | shared_resource_id | shared_resource_type  |                                                  referenced_tables                                                  | +---------------------+----------------+----------+--------------------+-----------------------+--------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------+ |     myproject       | source_dataset |          |                  3 |                    45 | provider_exp       | TABLE_VALUED_FUNCTION | [{"project_id":"myproject","dataset_id":"source_dataset","table_id":"test_table","processed_bytes":"45"}]           | +---------------------+----------------+----------+--------------------+-----------------------+--------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------+