ROUTINES ビュー

INFORMATION_SCHEMA.ROUTINES ビューには、データセット内のルーティンごとに 1 行が表示されます。

必要な権限

INFORMATION_SCHEMA.ROUTINES ビューをクエリするには、次の Identity and Access Management(IAM)権限が必要です。

  • bigquery.routines.get
  • bigquery.routines.list

次の IAM 事前定義ロールには、ルーティン メタデータを取得するために必要な権限が含まれています。

  • roles/bigquery.admin
  • roles/bigquery.metadataViewer
  • roles/bigquery.dataViewer

BigQuery の権限の詳細については、IAM でのアクセス制御をご覧ください。

スキーマ

INFORMATION_SCHEMA.ROUTINES ビューにクエリを実行すると、クエリの結果として、データセット内の各ルーティンが 1 行ずつで返されます。

INFORMATION_SCHEMA.ROUTINES ビューのスキーマは次のとおりです。

列名 データ型
specific_catalog STRING ルーティンが定義されているデータセットを含むプロジェクトの名前
specific_schema STRING ルーティンを含むデータセットの名前
specific_name STRING ルーティンの名前
routine_catalog STRING ルーティンが定義されているデータセットを含むプロジェクトの名前
routine_schema STRING ルーティンを含むデータセットの名前
routine_name STRING ルーティンの名前
routine_type STRING ルーティンのタイプ:
  • FUNCTION: BigQuery 永続的なユーザー定義関数
  • PROCEDURE: BigQuery ストアド プロシージャ
  • TABLE FUNCTION: BigQuery テーブル関数。
data_type STRING ルーティンが返すデータ型。NULL - ルーティンがストアド プロシージャである場合
routine_body STRING ルーティンが JavaScript ユーザー定義関数である場合のルーティン本文の定義方法(SQL または EXTERNAL
routine_definition STRING ルーティンの定義
external_language STRING JAVASCRIPT - ルーティンが JavaScript ユーザー定義関数である場合。または、 NULL - ルーティンが SQL で定義されている場合。
is_deterministic STRING YES - ルーティンが決定的であることがわかっている場合。決定的でない場合は NO、不明である場合は NULL
security_type STRING ルーティンのセキュリティ タイプ(常に NULL
created TIMESTAMP ルーティンの作成時間
last_altered TIMESTAMP ルーティンの最終更新日時
ddl STRING ルーティンの作成に使用できる DDL ステートメントCREATE FUNCTIONCREATE PROCEDURE など)
connection STRING 接続名(ルーティンに接続名がある場合)。それ以外の場合は NULL

安定性を確保するため、情報スキーマクエリではワイルドカード(SELECT *)を使用するのではなく、列を明示的にリストすることをおすすめします。列を明示的にリストすると、基になるスキーマが変更されてもクエリは中断されません。

スコープと構文

このビューに対するクエリでは、データセット修飾子またはリージョン修飾子を指定する必要があります。詳細については、構文をご覧ください。次の表に、このビューのリージョン スコープとリソース スコープを示します。

ビュー名 リソース スコープ リージョン スコープ
[PROJECT_ID.]`region-REGION`.INFORMATION_SCHEMA.ROUTINES プロジェクト レベル REGION
[PROJECT_ID.]DATASET_ID.INFORMATION_SCHEMA.ROUTINES データセット レベル データセットのロケーション
次のように置き換えます。
  • 省略可: PROJECT_ID: Google Cloud プロジェクトの ID。指定しない場合は、デフォルトのプロジェクトが使用されます。
  • REGION: 任意のデータセット リージョン名。例: `region-us`
  • DATASET_ID: データセットの ID。詳しくは、データセット修飾子をご覧ください。

-- Returns metadata for routines in a single dataset.
SELECT * FROM myDataset.INFORMATION_SCHEMA.ROUTINES;

-- Returns metadata for routines in a region.
SELECT * FROM region-us.INFORMATION_SCHEMA.ROUTINES;

デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、次の形式でプロジェクト ID をデータセットに追加します。

`PROJECT_ID`.INFORMATION_SCHEMA.ROUTINES
例: `myproject`.INFORMATION_SCHEMA.ROUTINES

次の例では、INFORMATION_SCHEMA.ROUTINES ビューからすべての列を取得しています。デフォルト プロジェクト(myproject)にある mydataset 内のすべてのルーティンに関するメタデータが返されます。データセット mydataset には、myroutine1 という名前のルーティンが含まれています。

SELECT
  *
FROM
  mydataset.INFORMATION_SCHEMA.ROUTINES;

次のような結果になります。

+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+
| specific_catalog | specific_schema | specific_name | routine_catalog | routine_schema | routine_name | routine_type | data_type | routine_body | routine_definition | external_language | is_deterministic | security_type |           created           |         last_altered        |                            ddl                             |
+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+
| myproject        | mydataset       | myroutine1    | myproject       | mydataset      | myroutine1   | FUNCTION     | NULL      | SQL          | x + 3              | NULL              | NULL             | NULL          | 2019-10-03 17:29:00.235 UTC | 2019-10-03 17:29:00.235 UTC | CREATE FUNCTION myproject.mydataset.myroutine1(x FLOAT64) |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | AS (                                                      |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | x + 3                                                     |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | );                                                        |
+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+