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 など)

スコープと構文

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

ビュー名 リソース スコープ リージョン スコープ
[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;

デフォルト プロジェクト以外のプロジェクトに対してクエリを実行するには、

`PROJECT_ID`.INFORMATION_SCHEMA.ROUTINES
の形式でそのプロジェクト ID をデータセットに追加します。たとえば、`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                                                     |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | );                                                        |
+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+