Ansicht INFORMATION_SCHEMA.SHARED_DATASET_USAGE

Die Ansicht INFORMATION_SCHEMA.SHARED_DATASET_USAGE enthält Metadaten nahezu in Echtzeit zum Verbrauch Ihrer freigegebenen Dataset-Tabellen. Informationen zur organisationsübergreifenden Freigabe Ihrer Daten finden Sie unter Analytics Hub.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle BigQuery-Dateninhaber (roles/bigquery.dataOwner) für Ihr Quellprojekt zuzuweisen. Diese Rolle enthält die Berechtigung, die Sie zum Abfragen der Ansicht INFORMATION_SCHEMA.SHARED_DATASET_USAGE benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff verwalten.

Diese vordefinierte Rolle enthält die Berechtigung bigquery.datasets.listSharedDatasetUsage, die zum Abfragen der INFORMATION_SCHEMA.SHARED_DATASET_USAGE-Ansicht erforderlich ist.

Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Schema

Die zugrunde liegenden Daten werden nach der Spalte job_start_time partitioniert und nach project_id und dataset_id geclustert.

INFORMATION_SCHEMA.SHARED_DATASET_USAGE hat das folgende Schema:

Spaltenname Datentyp Wert
project_id STRING (Clustering-Spalte) Die ID des Projekts, das das freigegebene Dataset enthält.
dataset_id STRING (Clustering-Spalte) Die ID des freigegebenen Datasets.
table_id STRING Die ID der Tabelle, auf die zugegriffen wurde.
data_exchange_id STRING Der Ressourcenpfad des Datenaustauschs.
listing_id STRING Der Ressourcenpfad des Eintrags.
job_start_time TIMESTAMP (Partitionierungsspalte) Die Startzeit dieses Jobs.
job_end_time TIMESTAMP Die Endzeit dieses Jobs.
job_id STRING Die Job-ID. Beispiel: bquxjob_1234.
job_project_number INTEGER Die Nummer des Projekts, zu dem dieser Job gehört.
job_location STRING Der Standort des Jobs.
linked_project_number INTEGER Die Projektnummer des Projekts des Abonnenten.
linked_dataset_id STRING Die verknüpfte Dataset-ID des Datasets des Abonnenten.
subscriber_org_number INTEGER Die Organisationsnummer, in der der Job ausgeführt wurde. Dies ist die Organisationsnummer des Abonnenten. Dieses Feld ist für Projekte ohne Organisation leer.
subscriber_org_display_name STRING Ein visuell lesbarer String, der sich auf die Organisation bezieht, in der der Job ausgeführt wurde. Dies ist die Organisationsnummer des Abonnenten. Dieses Feld ist für Projekte ohne Organisation leer.
num_rows_processed INTEGER Die Anzahl der Zeilen, die vom Job aus dieser Tabelle verarbeitet wurden.
total_bytes_processed INTEGER Die Gesamtzahl der Byte, die aus dieser Tabelle vom Job verarbeitet wurden.

Datenaufbewahrung

Die Ansicht INFORMATION_SCHEMA.SHARED_DATASET_USAGE enthält laufende Jobs und den Jobverlauf der letzten 180 Tage.

Bereich und Syntax

Für Abfragen dieser Ansicht muss ein Regions-Qualifier verwendet werden. Wenn Sie keinen Regions-Qualifier angeben, werden Metadaten aus der US-Region abgerufen. In der folgenden Tabelle wird der Regionsbereich für diese Ansicht erläutert:

Ansichtsname Ressourcenbereich Regionsbereich
[PROJECT_ID.]INFORMATION_SCHEMA.SHARED_DATASET_USAGE Projektebene US-Region
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE Projektebene REGION
Ersetzen Sie Folgendes:

  • Optional: PROJECT_ID: die ID Ihres Google Cloud-Projekts. Wenn keine Angabe erfolgt, wird das Standardprojekt verwendet.
  • REGION: ist ein beliebiger Dataset-Regionsname. Beispiel: region-us

Beispiele

Wenn Sie die Abfrage für ein anderes Projekt als Ihr Standardprojekt ausführen möchten, fügen Sie die Projekt-ID im folgenden Format hinzu:

PROJECT_ID.region-REGION_NAME.INFORMATION_SCHEMA.SHARED_DATASET_USAGE

Beispiel: myproject.region-us.INFORMATION_SCHEMA.SHARED_DATASET_USAGE.

Gesamtzahl der Jobs abrufen, die in allen freigegebenen Tabellen ausgeführt werden

Im folgenden Beispiel werden die Jobs insgesamt berechnet, die von Abonnenten für ein Projekt ausgeführt werden:

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

Das Ergebnis sieht etwa so aus:

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

Verwenden Sie die Klausel WHERE, um die von Abonnenten ausgeführten Jobs zu prüfen:

  • Verwenden Sie für Datasets WHERE dataset_id = "...".
  • Verwenden Sie WHERE dataset_id = "..." AND table_id = "..." für Tabellen.

Anhand der Anzahl der verarbeiteten Zeilen die am häufigsten verwendete Tabelle abrufen

Die folgende Abfrage berechnet die am häufigsten verwendete Tabelle basierend auf der Anzahl der von Abonnenten verarbeiteten Zeilen.

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

Die Ausgabe sieht in etwa so aus:

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

Top-Organisationen suchen, die Ihre Tabellen verwenden

Bei der folgenden Abfrage werden die Top-Abonnenten basierend auf der Anzahl der Byte berechnet, die aus Ihren Tabellen verarbeitet werden. Sie können auch die Spalte num_rows_processed als Messwert verwenden.

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

Die Ausgabe sieht in etwa so aus:

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

Für Abonnenten ohne Organisation können Sie job_project_number anstelle von subscriber_org_number verwenden.

Nutzungsmesswerte für Ihren Datenaustausch abrufen

Wenn sich Ihr Datenpool und Ihr Quell-Dataset in verschiedenen Projekten befinden, führen Sie die folgenden Schritte aus, um die Nutzungsmesswerte für Ihren Datenaustausch aufzurufen:

  1. Finden Sie alle Einträge, die zu Ihrem Datenaustausch gehören.
  2. Rufen Sie das Quell-Dataset ab, das dem Eintrag zugeordnet ist.
  3. Verwenden Sie die folgende Abfrage, um die Nutzungsmesswerte für Ihren Datenaustausch aufzurufen:
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"