Get a routine

Get a routine resource for a given routine ID.

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"
)

// getRoutine demonstrates getting a routine's metadata via the API.
func getRoutine(w io.Writer, projectID, datasetID, routineID 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()

	meta, err := client.Dataset(datasetID).Routine(routineID).Metadata(ctx)
	if err != nil {
		return fmt.Errorf("couldn't retrieve routine metadata: %w", err)
	}
	// Print information about the routine.
	fmt.Fprintf(w, "Routine %s:\n", routineID)
	fmt.Fprintf(w, "\tType %s:\n", meta.Type)
	fmt.Fprintf(w, "\tLanguage %s:\n", meta.Language)
	fmt.Fprintln(w, "\tArguments:")
	for _, v := range meta.Arguments {
		fmt.Fprintf(w, "\t\tName: %s\tType: %v", v.Name, v.DataType)
	}
	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.cloud.bigquery.BigQuery;
import com.google.cloud.bigquery.BigQueryException;
import com.google.cloud.bigquery.BigQueryOptions;
import com.google.cloud.bigquery.Routine;
import com.google.cloud.bigquery.RoutineId;

// Sample to get a routine
public class GetRoutine {

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

  public static void getRoutine(String datasetName, String routineName) {
    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();

      RoutineId routineId = RoutineId.of(datasetName, routineName);
      Routine routine = bigquery.getRoutine(routineId);
      System.out.println("Routine retrieved successfully" + routine.getDescription());
    } catch (BigQueryException e) {
      System.out.println("Routine not retrieved. \n" + e.toString());
    }
  }
}

What's next

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