Visualização INFORMATION_SCHEMA.SHARED_DATASET_USAGE
A visualização INFORMATION_SCHEMA.SHARED_DATASET_USAGE contém os metadados quase em tempo real sobre o consumo das tabelas de conjuntos de dados compartilhados. Para começar a compartilhar seus dados entre organizações, consulte o compartilhamento do BigQuery (antigo Analytics Hub).
Funções exigidas
    
      Para receber a permissão necessária para consultar a visualização INFORMATION_SCHEMA.SHARED_DATASET_USAGE, peça ao administrador para conceder a você o papel do IAM proprietário de dados do BigQuery  (roles/bigquery.dataOwner) no seu projeto de origem.
  
  
  
  
  Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
  
  
      
        Esse papel predefinido contém a
        permissão
         bigquery.datasets.listSharedDatasetUsage
        , que é
          necessária para consultar a visualização INFORMATION_SCHEMA.SHARED_DATASET_USAGE.
      
    
  
  
    
      
Também é possível conseguir essa permissão com papéis personalizados ou outros papéis predefinidos.
Esquema
Os dados subjacentes são particionados pela colunajob_start_time e
agrupados por project_id e dataset_id.
INFORMATION_SCHEMA.SHARED_DATASET_USAGE tem o seguinte esquema:
| Nome da coluna | Tipo de dado | Valor | 
|---|---|---|
project_id
    | 
   STRING
    | 
   (Coluna de clustering) O ID do projeto que contém o conjunto de dados compartilhado. | 
dataset_id
    | 
   STRING
    | 
   (Coluna de clustering) O ID do conjunto de dados compartilhado. | 
table_id
    | 
   STRING
    | 
   O ID da tabela acessada. | 
data_exchange_id
    | 
   STRING
    | 
   O caminho do recurso da troca de dados. | 
listing_id
    | 
   STRING
    | 
   O caminho do recurso da listagem. | 
job_start_time
    | 
   TIMESTAMP
    | 
   (Coluna de particionamento) O horário de início deste job. | 
job_end_time
    | 
   TIMESTAMP
    | 
   O horário de término deste job. | 
job_id
    | 
   STRING
    | 
   O ID do job. Por exemplo, bquxjob_1234. | 
job_project_number
    | 
   INTEGER
    | 
   O número do projeto a que este job pertence. | 
job_location
    | 
   STRING
    | 
   O local do job. | 
linked_project_number
    | 
   INTEGER
    | 
   O número do projeto do assinante. | 
linked_dataset_id
    | 
   STRING
    | 
   O ID do conjunto de dados vinculado do conjunto de dados do assinante. | 
subscriber_org_number
    | 
   INTEGER
    | 
   O número da organização em que o job foi executado. Esse é o número da organização do assinante. Este campo está vazio para projetos que não têm uma organização. | 
subscriber_org_display_name
    | 
   STRING
    | 
   Uma string legível por humanos que se refere à organização em que o job foi executado. Esse é o número da organização do assinante. Este campo está vazio para projetos que não têm uma organização. | 
job_principal_subject
     | 
    STRING
     | 
    O identificador principal (ID de e-mail do usuário, conta de serviço, ID de e-mail do grupo, domínio) dos usuários que executam jobs e consultas em conjuntos de dados vinculados. | 
num_rows_processed
    | 
   INTEGER
    | 
   O número total de linhas processadas pelas tabelas de base referenciadas pelo recurso consultado. | 
total_bytes_processed
    | 
   INTEGER
    | 
   O número total de bytes processados pelas tabelas de base referenciadas pelo recurso consultado. | 
shared_resource_id
    | 
   STRING
    | 
   O ID do recurso consultado (tabela, visualização ou rotina). | 
shared_resource_type
    | 
   STRING
    | 
   O tipo do 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 de base.
    | 
  
Retenção de dados
A visualização INFORMATION_SCHEMA.SHARED_DATASET_USAGE contém jobs
em execução e o histórico de jobs dos últimos 180 dias.
Escopo e sintaxe
As consultas nessa visualização precisam incluir um qualificador de região. Se você não especificar um qualificador regional, os metadados serão recuperados da região dos EUA. A tabela a seguir explica o escopo da região dessa visualização:
| Mostrar nome | Escopo do recurso | Escopo 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 | 
  
- 
  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`. 
Exemplos
Para executar a consulta em um projeto diferente do projeto padrão, 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.
Conferir o número total de jobs executados em todas as tabelas compartilhadas
O exemplo a seguir calcula o total de jobs executados por assinantes em um projeto:
SELECT COUNT(DISTINCT job_id) AS num_jobs FROM `region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE
O resultado será semelhante ao seguinte:
+------------+ | num_jobs | +------------+ | 1000 | +------------+
Para verificar o total de jobs executados pelos assinantes, use a cláusula WHERE:
- Para conjuntos de dados, use 
WHERE dataset_id = "...". - Para tabelas, use 
WHERE dataset_id = "..." AND table_id = "...". 
Acessar a tabela mais usada com base no número de linhas processadas
A consulta a seguir calcula a tabela mais usada com base no número de linhas processadas pelos assinantes.
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 será assim:
+---------------+-------------+----------------+ | dataset_id | table_id | usage_rows | +---------------+-------------+----------------+ | mydataset | mytable | 15 | +---------------+-------------+----------------+
Encontrar as principais organizações que consomem suas tabelas
A consulta a seguir calcula os principais assinantes com base no número de bytes processados nas tabelas. Também é possível usar a coluna num_rows_processed como
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 será assim:
+--------------------------+--------------------------------+----------------+ |subscriber_org_number | subscriber_org_display_name | usage_bytes | +-----------------------------------------------------------+----------------+ | 12345 | myorganization | 15 | +--------------------------+--------------------------------+----------------+
Para assinantes sem uma organização, use job_project_number
em vez de subscriber_org_number.
Receber métricas de uso para sua troca de dados
Se a troca de dados e o conjunto de dados de origem estiverem em projetos diferentes, siga estas etapas para visualizar as métricas de uso da troca de dados:
- Encontre todas as listagens que pertencem à sua troca de dados.
 - Recupere o conjunto de dados de origem anexado à página de detalhes.
 - Para visualizar as métricas de uso 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"
Receber métricas de uso para visualizações compartilhadas
A consulta a seguir mostra as métricas de uso de todas as visualizações compartilhadas em um 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 será assim:
+---------------------+----------------+----------+--------------------+-----------------------+--------------------+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|     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"}]                 |
+---------------------+----------------+----------+--------------------+-----------------------+--------------------+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Receber métricas de uso para funções com valor de tabela compartilhadas
A consulta a seguir mostra as métricas de uso de todas as funções com valores de tabela compartilhada em um 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 será assim:
+---------------------+----------------+----------+--------------------+-----------------------+--------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------+
|     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"}]           |
+---------------------+----------------+----------+--------------------+-----------------------+--------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------+