List routines

Lists all existing routines in a dataset.

Code sample

Go

Before trying this sample, follow the Go setup instructions in the BigQuery quickstart using client libraries. For more information, see the BigQuery Go API reference documentation.

To authenticate to BigQuery, set up Application Default Credentials. For more information, see Set up authentication for client libraries.

import (
	"context"
	"fmt"
	"io"

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

// listRoutines demonstrates listing the routines within a dataset.
func listRoutines(w io.Writer, projectID, datasetID string) error {
	// projectID := "my-project-id"
	// datasetID := "mydatasetid"
	// routineID := "myroutineid"
	ctx := context.Background()

	client, err := bigquery.NewClient(ctx, projectID)
	if err != nil {
		return fmt.Errorf("bigquery.NewClient: %w", err)
	}
	defer client.Close()

	it := client.Dataset(datasetID).Routines(ctx)
	for {
		r, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return fmt.Errorf("error during iteration: %w", err)
		}
		fmt.Fprintf(w, "Routine: %q\n", r.RoutineID)
	}
	return nil
}

Java

Before trying this sample, follow the Java setup instructions in the BigQuery quickstart using client libraries. For more information, see the BigQuery Java API reference documentation.

To authenticate to BigQuery, set up Application Default Credentials. For more information, see Set up authentication for client libraries.

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

// Sample to get list of routines
public class ListRoutines {

  public static void main(String[] args) {
    // TODO(developer): Replace these variables before running the sample.
    String datasetName = "MY_DATASET_NAME";
    listRoutines(datasetName);
  }

  public static void listRoutines(String datasetName) {
    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<Routine> routines =
          bigquery.listRoutines(datasetName, BigQuery.RoutineListOption.pageSize(100));
      if (routines == null) {
        System.out.println("Dataset does not contain any routines.");
        return;
      }
      routines
          .iterateAll()
          .forEach(routine -> System.out.printf("Success! Routine ID: %s", routine.getRoutineId()));
    } catch (BigQueryException e) {
      System.out.println("Routines not listed in dataset due to error: \n" + e.toString());
    }
  }
}

Node.js

Before trying this sample, follow the Node.js setup instructions in the BigQuery quickstart using client libraries. For more information, see the BigQuery Node.js API reference documentation.

To authenticate to BigQuery, set up Application Default Credentials. For more information, see Set up authentication for client libraries.

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

async function listRoutines() {
  // Lists routines in "my_dataset".

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const datasetId = 'my_dataset';

  // List all routines in the dataset
  const [routines] = await bigquery.dataset(datasetId).getRoutines();

  console.log('Routines:');
  routines.forEach(routine => console.log(routine.id));
}
listRoutines();

Python

Before trying this sample, follow the Python setup instructions in the BigQuery quickstart using client libraries. For more information, see the BigQuery Python API reference documentation.

To authenticate to BigQuery, set up Application Default Credentials. For more information, see Set up authentication for client libraries.


from google.cloud import bigquery

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

# TODO(developer): Set dataset_id to the ID of the dataset that contains
#                  the routines you are listing.
# dataset_id = 'your-project.your_dataset'

routines = client.list_routines(dataset_id)  # Make an API request.

print("Routines contained in dataset {}:".format(dataset_id))
for routine in routines:
    print(routine.reference)

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser.