Passer au contenu principal
L’analyse transforme le fichier brut en table typée. Elle a quatre parties :
"parsing": {
  "parser": { /* comment lire le fichier */ },
  "mapping": { /* colonne source -> champ cible + type */ },
  "extra_fields": { /* que faire avec les colonnes non mappées */ },
  "validation": { /* colonnes obligatoires, lignes min */ }
}

Parser

L’objet parser sélectionne un lecteur (type) et le configure.
typePour
csvCSV / texte délimité
excelClasseurs Excel
polaris_savArchives de dump SQL Polaris .sav

Options communes

ChampSignification
header_rowLigne indexée à 0 contenant les noms de colonnes (par défaut 0).
skip_rowsLignes à ignorer avant l’en-tête.
max_rowsLimite sur les lignes analysées (null = pas de limite).
strip_columnsColonnes à supprimer (par tableau d’index, ou true pour toutes).
supports_reparseIndique si le fichier peut être ré-analysé après l’ingestion initiale.

Options CSV

encoding (ex. utf-8, iso-8859-1), delimiter (,, ;, \t, |…), has_header.

Options Excel

sheet_names (tableau, ou null pour toutes les feuilles), plus section_context pour les fichiers où les données sont groupées sous des en-têtes de sections :
"section_context": [
  { "label": "Magasin", "output_column": "_section_magasin" },
  { "label": "Poste",   "output_column": "_section_poste" }
]
Chaque valeur d’en-tête de section reconnue est reportée sur les lignes en dessous, dans la colonne de sortie nommée.

Options SAV (Polaris)

sql_filename (chemin vers le dump SQL dans l’archive, ex. 0-full.sql), tables (noms de table à extraire), extract_media (extraire les ressources binaires).

Mapping de colonnes

mapping.columns mappe chaque colonne source à un champ cible et un type Spark SQL :
"mapping": {
  "columns": {
    "Numéro":        { "target": "ticket_number", "type": "STRING" },
    "Montant":       { "target": "amount",         "type": "DOUBLE" },
    "Date":          { "target": "payment_date",   "type": "STRING" }
  }
}
type est n’importe quel type Spark SQL (une chaîne libre, pas un enum figé). Valeurs courantes : STRING, INT, LONG, DOUBLE, TIMESTAMP.

Champs supplémentaires

Les colonnes non mappées sont traitées par extra_fields.mode :
ModeComportement
ignoreSupprimer les colonnes non mappées.
passthroughLes conserver telles quelles.
collectLes rassembler dans une liste dans target_column.
store_jsonLes stocker en tant qu’objet JSON dans target_column.
"extra_fields": { "mode": "store_json", "target_column": "_extra_fields" }

Validation

Garde-fous appliqués après l’analyse :
"validation": {
  "required_columns": ["ticket_number", "payment_method"],
  "min_rows": 1
}
  • required_columns — doivent être présentes et non nulles.
  • min_rows — nombre de lignes minimum.
Les colonnes analysées s’écoulent ensuite dans le pipeline de promotion, où elles sont transformées et écrites dans silver/gold.