SYSTEM$GET_TASK_GRAPH_CONFIG
SYSTEM$GET_TASK_GRAPH_CONFIG
SYSTEM$GET_TASK_GRAPH_CONFIG는 태스크 그래프(task graph) 설정에서 설정 값을 가져오는 시스템 함수예요. 태스크 그래프에 설정 값을 저장하는 방법은 CREATE TASK … CONFIG를 참고해요.
본문
카테고리: 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;