Catégories :

Fonctions système (Informations système)

SYSTEM$GET_TASK_GRAPH_CONFIG

Renvoie des informations d’une configuration de graphique de tâches.

Pour plus d’informations sur le stockage des valeurs de configuration dans un graphique de tâches, voir CREATE TASK … CONFIG.

Syntaxe

SYSTEM$GET_TASK_GRAPH_CONFIG( [<configuration_path>] )
Copy

Arguments

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.

Exemples

L’exemple suivant crée une tâche qui définit une configuration et utilise ensuite la fonction SYSTEM$GET_TASK_GRAPH_CONFIG pour récupérer les valeurs de la configuration.

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

Exemple : Transmettre des informations de configuration à une autre tâche dans un graphique de tâches

Vous pouvez transmettre des informations de configuration en utilisant un objet JSON que d’autres tâches d’un graphique de tâches peuvent lire.

Utilisez la syntaxe CREATE/ALTER TASK … CONFIG pour définir, annuler la définition ou modifier les informations de configuration dans la tâche racine. Ensuite, utilisez la fonction SYSTEM$GET_TASK_GRAPH_CONFIG pour les récupérer.

L’exemple suivant montre comment vous pouvez utiliser un objet JSON pour transmettre des informations de configuration et les stocker dans une table :

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