Gestire le routine
In BigQuery, le routine sono un tipo di risorsa che include quanto segue:
- Stored procedure.
- Funzioni definite dall'utente (UDF), incluse le funzioni remote.
- Funzioni della tabella.
Questo documento descrive le attività comuni a tutti i tipi di routine in BigQuery.
Autorizzazioni
Per fare riferimento a una routine in una query SQL, devi disporre dell'autorizzazione bigquery.routines.get. Per concedere l'accesso alle routine, puoi assegnare un ruolo IAM
con l'autorizzazione bigquery.routines.get sul set di dati o sulla singola
routine. Se concedi l'accesso a livello di set di dati, il principal ha accesso a tutte
le routine nel set di dati. Per ulteriori informazioni, consulta
Controllare l'accesso alle risorse con IAM.
Per impostazione predefinita, devi anche disporre dell'autorizzazione per accedere a qualsiasi risorsa a cui fa riferimento la routine, ad esempio tabelle o viste. Per le UDF e le funzioni di tabella, puoi autorizzare la funzione ad accedere a queste risorse per conto del chiamante. Per maggiori informazioni, consulta Funzioni autorizzate.
Creare una routine
Per creare una routine, devi disporre dell'autorizzazione bigquery.routines.create.
SQL
A seconda del tipo di routine, esegui una delle seguenti istruzioni DDL:
API
Chiama il metodo routines.insert
con una
risorsa Routine definita.
Elenco delle routine
Per elencare le routine in un set di dati, devi disporre delle autorizzazioni bigquery.routines.get e
bigquery.routines.list.
Console
- Nella console Google Cloud , apri la pagina BigQuery. 
- Nel riquadro a sinistra, fai clic su Explorer:  - Se non vedi il riquadro a sinistra, fai clic su Espandi riquadro a sinistra per aprirlo. 
- Nel riquadro Explorer, espandi il progetto, fai clic su Set di dati e poi seleziona un set di dati. 
- Fai clic sulla scheda Routine. 
SQL
Esegui una query sulla vista INFORMATION_SCHEMA.ROUTINES:
- Nella console Google Cloud , vai alla pagina BigQuery. 
- Nell'editor di query, inserisci la seguente istruzione: - SELECT COLUMN_LIST FROM { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES; 
- Fai clic su Esegui. 
Per saperne di più su come eseguire le query, consulta Eseguire una query interattiva.
Sostituisci quanto segue:
- COLUMN_LIST: un elenco separato da virgole di colonne della
visualizzazione INFORMATION_SCHEMA.ROUTINES.
- DATASET: il nome di un set di dati nel tuo progetto.
- REGION: un qualificatore di regione.
Esempio:
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
Utilizza il comando bq ls
con il flag --routines:
bq ls --routines DATASET
Sostituisci quanto segue:
- DATASET: il nome di un set di dati nel tuo progetto.
Esempio:
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
Chiama il metodo routines.list
con l'ID del set di dati.
Visualizzare il corpo di una routine
Per visualizzare il corpo di una routine, devi disporre dell'autorizzazione bigquery.routines.get.
Console
- Nella console Google Cloud , apri la pagina BigQuery. 
- Nel riquadro a sinistra, fai clic su Explorer:  
- Nel riquadro Explorer, espandi il progetto, fai clic su Set di dati e poi seleziona un set di dati. 
- Fai clic sulla scheda Routine. 
- Seleziona la routine. Il corpo della routine è elencato nella sezione Routine query. 
SQL
Seleziona la colonna routine_definition della
visualizzazione INFORMATION_SCHEMA.ROUTINES:
- Nella console Google Cloud , vai alla pagina BigQuery. 
- Nell'editor di query, inserisci la seguente istruzione: - SELECT routine_definition FROM { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES WHERE routine_name = ROUTINE_NAME; 
- Fai clic su Esegui. 
Per saperne di più su come eseguire le query, consulta Eseguire una query interattiva.
Sostituisci quanto segue:
- DATASET: il nome di un set di dati nel tuo progetto.
- REGION: un qualificatore di regione.
- ROUTINE_NAME: il nome della routine.
Esempio:
SELECT routine_definition FROM mydataset.INFORMATION_SCHEMA.ROUTINES WHERE routine_name = 'AddFourAndDivide';
+--------------------+
| routine_definition |
+--------------------+
| (x + 4) / y        |
+--------------------+
bq
Utilizza il comando bq show
con il flag --routine:
bq show --routine DATASET.ROUTINE_NAME
Sostituisci quanto segue:
- DATASET: il nome di un set di dati nel tuo progetto.
- ROUTINE_NAME: il nome della routine.
Esempio:
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
Chiama il metodo routines.get
con l'ID set di dati e il nome della routine. Il corpo della
routine viene restituito nell'oggetto Routine.
Eliminare una routine
Per eliminare una routine, devi disporre dell'autorizzazione bigquery.routines.delete.
Console
- Nella console Google Cloud , apri la pagina BigQuery. 
- Nel riquadro a sinistra, fai clic su Explorer:  
- Nel riquadro Explorer, espandi il progetto, fai clic su Set di dati e poi seleziona un set di dati. 
- Fai clic sulla scheda Routine. 
- Seleziona la routine. 
- Nel riquadro dei dettagli, fai clic su Elimina. 
- Digita - "delete"nella finestra di dialogo, quindi fai clic su Elimina per confermare.
SQL
A seconda del tipo di routine, esegui una delle seguenti istruzioni DDL:
- Stored procedure: DROP PROCEDURE
- Funzione definita dall'utente: DROP FUNCTION
- Funzione tabella: DROP TABLE FUNCTION
Esempio:
DROP FUNCTION IF EXISTS mydataset.AddFourAndDivide
bq
Utilizza il comando bq rm
con il flag --routine:
bq rm --routine DATASET.ROUTINE_NAME
Sostituisci quanto segue:
- DATASET: il nome di un set di dati nel tuo progetto.
- ROUTINE_NAME: il nome della routine.
Esempio:
bq rm --routine mydataset.AddFourAndDivide
API
Chiama il metodo routines.delete
con l'ID set di dati e il nome della routine.