类别:

系统函数 (系统信息)

SYSTEM$GET_TASK_GRAPH_CONFIG

任务图 配置返回信息。

有关在任务图中存储配置值的信息,请参阅 CREATE TASK ... CONFIG

语法

SYSTEM$GET_TASK_GRAPH_CONFIG( [<configuration_path>] )

实参

configuration_path

要返回的配置值的可选路径。

对半结构化数据使用与 Snowflake 查询相同的语法。有关更多信息,请参阅 GET_PATH

示例

以下示例创建了一个定义配置的任务,然后使用 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;