Categorias:

Funções do sistema (Informações do sistema)

SYSTEM$GET_TASK_GRAPH_CONFIG

Retorna informações de uma configuração de gráfico de tarefas.

Para obter informações sobre como armazenar valores de configuração em um gráfico de tarefas, consulte CREATE TASK … CONFIG.

Sintaxe

SYSTEM$GET_TASK_GRAPH_CONFIG( [<configuration_path>] )
Copy

Argumentos

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.

Exemplos

O exemplo a seguir cria uma tarefa que define uma configuração e, em seguida, usa a função SYSTEM$GET_TASK_GRAPH_CONFIG para recuperar valores da configuração.

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

Exemplo: Passar informações de configuração para outra tarefa em um gráfico de tarefas

Você pode passar informações de configuração usando um objeto JSON que outras tarefas em um gráfico de tarefas podem ler.

Use a sintaxe CREATE/ALTER TASK … CONFIG para definir, remover ou modificar as informações de configuração na tarefa raiz. Em seguida, use a função SYSTEM$GET_TASK_GRAPH_CONFIG para recuperá-las.

O exemplo a seguir mostra como você pode usar um objeto JSON para passar informações de configuração e armazená-las em uma tabela:

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