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 IAM de proprietário de dados do BigQuery (roles/bigquery.dataOwner) 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 de linhas processadas a partir desta tabela pela tarefa.
total_bytes_processed INTEGER O total de bytes processados a partir desta tabela pela tarefa.

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 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`.

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"