For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/connectors-analyzer-blueprint-rules.md.

Nettoyez automatiquement vos données grâce aux règles de blueprint

Voir en Markdown

Les règles de blueprint par défaut appliquent une logique de nettoyage simple, comme le formatage des dates, pour vous aider à préparer vos données

Objectif

La Platform fournit des « règles de blueprint » par défaut qui consistent en une logique de nettoyage simple (comme le formatage des dates, les séparateurs de milliers, etc.) pour aider les utilisateurs à réaliser une préparation de données simple. Vous pouvez choisir parmi les transformations disponibles dans le Platform store et les appliquer si la condition définie est remplie.

Il n'est pas obligatoire d'utiliser les règles de blueprint lorsque vous utilisez la platform. Si elles sont utilisées, les règles seront automatiquement ajoutées aux actions Load du Data Processing Engine que vous définirez pour ingérer les données dans votre dataset.

Comment fonctionne une règle

Une règle s'applique à chaque ligne indépendamment et permet plusieurs choses.

Si une condition est spécifiée, la règle ne s'appliquera que sous certaines conditions exprimées dans condition et condition_value(s).

Si une transformation est renseignée, l'action de transformation sur chaque ligne sera effectuée, sinon, elle est considérée comme une règle de filtrage (keep).

Si aucune condition n'est renseignée, celle définie par défaut est ALL, qui autorise toute ligne.

Si aucune transformation ni condition n'est renseignée, alors nous considérons qu'il s'agit d'une transformation par défaut. Sinon, si aucune transformation n'est renseignée et qu'il y a une condition, l'action par défaut est keep. L'action ne s'applique qu'aux lignes qui répondent à la règle définie par condition.

Champs

Nom de l'attributRequisExempleCommentaire
attribute_nameOui si le format est une liste, non si le format est un objetca_ttc, date
conditionNon (ALL par défaut)EQUAL, INVoir la liste des conditions ci-dessous
condition_valueOui, sauf si condition est IN, NOT IN ou ALL1, "Categorie1"
condition_valuesOui si condition est IN ou NOT IN["ca_ttc", 2, 3], ["categorie"]
actionNonkeep, concatVoir la liste des transformations ci-dessous
action_valueOui si action est default ou split1, "Categorie1"
action_valuesOui, sauf si action est default, split, action_error ou keep ou skip["ca_ttc", 2, 3], ["categorie"]
else_valueSi la condition n'est pas remplie, remplace la valeur par else_value"ca2"

Configurer une règle de blueprint

La configuration d'une règle nécessite 3 étapes :

  1. Information : nom de l'attribut
  2. Transformation : si la condition est confirmée, quelle action de transformation appliquer aux données (peut être choisie depuis le Platform store)
  3. Condition : quelle règle appliquer pour la condition

Pour ajouter une règle sur un attribut, sur le champ concerné, cliquez sur le bouton suivant :

analyzer

Transformations

Différentes transformations sont disponibles dans le Platform store :

analyzer
  • Replace by : les valeurs sont remplacées par une valeur unique

  • Substring : les valeurs seront tronquées

  • Date format : remplace les formats de date

  • Keep line : conserve les valeurs correspondantes

  • Skip line : ignore les valeurs correspondantes

  • Throw error : les valeurs correspondantes déclencheront une erreur

  • Replace substring : remplace les sous-chaînes correspondantes

  • Apply regexp : une nouvelle regexp sera appliquée aux valeurs correspondantes

  • Stop workflow : arrête le workflow en cours

Conditions

Différentes conditions sont disponibles :

analyzer

La Platform vous propose une variété de conditions que vous pouvez appliquer à la transformation choisie. La liste comprend : Equal, Not Equal, Between, Not Between, Lower than, Lower or Equal than, Greater than, Greater or Equal than, REGEXP, NOT REGEXP, Is a number, Is not a number, Is a date, Is not a date, Is null, Is not null

Info

Une fois la transformation et la condition définies, la règle sera appliquée à l'attribut sélectionné.

analyzer

Référence

Les noms ci-dessous sont les valeurs écrites dans la règle elle-même, ce sont donc celles que vous utilisez lorsque vous éditez des règles en JSON, par exemple dans le mode avancé Load ou le mode avancé Aggregate.

Liste des conditions
Nom de la conditionDescription
ALLConserve toutes les lignes
EQUALLignes valides : celles dont attribute_name est égal à condition_value
NOT EQUALLignes valides : celles dont attribute_name n'est pas égal à condition_value
INLignes valides : celles dont attribute_name est dans la liste condition_values
NOT INLignes valides : celles dont attribute_name n'est pas dans la liste condition_values
LTELignes valides : celles dont attribute_name est inférieur ou égal à condition_value
LTLignes valides : celles dont attribute_name est inférieur à condition_value
GTELignes valides : celles dont attribute_name est supérieur ou égal à condition_value
GTLignes valides : celles dont attribute_name est supérieur à condition_value
REGEXPLignes valides : celles dont attribute_name correspond à la regexp condition_value. Exemple : ^([0-9]{4})
NOT REGEXPLignes valides : celles dont attribute_name ne correspond pas à la regexp condition_value
BETWEENLignes valides : celles dont attribute_name est compris entre condition_values[0] et condition_values[1]
NOT BETWEENLignes valides : celles dont attribute_name n'est pas compris entre condition_values[0] et condition_values[1]
ORLignes valides : celles où l'une des valeurs contenues dans condition_values n'est pas vide (vide, null, False, 0)
ANDLignes valides : celles où toutes les valeurs contenues dans condition_values ne sont pas vides (vide, null, False, 0)
IS NULLLignes valides : celles dont attribute_name est null
IS NOT NULLLignes valides : celles dont attribute_name n'est pas null
IS INTLignes valides : celles dont attribute_name est un entier
IS NOT INTLignes valides : celles dont attribute_name n'est pas un entier
IS DATELignes valides : celles dont attribute_name est une date
IS NOT DATELignes valides : celles dont attribute_name n'est pas une date
IS DECLignes valides : celles dont attribute_name est un décimal
IS NOT DECLignes valides : celles dont attribute_name n'est pas un décimal
IS NUMLignes valides : celles dont attribute_name est un nombre
IS NOT NUMLignes valides : celles dont attribute_name n'est pas un nombre
Liste des transformations
  • keep : conserve la ligne

  • skip : ignore la ligne

  • default : Remplace la valeur par action_value. Pour les dates, il existe :

    • $today renvoie yyyy-mm-dd
    • $now renvoie yyyy-mm-dd hh:mm:ss
    • $yesterday renvoie yyyy-mm-dd
  • regexp_replace : Remplace la valeur correspondant à la regexp action_values[0] par action_values[1]

  • replace : Remplace la valeur correspondant à action_values[0] par action_values[1]

  • substring / substr :

    • Si action_values[0] >= 0 : Commence au caractère action_values[0]

    • Si action_values[0] < 0 : Ne prend en compte que les action_values[0] derniers caractères

    • Si action_values[1] est renseigné : Le 2ème chiffre représente le nombre maximum de caractères souhaité

  • date_replace : Remplace le format de date action_values[0] par action_values[1]. Exemples pour action_values :

    • ["%d/%m/%Y", "%Y-%m-%d"]
    • Voir les directives de format de date ci-dessous
  • add : Ajoute plusieurs champs ou nombres en dur, en détectant automatiquement si, pour chaque valeur de action_values, il s'agit d'un attribut disponible dans la ligne, sinon elle est considérée comme un nombre. Exemples pour action_values :

    • ["ca_ht", "taxes"]
    • ["nb_clics", 1]
  • sub : soustrait action_values[0] de toutes les autres données présentes dans action_values

  • mul : multiplie action_values[0] par action_values[1]

  • div : divise action_values[0] par action_values[1]

  • mod : modulo action_values[0] par action_values[1]

  • concat : concatène un ou plusieurs champs avec des chaînes en dur. Chaque élément de action_values détecte s'il s'agit du nom d'une colonne disponible dans la ligne, sinon nous le considérons comme une chaîne de caractères en dur. Exemples pour action_values :

    • ["site_name", " - ", "country"]
    • ["civilite", " name", "lastname"]
  • ceil : arrondit action_value à la valeur supérieure

  • floor : arrondit action_value à la valeur inférieure

  • disaggregate / split : Permet de créer plusieurs lignes si un champ contient plusieurs valeurs qui doivent être réparties dans des lignes séparées. Il ne peut y avoir qu'une seule règle disaggregate par action DPE, et cette règle s'applique toujours en dernier. Le champ est découpé sur le caractère action_value, et pour chaque élément découpé, seules les valeurs non vides sont conservées.

  • action_error : entraîne une erreur dans l'action, et considère par conséquent que toutes les lignes sont fausses

  • stop_workflow : arrête le workflow

Directives de format de date
DirectiveSignificationExemple
%wJour de la semaine sous forme de nombre décimal, où 0 est dimanche et 6 est samedi.0, 1, ..., 6
%dJour du mois sous forme de nombre décimal complété par des zéros.01, 02, ..., 31
%mMois sous forme de nombre décimal complété par des zéros.01, 02, ..., 12
%yAnnée sans le siècle sous forme de nombre décimal complété par des zéros.00, 01, ..., 99
%YAnnée avec le siècle sous forme de nombre décimal.1970, 1988, 2001, 2013
%HHeure (format 24 heures) sous forme de nombre décimal complété par des zéros.00, 01, ..., 23
%IHeure (format 12 heures) sous forme de nombre décimal complété par des zéros.01, 02, ..., 12
%pÉquivalent local de AM ou PM.AM, PM (en_US) ; am, pm (de_DE)
%MMinute sous forme de nombre décimal complété par des zéros.00, 01, ..., 59
%SSeconde sous forme de nombre décimal complété par des zéros.00, 01, ..., 59
%fMicroseconde sous forme de nombre décimal, complété par des zéros à gauche.000000, 000001, ..., 999999
%zDécalage UTC sous la forme +HHMM ou -HHMM (chaîne vide si l'objet est naïf).(vide), +0000, -0400, +1030
%ZNom du fuseau horaire (chaîne vide si l'objet est naïf).(vide), UTC, EST, CST
%jJour de l'année sous forme de nombre décimal complété par des zéros.001, 002, ..., 366
%UNuméro de semaine de l'année (dimanche comme premier jour de la semaine) sous forme de nombre décimal complété par des zéros. Tous les jours d'une nouvelle année précédant le premier dimanche sont considérés comme faisant partie de la semaine 0.00, 01, ..., 53
%WNuméro de semaine de l'année (lundi comme premier jour de la semaine) sous forme de nombre décimal. Tous les jours d'une nouvelle année précédant le premier lundi sont considérés comme faisant partie de la semaine 0.00, 01, ..., 53
%%Un caractère littéral « % ».%
Exemples de règles

Remplacer un format de date :

[
    {
        "attribute_name": "date",
        "action": "date_replace",
        "action_values": ["%d/%m/%Y", "%Y-%m-%d"]
    }
]

Ajouter 1 à l'attribut year, uniquement sur les lignes où il vaut 2015 ou 2016 :

[
    {
        "attribute_name": "year",
        "condition": "IN",
        "condition_values": ["2015", "2016"],
        "action": "add",
        "action_values": ["year", 1]
    }
]

Définir year à 2015 sur les lignes où il est inférieur à 2015 :

[
    {
        "attribute_name": "year",
        "condition": "LT",
        "condition_value": "2015",
        "action": "default",
        "action_value": "2015"
    }
]

Définir l'attribut date à la date du jour :

[
    {
        "action": "default",
        "action_value": "$today",
        "attribute_name": "date"
    }
]

Convertir une température de Kelvin en Celsius :

[
    {
        "action": "sub",
        "action_values": [
            "temp_min",
            273.15
        ],
        "attribute_name": "temp_min"
    }
]

Normaliser un timestamp :

[
    {
        "action": "date_replace",
        "action_values": [
            "%a %b %d %H:%M:%S +0000 %Y",
            "%Y-%m-%d %H:%M:%S"
        ],
        "attribute_name": "statuses_created_at"
    }
]

Aller plus loin

Si vous avez besoin d'une formation ou d'une assistance technique pour la mise en oeuvre de nos solutions, contactez votre commercial ou cliquez sur ce lien pour obtenir un devis et demander une analyse personnalisée de votre projet à nos experts de l’équipe Professional Services.

Posez vos questions, faites-nous part de vos commentaires et interagissez directement avec l’équipe qui développe la Data Platform sur le canal Discord dédié.

Si vous avez besoin d'une assistance concernant vos services OVHcloud, créez une demande depuis notre centre d'aide.

Rejoignez notre communauté d'utilisateurs.

Cette page vous a-t-elle aidé ?