Moteur d’import

Introduction

Le moteur d’import permet de transformer un fichier structuré en un ensemble d’items indexables.

Concepts clés

  • Import : Transforme un ensemble de données structurées en un ensemble d’items indexables.

  • Walker : Lit un/des fichier(s) et permet l’accès aux items générés à la manière d’un Iterator.

  • Convertor : Regroupe l’ensemble des processus de conversion de la donnée

  • Chunk : Lot de taille paramétrable d’items envoyés pour enregistrement

Import

Prend en entrée un dataset et va créer et envoyer pour indexation un ensemble de nouveaux items à partir du fichier associé

Déclenchement à travers un appel à l’API

Diagramme d’activité du processus d’import

Diagram

Walker

Le walker a pour responsabilité d’assurer le parcours du fichier et la transformation de la structure de données issue du fichier en un ensemble de clés valeurs.

Diagram

Les FileWalker implémentés sont les suivants:

  • CsvWalker

  • ShapeFileWalker

CsvWalker

Le CsvWalker permet de gérer les fichiers avec un content-type application/csv. Le séparateur attendu est ;. La première ligne du fichier CSV est un header qui contient une partie ou l’ensemble des attributs de la OClass cible.

ShapefileWaker

Le ShapefileWalker permet de gérer les fichiers avec un content-type application/zip. Les fichiers seront chargés dans un dossier temporaire. L’ensemble de fichiers doit contenir au moins un fichier .shp, un .dbf et un .shx

Convertor

La classe RecordConvertor permet de convertir les données d’un fichier suivant le type des attributs de la OClass cible. Avant de convertir la donnée, le convertor vérifie que l’ensemble des attributs extraits des records par les walkers sont présents dans la OClass cible.

Si les attributs ne sont pas tous présents, ou si une conversion n’est pas possible, une erreur est générée.

Les erreurs sont restituées en tant que ExtractedErrors.

Diagram

Le convertor génère des erreurs si les conditions ci-dessous ne sont pas respectées :

  • Les dates fournies doivent correspondre au format ISO-8601

  • Les types géographiques doivent être transmis en GeoJson

  • L’ensemble des valeurs fournies doivent être transformable dans le type du champ cible

Diagram