Routinen verwalten

In BigQuery sind Routinen ein Ressourcentyp, der Folgendes enthält:

In diesem Dokument werden Aufgaben beschrieben, die für alle Routinetypen in BigQuery üblich sind.

Berechtigungen

Zum Ausführen einer Routine benötigen Sie die Berechtigung bigquery.routines.get für das Dataset, das die Routine enthält.

Standardmäßig benötigen Sie auch die Berechtigung für den Zugriff auf alle Ressourcen, auf die die Routine verweist, z. B. auf Tabellen oder Ansichten. Für UDFs und Tabellenfunktionen können Sie die Funktion autorisieren, im Namen des Aufrufers auf diese Ressourcen zuzugreifen. Weitere Informationen finden Sie unter Autorisierte Funktionen.

Routine erstellen

Zum Erstellen einer Routine benötigen Sie die Berechtigung bigquery.routines.create.

SQL

Führen Sie je nach Routinetyp eine der folgenden DDL-Anweisungen aus:

API

Rufen Sie die Methode routines.insert mit einer definierten Routine-Ressource auf.

Routinen auflisten

Zum Auflisten der Routinen in einem Dataset benötigen Sie die Berechtigungen bigquery.routines.get und bigquery.routines.list.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite „BigQuery“.

    BigQuery aufrufen

  2. Maximieren Sie im Bereich Explorer Ihr Projekt und wählen Sie ein Dataset aus.

  3. Maximieren Sie die Liste Routinen.

SQL

Fragen Sie die Ansicht INFORMATION_SCHEMA.ROUTINES ab.

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Geben Sie im Abfrageeditor die folgende Anweisung ein:

    SELECT
      COLUMN_LIST
    FROM
       { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES;
    

  3. Klicken Sie auf Ausführen.

Informationen zum Ausführen von Abfragen finden Sie unter Interaktive Abfrage ausführen.

Ersetzen Sie Folgendes:

Beispiel:

SELECT
  routine_name, routine_type, routine_body
FROM
  mydataset.INFORMATION_SCHEMA.ROUTINES;
+------------------+----------------+--------------+
|   routine_name   |  routine_type  | routine_body |
+------------------+----------------+--------------+
| AddFourAndDivide | FUNCTION       | SQL          |
| create_customer  | PROCEDURE      | SQL          |
| names_by_year    | TABLE FUNCTION | SQL          |
+------------------+----------------+--------------+

bq

Führen Sie den Befehl bq ls mit dem Flag --routines aus:

bq ls --routines DATASET

Dabei gilt:

  • DATASET: Der Name eines Datasets in Ihrem Projekt.

Beispiel:

bq ls --routines mydataset
         Id              Routine Type        Language    Creation Time    Last Modified Time
------------------ ----------------------- ---------- ----------------- --------------------
 AddFourAndDivide   SCALAR_FUNCTION         SQL        05 May 01:12:03   05 May 01:12:03
 create_customer    PROCEDURE               SQL        21 Apr 19:55:51   21 Apr 19:55:51
 names_by_year      TABLE_VALUED_FUNCTION   SQL        01 Sep 22:59:17   01 Sep 22:59:17

API

Rufen Sie die Methode routines.list mit der Dataset-ID auf.

Text einer Routine ansehen

Zum Aufrufen des Texts einer Routine benötigen Sie die Berechtigung bigquery.routines.get.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite „BigQuery“.

    BigQuery aufrufen

  2. Maximieren Sie im Bereich Explorer Ihr Projekt und wählen Sie ein Dataset aus.

  3. Maximieren Sie die Liste Routinen.

  4. Wählen Sie die Routine aus. Der Text der Routine ist unter Routineabfrage aufgeführt.

SQL

Wählen Sie in der Ansicht INFORMATION_SCHEMA.ROUTINES die Spalte routine_definition aus.

  1. Öffnen Sie in der Google Cloud Console die Seite BigQuery.

    BigQuery aufrufen

  2. Geben Sie im Abfrageeditor die folgende Anweisung ein:

    SELECT
      routine_definition
    FROM
      { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES
    WHERE
      routine_name = ROUTINE_NAME;
    

  3. Klicken Sie auf Ausführen.

Informationen zum Ausführen von Abfragen finden Sie unter Interaktive Abfrage ausführen.

Ersetzen Sie Folgendes:

  • DATASET: Der Name eines Datasets in Ihrem Projekt.
  • REGION: Ein Regions-Qualifier.
  • ROUTINE_NAME: Der Name der Routine

Beispiel:

SELECT
  routine_definition
FROM
  mydataset.INFORMATION_SCHEMA.ROUTINES
WHERE
  routine_name = 'AddFourAndDivide';
+--------------------+
| routine_definition |
+--------------------+
| (x + 4) / y        |
+--------------------+

bq

Führen Sie den Befehl bq show mit dem Flag --routine aus:

bq show --routine DATASET.ROUTINE_NAME

Dabei gilt:

  • DATASET: Der Name eines Datasets in Ihrem Projekt.
  • ROUTINE_NAME: Der Name der Routine

Beispiel:

bq show --routine mydataset.AddFourAndDivide
         Id           Routine Type     Language             Signature             Definition     Creation Time    Last Modified Time
 ------------------ ----------------- ---------- ------------------------------- ------------- ----------------- --------------------
  AddFourAndDivide   SCALAR_FUNCTION   SQL        (x INT64, y INT64) -> FLOAT64   (x + 4) / y   05 May 01:12:03   05 May 01:12:03

API

Rufen Sie die Methode routines.get mit der Dataset-ID und dem Namen der Routine auf. Der Text der Routine wird im Objekt Routine zurückgegeben.

Routine löschen

Zum Löschen einer Routine benötigen Sie die Berechtigung bigquery.routines.delete.

Console

  1. Öffnen Sie in der Google Cloud Console die Seite „BigQuery“.

    BigQuery aufrufen

  2. Maximieren Sie im Bereich Explorer Ihr Projekt und wählen Sie ein Dataset aus.

  3. Maximieren Sie die Liste Routinen.

  4. Wählen Sie die Routine aus.

  5. Maximieren Sie die Option Aktionen und klicken Sie auf Löschen.

  6. Geben Sie "delete" in das Dialogfeld ein und klicken Sie zur Bestätigung auf Löschen.

SQL

Führen Sie je nach Routinetyp eine der folgenden DDL-Anweisungen aus:

Beispiel:

DROP FUNCTION IF EXISTS mydataset.AddFourAndDivide

bq

Führen Sie den Befehl bq rm mit dem Flag --routine aus:

bq rm --routine DATASET.ROUTINE_NAME

Dabei gilt:

  • DATASET: Der Name eines Datasets in Ihrem Projekt.
  • ROUTINE_NAME: Der Name der Routine

Beispiel:

bq rm --routine mydataset.AddFourAndDivide

API

Rufen Sie die Methode routines.delete mit der Dataset-ID und dem Namen der Routine auf.