ルーティンを管理する
BigQuery では、ルーティンは以下を含むリソースタイプです。
- ストアド プロシージャ
- ユーザー定義関数(UDF)(リモート関数を含む)。
- テーブル関数
このドキュメントでは、BigQuery のすべてのルーティンタイプに共通するタスクについて説明します。
権限
ルーティンを実行するには、ルーティンを含むデータセットに対する bigquery.routines.get
権限が必要です。
デフォルトでは、ルーティンが参照するリソース(テーブルやビューなど)にアクセスするための権限も必要です。UDF とテーブル関数の場合、呼び出し元に代わり、これらのリソースにアクセスするように関数を承認できます。詳細については、承認済み関数をご覧ください。
ルーティンを作成する
プロジェクトを作成するには、bigquery.routines.create
権限が必要です。
SQL
ルーティンのタイプに応じて、次のいずれかの DDL ステートメントを実行します。
API
定義済みの Routine
リソースを使用して routines.insert
メソッドを呼び出します。
ルーティンの一覧表示
データセット内のルーティンを一覧表示するには、bigquery.routines.get
権限と bigquery.routines.list
権限が必要です。
コンソール
Google Cloud コンソールで、[BigQuery] ページを開きます。
[エクスプローラ] パネルでプロジェクトを開いて、データセットを選択します。
[ルーティン] リストを開きます。
SQL
INFORMATION_SCHEMA.ROUTINES
ビューをクエリします。
Google Cloud コンソールで [BigQuery] ページに移動します。
クエリエディタで次のステートメントを入力します。
SELECT COLUMN_LIST FROM { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES;
[
実行] をクリックします。
クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。
次のように置き換えます。
- COLUMN_LIST:
INFORMATION_SCHEMA.ROUTINES
ビュー の列のカンマ区切りリスト。 - DATASET: プロジェクト内のデータセットの名前。
- REGION: リージョン修飾子。
例:
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
権限を付与されている必要があります。
コンソール
Google Cloud コンソールで、[BigQuery] ページを開きます。
[エクスプローラ] パネルでプロジェクトを開いて、データセットを選択します。
[ルーティン] リストを開きます。
ルーティンを選択します。[ルーティン クエリ] の下にルーティンの本文が表示されます。
SQL
INFORMATION_SCHEMA.ROUTINES
ビューの routine_definition
列を選択します。
Google Cloud コンソールで [BigQuery] ページに移動します。
クエリエディタで次のステートメントを入力します。
SELECT routine_definition FROM { DATASET | REGION }.INFORMATION_SCHEMA.ROUTINES WHERE routine_name = ROUTINE_NAME;
[
実行] をクリックします。
クエリの実行方法については、インタラクティブ クエリを実行するをご覧ください。
次のように置き換えます。
- 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
権限が必要です。
コンソール
Google Cloud コンソールで、[BigQuery] ページを開きます。
[エクスプローラ] パネルでプロジェクトを開いて、データセットを選択します。
[ルーティン] リストを開きます。
ルーティンを選択します。
アクション オプションを開いて、[削除] をクリックします。
ダイアログに「
"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
メソッドを呼び出します。