ROUTINES 뷰

INFORMATION_SCHEMA.ROUTINES 뷰에는 데이터 세트의 각 루틴에 대한 행 하나가 포함됩니다.

필수 권한

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 뷰를 쿼리하면 데이터세트에 있는 루틴마다 행이 한 개씩 쿼리 결과에 포함됩니다.

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 루틴이 자바스크립트 사용자 정의 함수인 경우에 루틴 본문이 정의되는 방식으로, SQL 또는 EXTERNAL
ROUTINE_DEFINITION STRING 루틴 정의
EXTERNAL_LANGUAGE STRING 루틴이 자바스크립트 사용자 정의 함수인 경우에는 JAVASCRIPT, 루틴이 SQL로 정의된 경우에는 NULL
IS_DETERMINISTIC STRING 루틴이 확정적인 것으로 알려진 경우에는 YES, 그렇지 않은 경우에는 NO, 알 수 없는 경우에는 NULL
SECURITY_TYPE STRING 루틴의 보안 유형, 항상 NULL
CREATED TIMESTAMP 루틴 생성 시간
LAST_ALTERED TIMESTAMP 루틴 최종 수정 시간
DDL STRING CREATE FUNCTION 또는 CREATE PROCEDURE와 같이 루틴을 만드는 데 사용할 수 있는 DDL 문

범위 및 구문

이 뷰에 대한 쿼리에는 데이터 세트나 리전 한정자가 포함되어야 합니다. 자세한 내용은 구문을 참조하세요. 다음 표에서는 이 뷰의 리전 범위와 리소스 범위를 설명합니다.

뷰 이름 리소스 범위 리전 범위
[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                                                     |
|                  |                 |               |                 |                |              |              |           |              |                    |                   |                  |               |                             |                             | );                                                        |
+------------------+-----------------+---------------+-----------------+----------------+--------------+--------------+-----------+--------------+--------------------+-------------------+------------------+---------------+-----------------------------+-----------------------------+-----------------------------------------------------------+