Vista INFORMATION_SCHEMA.SHARED_DATASET_USAGE
La vista INFORMATION_SCHEMA.SHARED_DATASET_USAGE contiene i metadati quasi in tempo reale sul consumo delle tabelle dei set di dati condivisi. Per iniziare a condividere i tuoi dati tra organizzazioni, consulta BigQuery sharing (in precedenza Analytics Hub).
Ruoli obbligatori
Per ottenere l'autorizzazione necessaria per eseguire query sulla vista INFORMATION_SCHEMA.SHARED_DATASET_USAGE, chiedi all'amministratore di concederti il ruolo IAM BigQuery Data Owner (roles/bigquery.dataOwner) nel progetto di origine.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene l'autorizzazione bigquery.datasets.listSharedDatasetUsage necessaria per eseguire query sulla vista INFORMATION_SCHEMA.SHARED_DATASET_USAGE.
Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.
Schema
I dati sottostanti sono partizionati in base alla colonnajob_start_time e raggruppati in cluster in base a project_id e dataset_id.
INFORMATION_SCHEMA.SHARED_DATASET_USAGE ha il seguente schema:
| Nome colonna | Tipo di dati | Valore |
|---|---|---|
project_id
|
STRING
|
(Colonna di clustering) L'ID del progetto che contiene il set di dati condiviso. |
dataset_id
|
STRING
|
(Colonna di clustering) L'ID del set di dati condiviso. |
table_id
|
STRING
|
L'ID della tabella a cui è stato eseguito l'accesso. |
data_exchange_id
|
STRING
|
Il percorso della risorsa del data exchange. |
listing_id
|
STRING
|
Il percorso della risorsa della scheda. |
job_start_time
|
TIMESTAMP
|
(Colonna di partizionamento) L'ora di inizio di questo job. |
job_end_time
|
TIMESTAMP
|
L'ora di fine del job. |
job_id
|
STRING
|
L'ID job. Ad esempio, bquxjob_1234. |
job_project_number
|
INTEGER
|
Il numero del progetto a cui appartiene questo job. |
job_location
|
STRING
|
La località del job. |
linked_project_number
|
INTEGER
|
Il numero di progetto del progetto del sottoscrittore. |
linked_dataset_id
|
STRING
|
L'ID del set di dati collegato del set di dati del sottoscrittore. |
subscriber_org_number
|
INTEGER
|
Il numero dell'organizzazione in cui è stato eseguito il job. Questo è il numero dell'organizzazione dell'abbonato. Questo campo è vuoto per i progetti che non hanno un'organizzazione. |
subscriber_org_display_name
|
STRING
|
Una stringa leggibile che fa riferimento all'organizzazione in cui è stato eseguito il job. Questo è il numero dell'organizzazione dell'abbonato. Questo campo è vuoto per i progetti che non hanno un'organizzazione. |
job_principal_subject
|
STRING
|
L'identificatore dell'entità (ID email utente, account di servizio, ID email gruppo, dominio) degli utenti che eseguono job e query sui set di dati collegati. |
num_rows_processed
|
INTEGER
|
Il numero totale di righe elaborate dalle tabelle di base a cui fa riferimento la risorsa su cui è stata eseguita la query. |
total_bytes_processed
|
INTEGER
|
Il numero totale di byte elaborati dalle tabelle di base a cui fa riferimento la risorsa su cui è stata eseguita la query. |
shared_resource_id
|
STRING
|
L'ID della risorsa su cui è stata eseguita la query (tabella, vista o routine). |
shared_resource_type
|
STRING
|
Il tipo di risorsa su cui è stata eseguita la query. Ad esempio, TABLE, EXTERNAL_TABLE, VIEW, MATERIALIZED_VIEW, TABLE_VALUED_FUNCTION o SCALAR_FUNCTION.
|
referenced_tables
|
RECORD REPEATED
|
Contiene i campi project_id, dataset_id, table_id e processed_bytes della tabella di base.
|
Per garantire la stabilità, ti consigliamo di elencare esplicitamente le colonne nelle query dello schema di informazioni anziché utilizzare un carattere jolly (SELECT *). L'elenco esplicito delle colonne impedisce l'interruzione delle query se lo schema sottostante cambia.
Conservazione dei dati
La vista INFORMATION_SCHEMA.SHARED_DATASET_USAGE contiene i job in esecuzione e la cronologia dei job degli ultimi 180 giorni.
Ambito e sintassi
Le query su questa vista devono includere un qualificatore di regione. Se non specifichi un qualificatore regionale, i metadati vengono recuperati dalla regione degli Stati Uniti. La tabella seguente illustra l'ambito della regione per questa visualizzazione:
| Visualizza nome | Ambito risorsa | Ambito della regione |
|---|---|---|
[PROJECT_ID.]INFORMATION_SCHEMA.SHARED_DATASET_USAGE |
Livello progetto | Regione Stati Uniti |
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE |
Livello progetto | REGION |
-
(Facoltativo)
PROJECT_ID: l'ID del tuo progetto Google Cloud . Se non specificato, viene utilizzato il progetto predefinito. -
REGION: qualsiasi nome della regione del set di dati. Ad esempio:`region-us`.
Esempi
Per eseguire la query su un progetto diverso da quello predefinito, aggiungi l'ID progetto nel seguente formato:
PROJECT_ID.region-REGION_NAME.INFORMATION_SCHEMA.SHARED_DATASET_USAGE
Ad esempio, myproject.region-us.INFORMATION_SCHEMA.SHARED_DATASET_USAGE.
Ottieni il numero totale di job eseguiti su tutte le tabelle condivise
L'esempio seguente calcola i job totali eseguiti dai sottoscrittori per un progetto:
SELECT COUNT(DISTINCT job_id) AS num_jobs FROM `region-us`.INFORMATION_SCHEMA.SHARED_DATASET_USAGE
Il risultato è simile al seguente:
+------------+ | num_jobs | +------------+ | 1000 | +------------+
Per controllare i job totali eseguiti dai sottoscrittori, utilizza la clausola WHERE:
- Per i set di dati, utilizza
WHERE dataset_id = "...". - Per le tabelle, utilizza
WHERE dataset_id = "..." AND table_id = "...".
Ottieni la tabella più utilizzata in base al numero di righe elaborate
La seguente query calcola la tabella più utilizzata in base al numero di righe elaborate dai sottoscrittori.
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
L'output è simile al seguente:
+---------------+-------------+----------------+ | dataset_id | table_id | usage_rows | +---------------+-------------+----------------+ | mydataset | mytable | 15 | +---------------+-------------+----------------+
Trova le principali organizzazioni che utilizzano le tue tabelle
La seguente query calcola i principali sottoscrittori in base al numero di byte elaborati dalle tue tabelle. Puoi anche utilizzare la colonna num_rows_processed come metrica.
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
L'output è simile al seguente:
+--------------------------+--------------------------------+----------------+ |subscriber_org_number | subscriber_org_display_name | usage_bytes | +-----------------------------------------------------------+----------------+ | 12345 | myorganization | 15 | +--------------------------+--------------------------------+----------------+
Per gli abbonati senza un'organizzazione, puoi utilizzare job_project_number
anziché subscriber_org_number.
Ottieni metriche di utilizzo per il tuo scambio di dati
Se il data exchange e il set di dati di origine si trovano in progetti diversi, segui questi passaggi per visualizzare le metriche di utilizzo del data exchange:
- Trova tutte le schede che appartengono al tuo scambio di dati.
- Recupera il set di dati di origine collegato alla scheda.
- Per visualizzare le metriche di utilizzo per il tuo scambio di dati, utilizza la seguente query:
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"
Ottieni metriche di utilizzo per le visualizzazioni condivise
La seguente query mostra le metriche di utilizzo per tutte le visualizzazioni condivise presenti in un progetto:
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'
L'output è simile al seguente:
+---------------------+----------------+----------+--------------------+-----------------------+--------------------+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 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"}] |
+---------------------+----------------+----------+--------------------+-----------------------+--------------------+----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Ottieni le metriche di utilizzo per le funzioni con valori di tabella condivise
La seguente query mostra le metriche di utilizzo per tutte le funzioni con valori di tabella condivise presenti in un progetto:
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'
L'output è simile al seguente:
+---------------------+----------------+----------+--------------------+-----------------------+--------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------+
| 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"}] |
+---------------------+----------------+----------+--------------------+-----------------------+--------------------+-----------------------+---------------------------------------------------------------------------------------------------------------------+