Elenco dei set di dati

Questo documento descrive come elencare i set di dati in BigQuery.

Puoi elencare i set di dati nei seguenti modi:

  • Utilizzo di Cloud Console.
  • Viene utilizzata la query SQL INFORMATION_SCHEMA.
  • Usare il comando bq ls nello strumento a riga di comando bq.
  • Chiamata al metodo API datasets.list.
  • Utilizzo delle librerie client.

Prima di iniziare

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

Autorizzazioni obbligatorie

Per elencare i set di dati, devi disporre dell'autorizzazione IAM bigquery.datasets.get.

Ciascuno dei seguenti ruoli IAM predefiniti include le autorizzazioni necessarie per creare una vista:

  • roles/bigquery.user
  • roles/bigquery.dataOwner
  • roles/bigquery.dataEditor
  • roles/bigquery.admin

Inoltre, roles/bigquery.metadataViewer e roles/bigquery.dataViewer, se applicati a livello di progetto o di organizzazione, possono elencare tutti i set di dati presenti nel progetto.

Per ulteriori informazioni su ruoli e autorizzazioni IAM in BigQuery, consulta la sezione Ruoli e autorizzazioni predefiniti.

Elenco di set di dati in un progetto

Per elencare i set di dati in un progetto:

Console

  1. Nel menu di navigazione, fai clic su Area di lavoro SQL.

  2. Nel riquadro Explorer, espandi il nome di un progetto per visualizzarne i set di dati. In alternativa, utilizza la casella di ricerca per effettuare una ricerca in base al nome del set di dati.

SQL

Utilizza un qualificatore di progetto nella query INFORMATION_SCHEMA per elencare tutti i set di dati in un progetto.

L'esempio seguente elenca tutti i set di dati disponibili nel progetto specificato:

SELECT
 schema_name
FROM
'PROJECT_ID'.INFORMATION_SCHEMA.SCHEMATA

Sostituisci PROJECT_ID con l'ID del progetto per cui vuoi elencare i set di dati disponibili.

Per ulteriori informazioni su INFORMATION_SCHEMA, consulta Introduzione a BigQuery INFORMATION_SCHEMA.

bq

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

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

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

Altri flag includono:

  • --filter: elenca i set di dati che corrispondono all'espressione del filtro. Utilizza un elenco separato da spazi di chiavi e valori etichetta nel modulo labels.key:value. Per ulteriori informazioni sul filtro dei set di dati mediante etichette, consulta la sezione Aggiungere e utilizzare le etichette.
  • --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 e un valore di etichetta.
  • integer è un numero intero che rappresenta il numero di set di dati da elencare.
  • project_id è il nome del tuo progetto.

Esempi:

Inserisci il comando seguente per elencare i set di dati nel progetto predefinito. -- format è impostato in modo da restituire una tabella formattata di base.

bq ls --format=pretty

Inserisci il comando seguente 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 i set di dati anonimi, nel progetto predefinito. Nell'output, i set di dati anonimi iniziano con un trattino basso.

bq ls -a

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

bq ls --max_results 60

Inserisci il comando seguente 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 che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API C# BigQuery.


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.");
        }
    }
}

Go

Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nella guida rapida di BigQuery che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Go.

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 di BigQuery per l'utilizzo delle librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Java di BigQuery.

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()));
    } catch (BigQueryException e) {
      System.out.println("Project does not contain any datasets \n" + e.toString());
    }
  }
}

Node.js

Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nella guida rapida di BigQuery che utilizza le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API Node.js di BigQuery.

// Import the Google Cloud client library
const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

async function listDatasets() {
  // Lists all datasets in current GCP project.

  // Lists all datasets in the specified project
  const [datasets] = await bigquery.getDatasets();
  console.log('Datasets:');
  datasets.forEach(dataset => console.log(dataset.id));
}

PHP

Prima di provare questo esempio, segui le istruzioni di configurazione di PHP nella guida rapida di BigQuery che utilizza le librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API PHP BigQuery.

use Google\Cloud\BigQuery\BigQueryClient;

/** Uncomment and populate these variables in your code */
// $projectId  = 'The Google project ID';

$bigQuery = new BigQueryClient([
    'projectId' => $projectId,
]);
$datasets = $bigQuery->datasets();
foreach ($datasets as $dataset) {
    print($dataset->id() . PHP_EOL);
}

Python

Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery che utilizza le librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Python BigQuery.


from google.cloud import bigquery

# Construct a BigQuery client object.
client = bigquery.Client()

datasets = list(client.list_datasets())  # Make an API request.
project = client.project

if datasets:
    print("Datasets in project {}:".format(project))
    for dataset in datasets:
        print("\t{}".format(dataset.dataset_id))
else:
    print("{} project does not contain any datasets.".format(project))

Ruby

Prima di provare questo esempio, segui le istruzioni per la configurazione di Ruby nella guida rapida di BigQuery utilizzando le librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API BigQuery Ruby.

require "google/cloud/bigquery"

def list_datasets project_id = "your-project-id"
  bigquery = Google::Cloud::Bigquery.new project: project_id

  puts "Datasets in project #{project_id}:"
  bigquery.datasets.each do |dataset|
    puts "\t#{dataset.dataset_id}"
  end
end

Sicurezza dei set di dati

Per controllare l'accesso ai set di dati in BigQuery, consulta Controllo dell'accesso ai set di dati. Per informazioni sulla crittografia dei dati, vedi Crittografia dei dati at-rest.

Passaggi successivi