Propriétés des nœuds et des flux

Vous pouvez utiliser des scripts pour modifier les propriétés des nœuds et des flux à l'aide d'un script.

Les propriétés d'un nœud sont les paramètres spécifiques d'un nœud. Il s'agit souvent des mêmes propriétés que celles auxquelles vous pouvez accéder via l'interface utilisateur, par exemple lorsque vous double-cliquez sur un nœud pour ouvrir ses propriétés. Les propriétés de flux se réfèrent à des opérations de flux de haut niveau, telles que la mise en cache.

Propriétés structurées

Les scripts utilisent les propriétés structurées de la manière suivante afin d'améliorer la clarté de l'analyse :

  • Pour structurer les noms des propriétés des nœuds complexes, tels que les nœuds Mimic et Anonymize.
  • Fournir un format permettant de définir plusieurs propriétés à la fois.

Les scripts pour les nœuds avec des tables et d'autres interfaces complexes doivent suivre une structure particulière pour être analysés correctement. Ces propriétés ont besoin d'un nom plus complexe que le nom d'un seul identifiant. Ce nom est appelé la clé. Les propriétés structurées sont aussi parfois appelées propriétés à clés.

Par exemple, avec un nœud Anonymize, chaque champ disponible en amont est soit anonymisé, soit conservé. Pour faire référence à ces informations, le nœud Anonymize stocke un élément d'information par champ (que chaque champ soit True ou False). Pour rendre anonyme un champ appelé Age, définissez la propriété enable_anonymize, avec la clé Age, à la valeur True:

# Anonymize node requires the input fields while setting the values
node.setKeyedPropertyValue("enable_anonymize", "Age", True)
node.setKeyedPropertyValue("transformation", "Age", "Random")
node.setKeyedPropertyValue("set_random_seed", "Age", True)
node.setKeyedPropertyValue("random_seed", "Age", 123)

Définition de propriétés multiples

Pour de nombreux nœuds, vous pouvez attribuer plusieurs propriétés structurées de nœuds ou de flux à la fois, par exemple :

mimic.setPropertyValue("missing_value_imputation", "True")
mimic.setPropertyValue("missing_value_imputation_strategies",[["Age","Fixed","60"],["K", "mean"]])

Il s'agit d'une commande multiset ou d'un bloc set.

Un autre avantage des propriétés structurées réside dans leur capacité à définir plusieurs propriétés sur un nœud avant que celui-ci ne soit stabilisé. Par défaut, une commande multiset définit toutes les propriétés du bloc avant d'entreprendre toute action basée sur un paramètre de propriété individuel.

Syntaxe de définition des propriétés

Vous pouvez définir des propriétés en utilisant la syntaxe suivante :

OBJECT.setPropertyValue(PROPERTY, VALUE)

Vous pouvez récupérer la valeur des propriétés en utilisant la syntaxe suivante :

VARIABLE = OBJECT.getPropertyValue(PROPERTY)

Pour les propriétés clés, vous pouvez définir des propriétés à l'aide de la syntaxe suivante

OBJECT.setKeyedPropertyValue(PROPERTY, KEY, VALUE)

Vous pouvez récupérer la valeur des propriétés à l'aide de la syntaxe suivante :

VARIABLE = OBJECT.getKeyedPropertyValue(PROPERTY, KEY)

Dans chacun des exemples de code, remplacez OBJECT, PROPERTY, et KEY par les valeurs suivantes :

  • OBJECT est un nœud ou une sortie
  • PROPERTY est le nom de la propriété du nœud à laquelle votre expression fait référence
  • KEY est la valeur de la clé pour les propriétés à clé

Propriétés des noeuds

Chaque type de nœud a son propre ensemble de propriétés, et chaque propriété a un type. Le type d'une propriété peut être un type général, tel qu'un nombre, un drapeau ou une chaîne de caractères. La référence à la propriété peut également spécifier la gamme des valeurs légales, telles que Discard, PairAndDiscard, et IncludeAsText.

Propriétés communes des nœuds

Certaines propriétés sont communes à tous les nœuds, comme name, annotation, et ToolTip, tandis que d'autres sont spécifiques à certains types de nœuds. Les propriétés suivantes sont communes à tous les nœuds du site Synthetic Data Generator.

Tableau 1. Propriétés communes des nœuds
Nom de propriété Type de données Description de la propriété
use_custom_name option
name chaîne Propriété en lecture seule qui récupère le nom (par défaut ou personnalisé) d'un nœud sur le canevas.
custom_name chaîne Permet de définir un nom personnalisé pour le nœud.
tooltip chaîne
annotation chaîne
keywords chaîne Champ structuré qui spécifie une liste de mots-clés associés à l'objet (par exemple, ["Keyword1" "Keyword2"]).
cache_enabled option
node_type tous les noms de nœuds tels qu'ils sont spécifiés pour la création de scripts Propriété en lecture seule permettant de référencer un nœud par son type. Par exemple, au lieu de désigner un nœud uniquement par son nom, comme real_income, vous pouvez également préciser son type, comme userinputnode ou filternode.

Erreurs pour les propriétés des nœuds

Pour les propriétés qui sont des types généraux, les paramètres des propriétés sont contraints au type correct. Une erreur se produit s'ils ne peuvent pas être contraints. Pour les propriétés qui ont une gamme spécifique de valeurs légales, telles que Discard ou PairAndDiscard, une erreur se produit si une autre valeur est utilisée.

Les propriétés des drapeaux doivent être lues ou définies en utilisant les valeurs de true et false de manière cohérente afin d'éviter toute confusion. Les variantes telles que Off, OFF, off, No, NO, no, n, N, f, F, false, False, FALSE, ou 0 sont également reconnues lors de la définition des valeurs. Cependant, dans certains cas, ils peuvent provoquer des erreurs lors de la lecture des valeurs des propriétés. Toutes les autres valeurs sont considérées comme vraies. Utilisation de true et false.

Propriétés du flux

Les propriétés de flux sont des opérations de haut niveau qui affectent un flux entier plutôt que des nœuds individuels. Pour faire référence aux propriétés du flux, vous devez configurer la méthode d'exécution de manière à utiliser des scripts :

stream = sdg.script.stream()
stream.setPropertyValue("execute_method", "Script")

Les propriétés de flux suivantes peuvent être utilisées dans les scripts.

Tableau 2. Propriétés de flux pour les scripts
Nom de la propriété Type de données Description de la propriété
execute_method Normal, Script
date_format " DDMMYY ", " MMDDYY ", " YYMMDD ", " YYYYMMDD ", " YYYYDDD ", JOUR, MOIS, " DD-MM-YY ", " DD-MM-YYYY ", " MM-DD-YY ", " MM-DD-YYYY ", " DD-MON-YY ", " DD-MON-YYYY ", "YYYY-MM-DD", " DD.MM.YY ", " DD.MM.YYYY ", " MM.DD.YYYY ", " DD.MON.YY ", " DD.MON.YYYY ", "DD/MM/YYY", "DD/MM/YYYY", "MM/DD/YYYY", "MM/DD/YYYY", "DD/MON/YYY", "DD/MON/YYYY", MON YYYY, q, WK YYYY
date_baseline numéro aujourd'hui
date_2digit_baseline numéro aujourd'hui
time_format "HHMMSS", "HHMM", "MMSS", "HH:MM:SS", "HH:MM", "MM:SS", "(H)H :(M)M :(S)S", "(H)H :(M)M", "(M)M :(S)S", " HH.MM.SS ", " HH.MM ", " MM.SS ", "(H)H.", "(H)S.", "(H)S.", "(H)S.", "(H)S.", "(H)S.", "(H)S.", "(H)S.", "(H)S.", "(H)S.".(M)M.« (S)S », « (H)H ».« (M)M », « (M)M. »(S)S"
time_rollover booléen
import_datetime_as_string booléen À utiliser pour actualiser automatiquement les nœuds d'importation lors de l'exécution du flux.
decimal_places numéro aujourd'hui
decimal_symbol Défaut, Point, Virgule
angles_in_radians booléen
use_max_set_size booléen
max_set_size numéro aujourd'hui
ruleset_evaluation Vote, FirstHit
refresh_source_nodes booléen À utiliser pour actualiser automatiquement les nœuds d'importation lors de l'exécution du flux.
script chaîne
annotation chaîne
name chaîne Cette propriété est en lecture seule. Si vous souhaitez modifier le nom d'un flux, vous devez l'enregistrer sous un autre nom.
nodes Voir les informations qui suivent.
encoding SystemDefault, "UTF-8"
stream_rewriting booléen
stream_rewriting_maximise_sql booléen
stream_rewriting_optimise_clem_execution booléen
stream_rewriting_optimise_syntax_execution booléen
enable_parallelism booléen
sql_generation booléen
database_caching booléen
sql_logging booléen
sql_generation_logging booléen
sql_log_native booléen
sql_log_prettyprint booléen
record_count_suppress_input booléen
record_count_feedback_interval entier
use_stream_auto_create_node_settings booléen Si c'est le cas, les paramètres spécifiques au flux sont utilisés; sinon, ce sont les préférences de l'utilisateur qui s'appliquent.
create_source_node_from_builders booléen Si cette condition est remplie, lorsqu'un générateur de source crée une nouvelle sortie de source et qu'il ne dispose d'aucun lien de mise à jour actif, un nouveau nœud « Import » est ajouté.
create_source_node_update_links createEnabled, createDisabled, doNotCreate Définit le type de lien créé lorsqu'un nœud « Import » est ajouté automatiquement.
has_coordinate_system booléen Si cette option est activée, un système de coordonnées est appliqué à l'ensemble du flux.
coordinate_system chaîne Nom du système de coordonnées projetées sélectionné.
deployment_area Marquage, Aucun Choisissez comment vous souhaitez déployer le flux. Si cette valeur est définie sur Aucun, aucune autre entrée de déploiement n'est utilisée.
scoring_terminal_node_id chaîne Sélectionnez la branche de notation dans le flux. Il peut s'agir de n'importe quel nœud terminal du flux.
scoring_node_id chaîne Sélectionnez le nugget dans la branche de notation.

Exemple de script avec les propriétés des flux

Vous pouvez utiliser les propriétés des nœuds pour créer une liste de tous les nœuds du flux et écrire cette liste dans les annotations du flux. La propriété « node » sert à désigner les nœuds du flux actuel. Le script de flux suivant en est un exemple :

stream = sdg.script.stream()
annotation = stream.getPropertyValue("annotation")

annotation = annotation + "\n\nThis flow is called \"" + stream.getLabel() + "\" and
 contains the following nodes:\n"

for node in stream.iterator():
    annotation = annotation + "\n" + node.getTypeName() + " node called \"" + node.getLabel()
 + "\""

stream.setPropertyValue("annotation", annotation)

La liste inscrite dans l'annotation de flux se présente comme suit :

This flow is called "druglearn" and contains the following nodes:

import node called "DRUG1n"
anonymize node called "Hide data"
mimic node called "DRUG1n mimic"
generate node called "Synthetic DRUG1n data"
evaluate node called "DRUG1n quality"
export node called "Save to csv"