- 类别:
系统函数 (系统信息)
SYSTEM$GET_TASK_GRAPH_CONFIG¶
从 任务图 配置返回信息。
有关在任务图中存储配置值的信息,请参阅 CREATE TASK ... CONFIG。
语法¶
SYSTEM$GET_TASK_GRAPH_CONFIG( [<configuration_path>] )
实参¶
configuration_pathOptional path of the configuration value to return.
Uses the same syntax as Snowflake queries for semi-structured data. See GET_PATH for more information.
示例¶
以下示例创建了一个定义配置的任务,然后使用 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;