Como listar conjuntos de dados

Neste documento, descrevemos como listar conjuntos de dados no BigQuery.

É possível listar conjuntos de dados das seguintes maneiras:

  • usando o Console do Cloud;
  • usando o comando bq ls na ferramenta de linha de comando bq;
  • Chamada do método de API datasets.list
  • usando bibliotecas de cliente;

Permissões necessárias

Quando você lista conjuntos de dados, somente aqueles em que você tem permissões bigquery.datasets.get são retornados. Os seguintes papéis predefinidos do IAM incluem as permissões bigquery.datasets.get:

  • bigquery.user
  • bigquery.metadataViewer
  • bigquery.dataViewer
  • bigquery.dataOwner
  • bigquery.dataEditor
  • bigquery.admin

Para mais informações sobre os papéis e as permissões do IAM no BigQuery, consulte Controle de acesso.

Como listar conjuntos de dados em um projeto

Para listar os conjuntos de dados em um projeto, faça o seguinte:

Console

Os conjuntos de dados são listados por projeto no painel Recursos.

bq

Emita o comando bq ls para listar conjuntos de dados pelo ID deles. A sinalização --format pode ser usada para controlar a saída. Se você estiver listando o conjunto de dados em um projeto diferente do padrão, adicione a sinalização --project_id ao comando.

Para listar todos os conjuntos de dados em um projeto, incluindo conjuntos de dados anônimos, use a sinalização --all ou o atalho -a.

Para listar todos os conjuntos de dados em um projeto, mas sem conjuntos de dados anônimos, use a sinalização --datasets ou o atalho -d. Essa sinalização é opcional. Por padrão, os conjuntos de dados anônimos não são listados.

Veja a seguir algumas outras sinalizações:

  • --filter: conjuntos de dados de listas que correspondem à expressão do filtro. Use uma lista separada por espaço de chaves e valores de rótulo no formato labels.key:value. Para mais informações sobre como filtrar conjuntos de dados usando rótulos, consulte Como adicionar e usar rótulos.
  • --max_results ou -n: um número inteiro que indica o valor máximo de resultados. O valor padrão é 50.
bq ls --filter labels.key:value \
--max_results integer \
--format=prettyjson \
--project_id project_id

Substitua:

  • key:value é uma chave de rótulo e um valor;
  • integer é um valor inteiro que representa a quantidade de conjuntos de dados a serem listados;
  • project_id é o nome do projeto.

Exemplos:

Digite o comando a seguir para listar conjuntos de dados no projeto padrão. -- format é definido como pretty para retornar uma tabela formatada básica.

bq ls --format=pretty

Insira o seguinte comando para listar conjuntos de dados em myotherproject. --format é definido como prettyjson para retornar resultados detalhados no formato JSON.

bq ls --format=prettyjson --project_id myotherproject

Insira o comando a seguir para listar todos os conjuntos de dados, incluindo conjuntos de dados anônimos no projeto padrão. Na saída, os conjuntos de dados anônimos começam com um sublinhado.

bq ls -a

Digite o comando a seguir para retornar mais de 50 conjuntos de dados do seu projeto, que é a saída padrão.

bq ls --max_results 60

Digite o comando a seguir para listar os conjuntos de dados no projeto padrão com o rótulo org:dev.

bq ls --filter labels.org:dev

API

Para listar conjuntos de dados usando a API, chame o método datasets.list da API.

C#

Antes de testar essa amostra, siga as instruções de configuração para C# no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em C# (em inglês).


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

Antes de testar essa amostra, siga as instruções de configuração para Go no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Go (em inglês).

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

Antes de testar essa amostra, siga as instruções de configuração para Java no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Java (em inglês).

Ver no GitHub (em inglês) Feedback
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

Antes de testar essa amostra, siga as instruções de configuração para Node.js no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Node.js (em inglês).

Ver no GitHub (em inglês) Feedback
// 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

Antes de testar esta amostra, siga as instruções de configuração para PHP no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em PHP (em inglês).

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

Antes de testar essa amostra, siga as instruções de configuração para Python no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API BigQuery em Python.

Ver no GitHub (em inglês) Feedback

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

Antes de testar esta amostra, siga as instruções de configuração para Ruby no Guia de início rápido do BigQuery: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de Referência da API BigQuery Ruby.

Ver no GitHub (em inglês) Feedback
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

Próximas etapas