Scrydon

Inférence de schéma

Comment Scrydon détermine les types de colonnes à partir d'un fichier lors de la première arrivée des données — échantillonnage, règles de typage, remplacements.

Lorsque vous uploadez un fichier, Scrydon infère un schéma en échantillonnant les données et en classifiant le type de chaque colonne. Cette page documente les règles pour que vous puissiez anticiper le comportement avec vos données — et remplacer le résultat lorsque l'heuristique est erronée.

Échantillonnage

L'inférence s'exécute sur un échantillon du fichier :

  • CSV / JSONL — premières N lignes (par défaut 10 000). Configurable par upload.
  • JSON — le document entier s'il s'agit d'un tableau ; sinon les clés de niveau supérieur.

Les fichiers plus volumineux que l'échantillon sont quand même ingérés intégralement une fois le schéma validé — l'échantillon sert uniquement à décider du schéma.

Règles de typage

Pour chaque colonne, l'inférence parcourt une liste de priorités et sélectionne le type le plus spécifique que toutes les valeurs échantillonnées correspondent :

PrioritéTypeRègle de correspondance
1BOOLEANToutes les valeurs sont true/false/yes/no/0/1 (insensible à la casse)
2BIGINTToutes les valeurs correspondent à ^-?\d+$ et tiennent sur 64 bits
3DOUBLEToutes les valeurs sont des doubles IEEE-754 valides
4DATEToutes les valeurs correspondent à un format de date reconnu (YYYY-MM-DD, DD/MM/YYYY, …)
5DATETIMEToutes les valeurs correspondent à un format datetime / ISO 8601 reconnu
6JSONToutes les valeurs peuvent être analysées comme des objets ou tableaux JSON
7STRINGRepli — tout le reste, y compris les colonnes de types mixtes

Les valeurs vides / null / NA sont ignorées lors de l'inférence du type — elles ne forcent pas une colonne à STRING. Elles marquent en revanche la colonne comme nullable.

Nullabilité

Une colonne est nullable si au moins une valeur échantillonnée est vide, null, NA ou NaN. Sinon, elle est marquée non-null. Vous pouvez modifier cela manuellement à l'étape de confirmation du schéma.

Gestion des noms de colonnes

Les en-têtes sont préservés sans perte. Le nom physique de la colonne est assaini pour satisfaire les règles des identifiants SQL ; l'en-tête original est stocké comme nom d'affichage. Consultez Noms de colonnes pour la table d'assainissement complète.

Remplacements

Une fois l'inférence effectuée, une étape de confirmation du schéma vous est présentée. Depuis celle-ci, vous pouvez :

  • Modifier le type d'une colonne (ex. forcer un STRING en BIGINT si l'échantillon contenait une valeur aberrante).
  • Basculer la nullabilité d'une colonne.
  • Marquer une colonne comme clé primaire pour la prise en charge de l'upsert.
  • Définir la classification d'une colonne — publique / interne / confidentielle / restreinte. Consultez Classification et masquage.
  • Renommer le nom d'affichage d'une colonne sans modifier le nom physique.

Les remplacements s'appliquent aux ré-uploads ultérieurs de la même structure de fichier.

Ré-upload d'un fichier

Ré-uploader la même structure de fichier vers une table existante est le comportement standard. La plateforme traduit automatiquement les noms d'affichage en noms physiques, vous permettant de conserver les en-têtes CSV originaux dans votre fichier source sans avoir à les renommer.

Si le nouveau fichier ajoute des colonnes, elles sont ajoutées comme nullable. S'il en supprime, les colonnes existantes restent. S'il renomme une colonne, la colonne renommée est traitée comme nouvelle — la plateforme ne devinera pas que « AncienNom » est devenu « NouveauNom ».

Quand l'inférence échoue

Les modes d'échec les plus courants :

SymptômeQuoi vérifier
Colonne numérique inférée comme STRINGUne seule valeur non numérique dans l'échantillon. Augmentez la taille de l'échantillon ou nettoyez les données.
Colonne de dates inférée comme STRINGLe format de date n'est pas dans la liste reconnue. Remplacez le type par DATE et fournissez une chaîne de format.
Colonne de devises mixtes inférée comme STRINGLes décimaux portent un préfixe de devise. Soit supprimez le préfixe à la source, soit acceptez le type STRING.
Colonne voulue en BOOLEAN obtenue en BIGINTLes valeurs sont 0 et 1BIGINT a remporté la priorité. Remplacez par BOOLEAN à l'étape de confirmation.

Liens connexes

Sur cette page

Sur cette page