ルーティンを管理する

BigQuery では、ルーティンは以下を含むリソースタイプです。

このドキュメントでは、BigQuery のすべてのルーティンタイプに共通するタスクについて説明します。

権限

ルーティンを実行するには、ルーティンを含むデータセットに対する bigquery.routines.get 権限が必要です。

デフォルトでは、ルーティンが参照するリソース(テーブルやビューなど)にアクセスするための権限も必要です。UDF とテーブル関数の場合、呼び出し元に代わり、これらのリソースにアクセスするように関数を承認できます。詳細については、承認済み関数をご覧ください。

ルーティンを作成する

プロジェクトを作成するには、bigquery.routines.create 権限が必要です。

SQL

ルーティンのタイプに応じて、次のいずれかの DDL ステートメントを実行します。

API

定義済みの Routine リソースを使用して routines.insert メソッドを呼び出します。

ルーティンの一覧表示

データセット内のルーティンを一覧表示するには、bigquery.routines.get 権限と bigquery.routines.list 権限が必要です。

コンソール

  1. Google Cloud コンソールで、[BigQuery] ページを開きます。

    [BigQuery] に移動

  2. [エクスプローラ] パネルでプロジェクトを開いて、データセットを選択します。

  3. [ルーティン] リストを開きます。

SQL

INFORMATION_SCHEMA.ROUTINES ビューをクエリします。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで次のステートメントを入力します。

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

  3. [実行] をクリックします。

クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。

次のように置き換えます。

例:

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

--routines フラグを指定した bq ls コマンドを使用します。

bq ls --routines DATASET

次のように置き換えます。

  • DATASET: プロジェクト内のデータセットの名前。

例:

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

データセット ID で routines.list メソッドを呼び出します。

ルーティンの本文を表示する

ルーティンの本文を表示するには、bigquery.routines.get 権限と bigquery.routines.list 権限が必要です。

コンソール

  1. Google Cloud コンソールで、[BigQuery] ページを開きます。

    [BigQuery] に移動

  2. [エクスプローラ] パネルでプロジェクトを開いて、データセットを選択します。

  3. [ルーティン] リストを開きます。

  4. ルーティンを選択します。[ルーティン クエリ] の下にルーティンの本文が表示されます。

SQL

INFORMATION_SCHEMA.ROUTINES ビューroutine_definition 列を選択します。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    [BigQuery] に移動

  2. クエリエディタで次のステートメントを入力します。

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

  3. [実行] をクリックします。

クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。

次のように置き換えます。

  • DATASET: プロジェクト内のデータセットの名前。
  • REGION: リージョン修飾子
  • ROUTINE_NAME: ルーティンの名前。

例:

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

bq

--routine フラグを指定した bq show コマンドを使用します。

bq show --routine DATASET.ROUTINE_NAME

次のように置き換えます。

  • DATASET: プロジェクト内のデータセットの名前。
  • ROUTINE_NAME: ルーティンの名前。

例:

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

データセット ID とルーティンの名前を指定して routines.get メソッドを呼び出します。ルーティンの本文は Routine オブジェクトで返されます。

ルーティンを削除する

ルーティンを削除するには、bigquery.routines.delete 権限が必要です。

コンソール

  1. Google Cloud コンソールで、[BigQuery] ページを開きます。

    [BigQuery] に移動

  2. [エクスプローラ] パネルでプロジェクトを開いて、データセットを選択します。

  3. [ルーティン] リストを開きます。

  4. ルーティンを選択します。

  5. アクション オプションを開いて、[削除] をクリックします。

  6. ダイアログに「"delete"」と入力し、[削除] をクリックして確定します。

SQL

ルーティンのタイプに応じて、次のいずれかの DDL ステートメントを実行します。

例:

DROP FUNCTION IF EXISTS mydataset.AddFourAndDivide

bq

--routine フラグを指定した bq rm コマンドを使用します。

bq rm --routine DATASET.ROUTINE_NAME

次のように置き換えます。

  • DATASET: プロジェクト内のデータセットの名前。
  • ROUTINE_NAME: ルーティンの名前。

例:

bq rm --routine mydataset.AddFourAndDivide

API

データセット ID とルーティンの名前を指定して routines.delete メソッドを呼び出します。