SYSTEM$GET_TASK_GRAPH_CONFIG

SYSTEM$GET_TASK_GRAPH_CONFIG

SYSTEM$GET_TASK_GRAPH_CONFIG는 태스크 그래프(task graph) 설정에서 설정 값을 가져오는 시스템 함수예요. 태스크 그래프에 설정 값을 저장하는 방법은 CREATE TASK … CONFIG를 참고해요.

출처: Snowflake SQL Reference

본문

카테고리: System 함수 (System Information)

구문 (Syntax)

SYSTEM$GET_TASK_GRAPH_CONFIG( [<configuration_path>] )

인자 (Arguments)

<configuration_path> — 반환할 설정 값의 선택적 경로예요. 반자 구조 데이터에 대한 Snowflake 쿼리와 같은 구문을 사용해요. 자세한 내용은 GET_PATH를 참고해요.

예시 (Examples)

다음 예시는 설정을 정의하는 태스크를 만든 뒤, SYSTEM$GET_TASK_GRAPH_CONFIG 함수로 설정에서 값을 가져오는 방법을 보여줘요.

CREATE OR REPLACE TASK root_task_with_config
  WAREHOUSE = mywarehouse
  SCHEDULE = '10 m'
  CONFIG = $${"output_dir": "/temp/test_directory/", "learning_rate": 0.1}$$
  AS
  BEGIN
    LET OUTPUT_DIR STRING := SYSTEM$GET_TASK_GRAPH_CONFIG('output_dir')::string;
    LET LEARNING_RATE DECIMAL := SYSTEM$GET_TASK_GRAPH_CONFIG('learning_rate')::DECIMAL;
    ...
  END;

예시: 태스크 그래프의 다른 태스크로 설정 정보 전달하기

JSON 객체를 사용하면 태스크 그래프의 다른 태스크가 읽을 수 있는 설정 정보를 전달할 수 있어요.

CREATE/ALTER TASK … CONFIG 구문으로 루트 태스크의 설정 정보를 설정·해제·수정하고, SYSTEM$GET_TASK_GRAPH_CONFIG 함수로 다시 가져오는 방식이에요.

다음 예시는 JSON 객체를 사용해 설정 정보를 전달하고 테이블에 저장하는 방법을 보여줘요:

CREATE OR REPLACE TASK my_task_root
  SCHEDULE = '1 MINUTE'
  USER_TASK_TIMEOUT_MS = 60000
  CONFIG = $${"environment":"production", "dir":"/my_prod_directory/"}$$
  AS SELECT 1;

CREATE OR REPLACE TASK my_child_task
  USER_TASK_TIMEOUT_MS = 600000
  AFTER my_task_root
  AS
    BEGIN
      LET value := (SELECT SYSTEM$GET_TASK_GRAPH_CONFIG('dir'));
      CREATE TABLE IF NOT EXISTS my_table(name VARCHAR, value VARCHAR);
      INSERT INTO my_table VALUES('my_task_root dir',:value);
    END;

더 알아보기