类别:

系统函数 (系统信息)

SYSTEM$GET_TASK_GRAPH_CONFIG

任务图 配置返回信息。

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

语法

SYSTEM$GET_TASK_GRAPH_CONFIG( [<configuration_path>] )
Copy

实参

configuration_path

Optional 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;
Copy

示例:将配置信息传递给任务图中的另一个任务

您可以使用任务图中其他任务可以读取的 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;
Copy
语言: 中文