Elenca set di dati

Questo documento descrive come elencare e ottenere informazioni sui set di dati in BigQuery.

Prima di iniziare

Concedi i ruoli Identity and Access Management (IAM) che forniscono agli utenti le autorizzazioni necessarie per eseguire ogni attività descritta in questo documento.

Ruolo richiesto

Per ottenere l'autorizzazione necessaria per elencare i set di dati o ottenere informazioni su di essi, chiedi all'amministratore di concederti il ruolo IAM Visualizzatore metadati BigQuery (roles/bigquery.metadataViewer) nel tuo progetto. 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.get necessaria per elencare i set di dati o ottenere informazioni su di essi.

Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.

Quando applichi il ruolo roles/bigquery.metadataViewer a livello di progetto o organizzazione, puoi elencare tutti i set di dati nel progetto. Quando applichi il ruolo roles/bigquery.metadataViewer a livello di set di dati, puoi elencare tutti i set di dati per i quali ti è stato concesso questo ruolo.

Elenca set di dati

Seleziona una delle seguenti opzioni:

Console

  1. Nel menu di navigazione, fai clic su Studio.

  2. Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

    Pulsante evidenziato per il riquadro Spazio di esplorazione.

  3. Nel riquadro Explorer, espandi un progetto, fai clic su Set di dati per visualizzare i set di dati nel progetto, quindi fai clic sul nome del set di dati. Puoi anche utilizzare il campo di ricerca o i filtri per trovare il tuo set di dati.

SQL

Esegui una query sulla vista INFORMATION_SCHEMA.SCHEMATA:

  1. Nella console Google Cloud , vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor di query, inserisci la seguente istruzione:

    SELECT
      schema_name
    FROM
      PROJECT_ID.`region-REGION`.INFORMATION_SCHEMA.SCHEMATA;

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del tuo Google Cloud progetto. Se non specificato, viene utilizzato il progetto predefinito.
    • REGION: qualsiasi nome della regione del set di dati. Ad esempio: us.

  3. Fai clic su Esegui.

Per saperne di più su come eseguire le query, consulta Eseguire una query interattiva.

bq

Esegui il comando bq ls per elencare i set di dati in base all'ID. Il flag --format può essere utilizzato per controllare l'output. Se elenchi i set di dati in un progetto diverso da quello predefinito, aggiungi il flag --project_id al comando.

Per elencare tutti i set di dati in un progetto, inclusi i set di dati nascosti, utilizza il flag --all o la scorciatoia -a.

Per elencare tutti i set di dati in un progetto, esclusi quelli nascosti, utilizza il flag --datasets o la scorciatoia -d. Questo flag è facoltativo. Per impostazione predefinita, i set di dati nascosti non sono elencati.

I flag aggiuntivi includono:

  • --filter: Elenca i set di dati che corrispondono all'espressione di filtro. Utilizza un elenco di chiavi e valori delle etichette separati da spazi nel formato labels.key:value. Per saperne di più sul filtraggio dei set di dati utilizzando le etichette, vedi Aggiungere e utilizzare le etichette. Utilizza la parola chiave status:live per filtrare i set di dati in base allo stato. I valori validi di status sono live(predefinito), deleted e any.
  • --max_results o -n: un numero intero che indica il numero massimo di risultati. Il valore predefinito è 50.
bq ls --filter labels.key:value \
--max_results integer \
--format=prettyjson \
--project_id project_id

Sostituisci quanto segue:

  • key:value: una chiave di etichetta e un valore
  • integer: un numero intero che rappresenta il numero di set di dati da elencare
  • project_id: il nome del progetto

Esempi:

Inserisci il comando seguente per elencare i set di dati nel progetto predefinito. -- format è impostato su pretty per restituire una tabella con formattazione di base.

bq ls --format=pretty

Inserisci il seguente comando per elencare i set di dati in myotherproject. --format è impostato su prettyjson per restituire risultati dettagliati in formato JSON.

bq ls --format=prettyjson --project_id myotherproject

Inserisci il comando seguente per elencare tutti i set di dati, inclusi quelli nascosti, nel tuo progetto predefinito. Nell'output, i set di dati nascosti iniziano con un trattino basso.

bq ls -a

Inserisci il comando seguente per restituire più di 50 set di dati, l'output predefinito, dal progetto predefinito.

bq ls --max_results 60

Inserisci il seguente comando per elencare i set di dati nel progetto predefinito con l'etichetta org:dev.

bq ls --filter labels.org:dev

API

Per elencare i set di dati utilizzando l'API, chiama il metodo API datasets.list.

C#

Prima di provare questo esempio, segui le istruzioni di configurazione di C# nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery C#.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.


using Google.Cloud.BigQuery.V2;
using System;
using System.Collections.Generic;
using System.Linq;

public class BigQueryListDatasets
{
    public void ListDatasets(
        string projectId = "your-project-id"
    )
    {
        BigQueryClient client = BigQueryClient.Create(projectId);
        // Retrieve list of datasets in project
        List<BigQueryDataset> datasets = client.ListDatasets().ToList();
        // Display the results
        if (datasets.Count > 0)
        {
            Console.WriteLine($"Datasets in project {projectId}:");
            foreach (var dataset in datasets)
            {
                Console.WriteLine($"\t{dataset.Reference.DatasetId}");
            }
        }
        else
        {
            Console.WriteLine($"{projectId} does not contain any datasets.");
        }
    }
}

Vai

Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Go.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/bigquery"
	"google.golang.org/api/iterator"
)

// listDatasets demonstrates iterating through the collection of datasets in a project.
func listDatasets(projectID string, w io.Writer) error {
	// projectID := "my-project-id"
	ctx := context.Background()
	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %v", err)
	}
	defer client.Close()

	it := client.Datasets(ctx)
	for {
		dataset, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return err
		}
		fmt.Fprintln(w, dataset.DatasetID)
	}
	return nil
}

Java

Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.

Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.

import com.google.api.gax.paging.Page;
import com.google.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQuery.DatasetListOption;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Dataset;

public class ListDatasets {

  public static void runListDatasets() {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "MY_PROJECT_ID";
    listDatasets(projectId);
  }

  public static void listDatasets(String projectId) {
    try {
      // Initialize client that will be used to send requests. This client only needs to be created
      // once, and can be reused for multiple requests.
      BigQuery bigquery = BigQueryOptions.getDefaultInstance().getService();

      Page<Dataset> datasets = bigquery.listDatasets(projectId, DatasetListOption.pageSize(100));
      if (datasets == null) {
        System.out.println("Dataset does not contain any models");
        return;
      }
      datasets
          .iterateAll()
          .forEach(
              dataset -> System.out.printf("Success! Dataset ID: %s ", dataset.getDatasetId