Vue INFORMATION_SCHEMA.SHARE_DATASET_USAGE

La vue INFORMATION_SCHEMA.SHARED_DATASET_USAGE contient des métadonnées en quasi-temps réel sur la consommation des tables de vos ensembles de données partagés. Pour commencer à partager vos données entre plusieurs organisations, consultez la page Analytics Hub.

Rôles requis

Pour obtenir l'autorisation requise pour interroger la vue INFORMATION_SCHEMA.SHARED_DATASET_USAGE, demandez à votre administrateur de vous accorder le rôle IAM Propriétaire de données BigQuery (roles/bigquery.dataOwner) sur votre projet source. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Ce rôle prédéfini contient l'autorisation bigquery.datasets.listSharedDatasetUsage, qui est nécessaire pour interroger la vue INFORMATION_SCHEMA.SHARED_DATASET_USAGE.

Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.

Schéma

Les données sous-jacentes sont partitionnées par la colonne job_start_time et mises en cluster par project_id et dataset_id.

INFORMATION_SCHEMA.SHARED_DATASET_USAGE utilise le schéma suivant :

Nom de colonne Type de données Valeur
project_id STRING (Colonne de clustering) ID du projet qui contient l'ensemble de données partagé.
dataset_id STRING (Colonne de clustering) ID de l'ensemble de données partagé.
table_id STRING ID de la table interrogée.
data_exchange_id STRING Chemin d'accès de ressource de l'échange de données.
listing_id STRING Chemin d'accès de ressource de la fiche.
job_start_time TIMESTAMP (Colonne de partitionnement) Heure de début de ce job.
job_end_time TIMESTAMP Heure de fin de ce job.
job_id STRING ID du job. Par exemple, bquxjob_1234.
job_project_number INTEGER Numéro du projet auquel appartient ce job.
job_location STRING Emplacement du job.
linked_project_number INTEGER Numéro du projet de l'abonné.
linked_dataset_id STRING ID de l'ensemble de données associé de l'abonné.
subscriber_org_number INTEGER Numéro de l'organisation dans laquelle le job a été exécuté. Il s'agit du numéro d'organisation de l'abonné. Ce champ est vide pour les projets sans organisation.
subscriber_org_display_name STRING Chaîne de texte lisible faisant référence à l'organisation dans laquelle le job a été exécuté. Il s'agit du numéro d'organisation de l'abonné. Ce champ est vide pour les projets sans organisation.
num_rows_processed INTEGER Nombre de lignes de cette table traitées par le job.
total_bytes_processed INTEGER Nombre total d'octets de cette table traités par le job.

Conservation des données

La vue INFORMATION_SCHEMA.SHARED_DATASET_USAGE contient les jobs en cours d'exécution ainsi que l'historique des jobs des 180 derniers jours.

Champ d'application et syntaxe

Les requêtes exécutées sur cette vue doivent inclure un qualificatif de région. Si vous ne spécifiez pas de qualificatif de région, les métadonnées sont extraites de la région US. Le tableau suivant explique le champ d'application de la région pour cette vue :

Nom de la vue Champ d'application de la ressource Champ d'application de la région
[PROJECT_ID.]INFORMATION_SCHEMA.SHARED_DATASET_USAGE Niveau Projet Région US
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE Niveau Projet REGION
Remplacez les éléments suivants :

  • Facultatif : PROJECT_ID : ID de votre projet Google Cloud. Si non spécifié, le projet par défaut est utilisé.
  • REGION : tout nom de région d'ensemble de données. Exemple :region-us

Examples

Pour exécuter la requête sur un projet autre que celui par défaut, ajoutez l'ID du projet en respectant le format suivant :

PROJECT_ID.region-REGION_NAME.INFORMATION_SCHEMA.SHARED_DATASET_USAGE

Par exemple, myproject.region-us.INFORMATION_SCHEMA.SHARED_DATASET_USAGE.

Obtenir le nombre total de jobs exécutés sur toutes les tables partagées

L'exemple suivant calcule le nombre total de jobs exécutés par des abonnés pour un projet donné :

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

Le résultat ressemble à ce qui suit :

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

Pour vérifier le nombre total de jobs exécutés par des abonnés, utilisez la clause WHERE :

  • Pour les ensembles de données, utilisez WHERE dataset_id = "...".
  • Pour les tables, utilisez WHERE dataset_id = "..." AND table_id = "...".

Obtenir la table la plus utilisée en fonction du nombre de lignes traitées

La requête suivante calcule la table la plus utilisée en fonction du nombre de lignes traitées par les abonnés.

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

Le résultat ressemble à ce qui suit :

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

Identifier les principales organisations qui utilisent vos tables

La requête suivante calcule les principaux abonnés en fonction du nombre d'octets traités à partir de vos tables. Vous pouvez également utiliser la colonne num_rows_processed en tant que métrique.

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

Le résultat ressemble à ce qui suit :

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

Pour les abonnés sans organisation, vous pouvez utiliser job_project_number au lieu de subscriber_org_number.

Obtenir les métriques d'utilisation de votre échange de données

Si votre échange de données et votre ensemble de données source se trouvent dans des projets différents, procédez comme suit pour afficher les métriques d'utilisation de votre échange de données :

  1. Recherchez toutes les fiches qui appartiennent à votre échange de données.
  2. Récupérez l'ensemble de données source associé à la fiche.
  3. Pour afficher les métriques d'utilisation de votre échange de données, utilisez la requête suivante :
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"