Je suis confronté à des fichiers CSV qui proviennent de clients et qui peuvent contenir des centaines de milliers de lignes. Existe-t-il un DSL (ou une bibliothèque très populaire en Java ou Python) capable d'effectuer efficacement des calculs sur ces informations, en appliquant diverses règles pour émettre des avertissements et des erreurs (configurables par l'utilisateur, bien sûr) ?
Réponse
Trop de publicités?Pouvez-vous imaginer une DSL qui le ferait ? A quoi ressembleront les règles ?
Il y a plusieurs mois, j'ai travaillé sur un tel problème - au final, il s'est avéré plus difficile qu'il n'y paraissait au départ.
-
La première étape était évidente - toutes les lignes ont été analysées et placées dans les stuctures de données spéciales afin que je puisse travailler avec eux ; ceux avec des champs manquants ont été jetés.
-
Chaque ligne avait sa propriété "stratégie" actuelle et une liste de stratégies possibles stratégies possibles (Action par défaut, Ignorer, Forcer, Ecraser, etc.)
-
Au début, toutes les rangées avaient leur propriété "stratégie" était définie sur "Default".
-
Le processeur de rangée a vérifié que l'opération était possible, en créant une liste d'erreurs et d'avertissements.
-
Après traitement et l'analyse des résultats, chaque ligne qui qui posait problème a reçu une liste de stratégies alternatives que l'utilisateur pouvait choisir ;
Ainsi, en cas de problème, l'utilisateur peut modifier la stratégie de rangée (ou simplement utiliser "Ignorer") et revenir à l'étape 4.
Alors, je suis curieux de savoir à quelle étape une telle LIS fonctionnerait ?