루틴 관리

BigQuery에서 루틴은 다음을 포함하는 리소스 유형입니다.

이 문서에서는 BigQuery의 모든 루틴 유형에 공통적인 작업을 설명합니다.

권한

루틴을 실행하려면 루틴이 포함된 데이터 세트에 대한 bigquery.routines.get 권한이 있어야 합니다.

기본적으로 테이블 또는 뷰와 같이 루틴에서 참조하는 모든 리소스에 액세스할 수 있는 권한이 필요합니다. UDF 및 테이블 함수의 경우 호출자를 대신하여 이러한 리소스에 액세스하도록 함수를 승인할 수 있습니다. 자세한 내용은 승인된 함수를 참조하세요.

루틴 만들기

프로젝트를 만들려면 bigquery.routines.create 권한이 있어야 합니다.

SQL

루틴 유형에 따라 다음 DDL 문 중 하나를 실행합니다.

API

Routine 리소스가 정의된 routines.insert 메서드를 호출합니다.

루틴 나열

데이터 세트에 루틴을 나열하려면 bigquery.routines.getbigquery.routines.list 권한이 있어야 합니다.

콘솔

  1. Google Cloud 콘솔에서 BigQuery 페이지를 엽니다.

    BigQuery로 이동

  2. Explorer 패널에서 프로젝트를 확장하고 데이터 세트를 선택합니다.

  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 권한이 있어야 합니다.

콘솔

  1. Google Cloud 콘솔에서 BigQuery 페이지를 엽니다.

    BigQuery로 이동

  2. Explorer 패널에서 프로젝트를 확장하고 데이터 세트를 선택합니다.

  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. Explorer 패널에서 프로젝트를 확장하고 데이터 세트를 선택합니다.

  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 메서드를 호출합니다.