Haz una lista de los conjuntos de datos

En este documento, se describe cómo enumerar conjuntos de datos en BigQuery.

Puedes enumerar conjuntos de datos de las siguientes formas:

  • Con Cloud Console o la IU web clásica de BigQuery
  • Usa el comando bq ls en la herramienta de línea de comandos de bq
  • Mediante una llamada al método de la API datasets.list
  • Mediante bibliotecas cliente

Permisos necesarios

Cuando haces una lista de los conjuntos de datos, solo se muestran aquellos conjuntos de datos para los que tienes permisos bigquery.datasets.get. En las siguientes funciones de IAM predefinidas, se incluyen los permisos bigquery.datasets.get:

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

Para obtener más información sobre las funciones y permisos de IAM en BigQuery, consulta Control de acceso.

Enumera los conjuntos de datos en un proyecto

Para enumerar los conjuntos de datos en un proyecto, haz lo siguiente:

Console

Los conjuntos de datos se enumeran de acuerdo con el proyecto en el panel Recursos.

IU clásica

En el panel de navegación de la IU web, los conjuntos de datos se enumeran por proyecto.

bq

Ingresa el comando bq ls para enumerar los conjuntos de datos según el ID del conjunto de datos. Se puede usar la marca --format para controlar el resultado. Para enumerar conjuntos de datos en un proyecto que no es el predeterminado, agrega la marca --project_id al comando.

Para enumerar todos los conjuntos de datos de un proyecto, incluidos los conjuntos de datos anónimos, usa la marca --all o el acceso directo -a.

Para enumerar todos los conjuntos de datos de un proyecto, excepto los conjuntos de datos anónimos, usa la marca --datasets o el acceso directo -d. Esta marca es opcional. Como configuración predeterminada, no se enumeran los conjuntos de datos anónimos.

Entre las marcas adicionales, se incluyen las siguientes:

  • --filter: Muestra una lista de los conjuntos de datos que coinciden con la expresión de filtro. Usa una lista de claves de etiquetas y valores separados por espacios en el formato labels.key:value. Para obtener más información sobre cómo filtrar conjuntos de datos con etiquetas, consulta cómo agregar y usar etiquetas.
  • --max_results o -n: Un número entero que indica la cantidad máxima de resultados. El valor predeterminado es 50.
bq ls --filter labels.key:value \
--max_results integer \
--format=prettyjson \
--project_id project_id

En el ejemplo anterior, se ilustra lo siguiente:

  • key:value es una clave de etiqueta y un valor.
  • integer es un número entero que representa la cantidad de conjuntos de datos que se deben incluir en la lista.
  • project_id es el nombre de tu proyecto.

Ejemplos:

Ingresa el comando siguiente para enumerar todos los conjuntos de datos en tu proyecto predeterminado. -- format se configura como “descriptivo” para que se muestre una tabla con formato básico.

bq ls --format=pretty

Ingresa el siguiente comando para enumerar conjuntos de datos de myotherproject. --format se configura como prettyjson para que se muestren resultados detallados en formato JSON.

bq ls --format=prettyjson --project_id myotherproject

Ingresa el siguiente comando para enumerar todos los conjuntos de datos, incluidos los conjuntos de datos anónimos de tu proyecto predeterminado. En el resultado, los conjuntos de datos anónimos comienzan con un guion bajo.

bq ls -a

Ingresa el siguiente comando para mostrar más que el resultado predeterminado de 50 conjuntos de datos de tu proyecto predeterminado.

bq ls --max_results 60

Ingresa el siguiente comando para enumerar conjuntos de datos de tu proyecto predeterminado con la etiqueta org:dev.

bq ls --filter labels.org:dev

API

Para enumerar conjuntos de datos con la API, realiza una llamada al método de API datasets.list.

C#

Antes de probar este ejemplo, sigue las instrucciones de configuración para C# incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de BigQuery para C#.


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 probar este ejemplo, sigue las instrucciones de configuración para Go que se encuentran en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de BigQuery para 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

Antes de probar este ejemplo, sigue las instrucciones de configuración para Java que se encuentran en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de BigQuery para Java.

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 probar este ejemplo, sigue las instrucciones de configuración para Node.js que se encuentran en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de BigQuery para Node.js.

// 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 probar este ejemplo, sigue las instrucciones de configuración para PHP incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de BigQuery para PHP.

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 probar esta muestra, sigue las instrucciones de configuración para Python incluidas en la Guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de Python de 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

Antes de probar este ejemplo, sigue las instrucciones de configuración para Ruby incluidas en la guía de inicio rápido de BigQuery sobre cómo usar bibliotecas cliente. Si deseas obtener más información, consulta la documentación de referencia de la API de BigQuery para 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

Próximos pasos