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 colunajob_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 |
-
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:
- Encontre todas as fichas que pertencem à sua troca de dados.
- Recuperar o conjunto de dados de origem anexado à ficha.
- 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"